Skip to content

fix(v10/core): Don't capture caller-handled LangGraph errors - #23639

Merged
nicohrubec merged 1 commit into
v10from
backport/v10/langgraph-error-capture
Aug 26, 2026
Merged

nicohrubec merged 1 commit into
v10from
backport/v10/langgraph-error-capture

Conversation

@nicohrubec

@nicohrubec nicohrubec commented Aug 26, 2026

Copy link
Copy Markdown
Member

Backport of: #23594

Differences to the original PR

  • On v10 the LangGraph instrumentation lives in packages/core/src/tracing/langgraph/ (it moved to @sentry/server-utils on v11), so the change is applied there with v10's internal imports.
  • v10's instrumentStateGraphCompile has an extra catch around compile() that also captured the error. That site does not exist on v11, but it is the same caller-handled pattern, so it is dropped too. v10 now has zero LangGraph captures, matching develop.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 8c85d68. Configure here.

@github-actions

Copy link
Copy Markdown
Contributor

size-limit report 📦

Path Size % Change Change
@sentry/browser 27.75 kB added added
@sentry/browser - with treeshaking flags 26.19 kB added added
@sentry/browser (incl. Tracing) 46.6 kB added added
@sentry/browser (incl. Tracing + Span Streaming) 48.39 kB added added
@sentry/browser (incl. Tracing, Profiling) 51.36 kB added added
@sentry/browser (incl. Tracing, Replay) 85.84 kB added added
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 75.48 kB added added
@sentry/browser (incl. Tracing, Replay with Canvas) 90.58 kB added added
@sentry/browser (incl. Tracing, Replay, Feedback) 103.21 kB added added
@sentry/browser (incl. Feedback) 44.92 kB added added
@sentry/browser (incl. sendFeedback) 32.54 kB added added
@sentry/browser (incl. FeedbackAsync) 37.68 kB added added
@sentry/browser (incl. Metrics) 28.83 kB added added
@sentry/browser (incl. Logs) 29.06 kB added added
@sentry/browser (incl. Metrics & Logs) 29.75 kB added added
@sentry/react 29.56 kB added added
@sentry/react (incl. Tracing) 48.86 kB added added
@sentry/vue 33.18 kB added added
@sentry/vue (incl. Tracing) 48.57 kB added added
@sentry/svelte 27.77 kB added added
CDN Bundle 30.14 kB added added
CDN Bundle (incl. Tracing) 48.57 kB added added
CDN Bundle (incl. Logs, Metrics) 31.72 kB added added
CDN Bundle (incl. Tracing, Logs, Metrics) 49.87 kB added added
CDN Bundle (incl. Replay, Logs, Metrics) 70.99 kB added added
CDN Bundle (incl. Tracing, Replay) 86.07 kB added added
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) 87.37 kB added added
CDN Bundle (incl. Tracing, Replay, Feedback) 91.87 kB added added
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) 93.14 kB added added
CDN Bundle - uncompressed 89.87 kB added added
CDN Bundle (incl. Tracing) - uncompressed 146.79 kB added added
CDN Bundle (incl. Logs, Metrics) - uncompressed 94.58 kB added added
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed 150.77 kB added added
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed 219.34 kB added added
CDN Bundle (incl. Tracing, Replay) - uncompressed 266.03 kB added added
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed 269.99 kB added added
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 279.73 kB added added
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed 283.69 kB added added
@sentry/nextjs (client) 51.41 kB added added
@sentry/sveltekit (client) 47.02 kB added added
@sentry/core/server 80.56 kB added added
@sentry/core/browser 66.77 kB added added
@sentry/node-core 63.27 kB added added
@sentry/node 125.8 kB added added
@sentry/node (incl. diagnostics channel injection) 151.26 kB added added
@sentry/node/import (ESM hook with diagnostics-channel injection) 70.03 kB added added
@sentry/node/light 51.43 kB added added
@sentry/node - without tracing 74.95 kB added added
@sentry/aws-serverless 84.22 kB added added
@sentry/cloudflare (withSentry) - minified 202.05 kB added added
@sentry/cloudflare (withSentry) 496.75 kB added added

@nicohrubec
nicohrubec marked this pull request as ready for review August 26, 2026 11:22
@nicohrubec
nicohrubec requested a review from a team as a code owner August 26, 2026 11:22
@nicohrubec
nicohrubec requested review from andreiborza and isaacs and removed request for a team August 26, 2026 11:22
Base automatically changed from backport/v10/ai-client-error-capture to v10 August 26, 2026 11:50
@nicohrubec
nicohrubec force-pushed the backport/v10/langgraph-error-capture branch from 8c85d68 to c6f21ee Compare August 26, 2026 11:50
@nicohrubec
nicohrubec merged commit 457314a into v10 Aug 26, 2026
309 of 315 checks passed
@nicohrubec
nicohrubec deleted the backport/v10/langgraph-error-capture branch August 26, 2026 12:10
brandhaug added a commit to brandhaug/b2b-saas-starter that referenced this pull request Sep 5, 2026
## Dependency Updates

| Package | From | To | Type |
| --- | --- | --- | --- |
| `@sentry/react` | 10.71.0 | 10.73.0 | minor |

## Release Notes

<details>
<summary><b>@sentry/react</b> (10.71.0 → 10.73.0) — 2 releases</summary>

<details>
<summary><b>10.73.0</b></summary>

### Important Changes

- **feat(v10/nextjs): Add `@sentry/nextjs/config` entry point
([#23766](getsentry/sentry-javascript#23766

`withSentryConfig` is now available from `@sentry/nextjs/config`, the
path it moves to in v11. Importing it from `@sentry/nextjs` still works
on v10 but logs a warning once, so you can change your `next.config`
file today and upgrade to v11 without touching it again.

  ```js
  // next.config.mjs
  - import { withSentryConfig } from '@sentry/nextjs';
  + import { withSentryConfig } from '@sentry/nextjs/config';
  ```

### Other Changes

- feat(v10/node): Deprecate `shouldHandleError` on
`setupExpressErrorHandler` and `setupFasitfyErrorHandler`
([#23734](getsentry/sentry-javascript#23734))
- fix(v10/cloudflare): Instrument Durable Object handlers installed as
read-only properties
([#23769](getsentry/sentry-javascript#23769))

<details>
  <summary><strong>Internal Changes</strong></summary>

- test(v10/nextjs): Drop nextjs-16-cf-workers canary variant
([#23775](getsentry/sentry-javascript#23775))

</details>

## Bundle size 📦 

| Path | Size |
|
--------------------------------------------------------------------------
| ----------------- |
| @sentry/browser | 27.1 KB |
| @sentry/browser - with treeshaking flags | 25.58 KB |
| @sentry/browser (incl. Tracing) | 45.54 KB |
| @sentry/browser (incl. Tracing + Span Streaming) | 47.28 KB |
| @sentry/browser (incl. Tracing, Profiling) | 50.17 KB |
| @sentry/browser (incl. Tracing, Replay) | 83.87 KB |
| @sentry/browser (incl. Tracing, Replay) - with treeshaking flags |

…[full
notes](https://github.com/getsentry/sentry-javascript/releases/tag/10.73.0)

</details>

<details>
<summary><b>10.72.0</b></summary>

### Important Changes

- **AI integrations no longer report errors that propagate to the caller
([#23638](getsentry/sentry-javascript#23638),
[#23639](getsentry/sentry-javascript#23639),
[#23640](getsentry/sentry-javascript#23640

Across all AI integrations (OpenAI, Anthropic, Google GenAI, LangChain,
and LangGraph), the SDK no longer sends an event to Sentry for errors
that the AI framework propagates to your code. Previously the
instrumentation reported these as unhandled (`handled: false`) before
your own error handling ran, so an error your code caught still showed
up in Sentry as an unhandled crash. The span is still marked as errored
and the error still propagates, so reporting is left to your
application: if your code does not handle the error, it reaches Sentry's
global error handlers and is captured as unhandled, just like any other
uncaught error. Errors that a provider surfaces as data on an otherwise
successful response (such as Anthropic error-shaped responses or Google
GenAI blocked content) are still captured, since your code never sees
them propagate.

- **feat(v10/cloudflare): Add `rpcTracePropagationBindings`
([#23737](getsentry/sentry-javascript#23737),
[#23738](getsentry/sentry-javascript#23738

The new `rpcTracePropagationBindings` option names the `env` bindings
that outgoing RPC calls propagate trace context to. Strings match a
binding name exactly, regular expressions match by pattern, and the
default empty array propagates to nothing. RPC has no headers to carry
trace context, so the SDK appends it as a trailing argument that only a
Sentry-instrumented receiver removes again. List only the bindings whose
receiver you know runs Sentry. Setting the option takes precedence over
`enableRpcTracePropagation`, which is now deprecated. When you build
with the Sentry Cloudflare Vite plugin, the bindings that resolve to t

…[full
notes](https://github.com/getsentry/sentry-javascript/releases/tag/10.72.0)

</details>

</details>

---
*This PR was auto-generated by
[catalog-update-action](https://github.com/brandhaug/catalog-update-action).*
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.

2 participants