Skip to content

Comments

fix(core): add error logging for IDE fetch failures#17981

Merged
Adib234 merged 4 commits intogoogle-gemini:mainfrom
yuvrajangadsingh:fix/ide-fetch-error-handling
Feb 19, 2026
Merged

fix(core): add error logging for IDE fetch failures#17981
Adib234 merged 4 commits intogoogle-gemini:mainfrom
yuvrajangadsingh:fix/ide-fetch-error-handling

Conversation

@yuvrajangadsingh
Copy link
Contributor

Summary

Fixes #17513

Add try-catch block around the fetch call in createProxyAwareFetch to log errors before re-throwing. This helps diagnose IDE connection issues like "TypeError: fetch failed" by providing more context in debug logs.

The error is logged with the URL that failed, making it easier to troubleshoot network connectivity issues between the CLI and IDE.

Test plan

  • Run npx vitest run packages/core/src/ide/ide-client.test.ts - all 56 tests pass
  • Manual testing with IDE connection failures (disconnect network, check debug logs)

@yuvrajangadsingh yuvrajangadsingh requested a review from a team as a code owner January 30, 2026 19:16
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @yuvrajangadsingh, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a diagnostic improvement by adding error logging to network requests made to the IDE. By catching and logging exceptions during fetch operations, it provides more detailed information about connection failures, which will significantly aid in troubleshooting and resolving IDE communication problems.

Highlights

  • Enhanced Error Logging: Implemented a try-catch block around fetch calls within createProxyAwareFetch to capture and log errors related to IDE connection failures.
  • Improved Diagnostics: The error log now includes the specific URL that failed and the error message, providing crucial context for diagnosing network connectivity issues between the CLI and IDE.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-cli gemini-cli bot added area/core Issues related to User Interface, OS Support, Core Functionality help wanted We will accept PRs from all issues marked as "help wanted". Thanks for your support! labels Jan 30, 2026
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds valuable error logging for fetch failures in the IDE client, which will aid in diagnosing connection problems. The implementation is a good, simple fix. I have one suggestion to improve the logging by using the existing logger instance and the error log level for better consistency and semantics, aligning with our guidelines for detailed error logging.

@yuvrajangadsingh
Copy link
Contributor Author

@gemini-code-assist review

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds valuable error logging for fetch requests to the IDE, which will greatly aid in diagnosing connection issues. The implementation is straightforward and correct. I've suggested an improvement to the logging call to pass the full error object, aligning with our guidelines to provide richer debugging information, including the stack trace, when catching exceptions.

@yuvrajangadsingh yuvrajangadsingh force-pushed the fix/ide-fetch-error-handling branch from 195f474 to f23bac3 Compare January 30, 2026 20:10
@yuvrajangadsingh
Copy link
Contributor Author

@gemini-code-assist review

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request effectively addresses the issue of lacking error visibility during IDE fetch failures by introducing a try-catch block around the fetchFn call in createProxyAwareFetch. The added logging provides crucial context, including the failed URL and the error object, which will significantly aid in diagnosing IDE connection problems. The implementation is clean and correctly re-throws the error, preserving the original error propagation flow. This is a valuable improvement for debugging and overall system maintainability.

@yuvrajangadsingh
Copy link
Contributor Author

@gemini-code-assist review

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds valuable error logging for IDE fetch failures, which will aid in diagnosing connection issues. The approach of using a try-catch block to log and re-throw errors is sound. I've identified an issue where the URL context might not be logged correctly for Request objects, potentially hindering debugging. The provided suggestion ensures the URL is always accurately captured, aligning with best practices for detailed error logging.

@yuvrajangadsingh
Copy link
Contributor Author

@gemini-code-assist review

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds error logging for fetch failures within createProxyAwareFetch, which is a good improvement for diagnosing IDE connection issues. The implementation correctly uses a try-catch block to log the error with the URL and then re-throws it. I've found one area for improvement in how the URL string is constructed for logging, which appears to contain a logical flaw.

@yuvrajangadsingh
Copy link
Contributor Author

@gemini-code-assist review

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces error logging for fetch failures within createProxyAwareFetch, which is a valuable addition for diagnosing IDE connection problems. The implementation correctly wraps the fetch call in a try-catch block to log errors. The suggested improvement to make the URL logging more robust by handling Request objects in addition to strings and URL objects has been retained as it is a valid and useful suggestion.

@yuvrajangadsingh
Copy link
Contributor Author

@gemini-code-assist review

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds error logging for failed fetch requests to the IDE, which is a great addition for debugging connection issues. I've reviewed the changes and found one potential issue in how the URL is stringified for logging. The current implementation doesn't handle Request objects correctly, which could lead to unhelpful log messages. I've suggested a more robust way to handle all possible URL types. Otherwise, the change is good.

@yuvrajangadsingh
Copy link
Contributor Author

Hi @NTaylorMullen, this PR is ready for review — all Gemini bot feedback has been addressed and resolved. Would appreciate a look when you get a chance. Thanks!

@yuvrajangadsingh yuvrajangadsingh force-pushed the fix/ide-fetch-error-handling branch from 9d38c34 to 21527cd Compare February 16, 2026 09:24
@yuvrajangadsingh
Copy link
Contributor Author

Hey, just checking in — any chance someone could take a look at this? All feedback's been addressed and CI is green. Happy to make any changes if needed.

});
try {
const response = await fetchFn(url, options);
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it possible to not disable this lint rule?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hey, that disable was already there before my changes — I just wrapped the existing code in a try/catch. the cast is needed because Node's RequestInit and undici's RequestInit don't play nice with each other, so going through unknown is the only option there.

@yuvrajangadsingh yuvrajangadsingh force-pushed the fix/ide-fetch-error-handling branch from 21527cd to 236e411 Compare February 19, 2026 09:51
Fixes google-gemini#17513

Add try-catch block around the fetch call in createProxyAwareFetch to
log errors before re-throwing. This helps diagnose IDE connection issues
like "TypeError: fetch failed" by providing more context in debug logs.

The error is logged with the URL that failed, making it easier to
troubleshoot network connectivity issues between the CLI and IDE.
The url parameter is typed as string | URL, so the url.url fallback
for Request objects is unreachable. Simplified to a straightforward
ternary.
@yuvrajangadsingh yuvrajangadsingh force-pushed the fix/ide-fetch-error-handling branch from 236e411 to f5df8ac Compare February 19, 2026 15:36
@Adib234 Adib234 enabled auto-merge February 19, 2026 15:42
@Adib234 Adib234 added this pull request to the merge queue Feb 19, 2026
Merged via the queue into google-gemini:main with commit b79e5ce Feb 19, 2026
25 of 27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/core Issues related to User Interface, OS Support, Core Functionality help wanted We will accept PRs from all issues marked as "help wanted". Thanks for your support!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

undici bug

2 participants