Skip to content

Comments

fix(core): improve error type extraction for telemetry#19565

Merged
yunaseoul merged 1 commit intomainfrom
yunaseol/error_type
Feb 19, 2026
Merged

fix(core): improve error type extraction for telemetry#19565
yunaseoul merged 1 commit intomainfrom
yunaseol/error_type

Conversation

@yunaseoul
Copy link
Contributor

@yunaseoul yunaseoul commented Feb 19, 2026

Summary

Improve error type extraction for telemetry logging for API errors.
Currently 93% of the errors are just being logged as generic "Error".
5vCyvxsdxeJuAYN (1)

Details

  • Updated _logApiError to use the granular error type name. Previously, all custom errors like "UnauthorizedError" or "FatalAuthenticationError" were being logged as generic "Error".

Related Issues

Fixes #19481

How to Validate

  1. Run unit tests: npm test packages/core/src/utils/errors.test.ts and npm test packages/core/src/core/loggingContentGenerator.test.ts
  2. Manually verify telemetry logs (if possible) or rely on the updated unit tests which mock the logging.

Pre-Merge Checklist

  • Updated relevant documentation and README (if needed)
  • Added/updated tests (if needed)
  • Noted breaking changes (if any)
  • Validated on required platforms/methods:
    • MacOS
      • npm run
      • npx
      • Docker
      • Podman
      • Seatbelt
    • Windows
      • npm run
      • npx
      • Docker
    • Linux
      • npm run
      • npx
      • Docker

@yunaseoul yunaseoul requested a review from a team as a code owner February 19, 2026 20:46
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @yunaseoul, 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 refines the error reporting mechanism for telemetry by implementing a more intelligent way to identify error types. The primary goal is to ensure that custom error classes, which might otherwise be reported generically, are accurately categorized in logs, thereby improving the clarity and usefulness of error telemetry data.

Highlights

  • Improved Error Type Extraction: Enhanced the logic for extracting error types for telemetry logging, ensuring custom errors are correctly identified instead of being logged as generic 'Error' instances.
  • New getErrorType Helper: Introduced a new utility function getErrorType in packages/core/src/utils/errors.ts to provide a standardized way of determining an error's type, prioritizing the constructor name for custom errors.
  • Telemetry Integration: Updated LoggingContentGenerator to utilize the new getErrorType helper, ensuring more accurate error type reporting in telemetry events.
  • Comprehensive Unit Tests: Added dedicated unit tests for the getErrorType function and its integration within LoggingContentGenerator to validate the new error type extraction logic.
Changelog
  • packages/core/src/core/loggingContentGenerator.test.ts
    • Imported FatalAuthenticationError for testing custom error types.
    • Added new test cases to verify correct error type extraction by LoggingContentGenerator for both standard and custom errors.
  • packages/core/src/core/loggingContentGenerator.ts
    • Imported the new getErrorType utility function.
    • Modified the errorType assignment within logApiError to use the getErrorType helper for more accurate error classification.
  • packages/core/src/utils/errors.test.ts
    • Imported various FatalError types and the new getErrorType function.
    • Added a new test suite for getErrorType to cover standard errors, custom errors, and non-error inputs.
  • packages/core/src/utils/errors.ts
    • Added a new exported function getErrorType which returns the error's name or its constructor's name if the error name is generic 'Error'.
Activity
  • Updated relevant documentation and README (if needed)
  • Added/updated tests (if needed)
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.

@github-actions
Copy link

github-actions bot commented Feb 19, 2026

Size Change: +200 B (0%)

Total Size: 24.5 MB

ℹ️ View Unchanged
Filename Size Change
./bundle/gemini.js 24.5 MB +200 B (0%)
./bundle/sandbox-macos-permissive-open.sb 890 B 0 B
./bundle/sandbox-macos-permissive-proxied.sb 1.31 kB 0 B
./bundle/sandbox-macos-restrictive-open.sb 3.36 kB 0 B
./bundle/sandbox-macos-restrictive-proxied.sb 3.56 kB 0 B
./bundle/sandbox-macos-strict-open.sb 4.82 kB 0 B
./bundle/sandbox-macos-strict-proxied.sb 5.02 kB 0 B

compressed-size-action

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 improves error type extraction for telemetry by using the error's constructor name for custom errors. The new getErrorType utility is well-implemented and thoroughly tested. The changes in LoggingContentGenerator correctly apply this new utility, and the added tests in loggingContentGenerator.test.ts validate the integration. I've found one minor issue regarding an inconsistent import path, which I've commented on.

@yunaseoul yunaseoul enabled auto-merge February 19, 2026 21:04
@gemini-cli gemini-cli bot added area/platform Issues related to Build infra, Release mgmt, Testing, Eval infra, Capacity, Quota mgmt 🔒 maintainer only ⛔ Do not contribute. Internal roadmap item. labels Feb 19, 2026
@yunaseoul yunaseoul added this pull request to the merge queue Feb 19, 2026
Merged via the queue into main with commit 8064973 Feb 19, 2026
27 checks passed
@yunaseoul yunaseoul deleted the yunaseol/error_type branch February 19, 2026 21:28
spencer426 pushed a commit that referenced this pull request Feb 20, 2026
Co-authored-by: Yuna Seol <yunaseol@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/platform Issues related to Build infra, Release mgmt, Testing, Eval infra, Capacity, Quota mgmt 🔒 maintainer only ⛔ Do not contribute. Internal roadmap item.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve API Error Dashboard granularity: fix missing error codes and generic messaging

2 participants