Skip to content

fix(graphql): filter invalid schema queries from Sentry - #2455

Open
sentry[bot] wants to merge 1 commit into
mainfrom
seer/fix/filter-invalid-gql-errors
Open

sentry[bot] wants to merge 1 commit into
mainfrom
seer/fix/filter-invalid-gql-errors

Conversation

@sentry

@sentry sentry Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

This change modifies the GraphQL error formatter to prevent logging and capturing client-side schema validation errors (e.g., querying non-existent fields) in Sentry. Previously, anonymous external clients making such invalid queries would trigger Sentry events, creating unnecessary noise.

The error_formatter in apps/codecov-api/graphql_api/views.py now includes an explicit check for is_bad_query (indicating a schema validation error) and returns the masked error response without logging or capturing the exception in Sentry. The response to the client remains a generic INTERNAL SERVER ERROR to avoid leaking schema details.

Legal Boilerplate

Look, I get it. The entity doing business as "Codecov" is owned by Harness, Inc. In 2026 Harness acquired Codecov and as a result Harness is going to need some rights from me in order to utilize my contributions in this PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Harness can use, modify, copy, and redistribute my contributions, under Harness's choice of terms.

Fixes API-F78

@sentry <feedback>: Autofix iterates on these changes
@sentry stop iterating: Autofix stops iterating on this run

This PR was automatically generated by Sentry. You can adjust this setting at any time.


Note

Low Risk
Observability-only change in error handling; no change to GraphQL responses or auth paths.

Overview
GraphQL invalid-field queries no longer hit Sentry or error logs.

The error_formatter in graphql_api/views.py already treats "Cannot query field" messages as client mistakes and masks them as a generic internal error for most callers. This PR adds an explicit elif is_bad_query branch so those cases skip log.error and capture_exception, which previously ran when the underlying error was not a known app exception type.

Client-facing behavior is unchanged: anonymous or masked responses still avoid leaking schema details.

Reviewed by Cursor Bugbot for commit 3dc73af. Bugbot is set up for automated code reviews on this repo. Configure here.

@codecov-notifications

codecov-notifications Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@codecov

codecov Bot commented Oct 6, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.65%. Comparing base (65af8ae) to head (3dc73af).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2455   +/-   ##
=======================================
  Coverage   91.65%   91.65%           
=======================================
  Files        1341     1341           
  Lines       53342    53344    +2     
  Branches     1649     1649           
=======================================
+ Hits        48888    48890    +2     
  Misses       4133     4133           
  Partials      321      321           
Flag Coverage Δ
apiunit 94.02% <100.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants