Repository navigation
Important Changes
-
feat(bundler-plugins): Enable hidden source maps and remove them after upload (#25637, #25645, #25646, #25647, #25648)
The Sentry Rollup, Vite, webpack and esbuild plugins now turn on hidden source maps when your bundler has no source maps enabled and the plugin can upload them. They upload the maps to Sentry and remove them from the build output. You no longer need to set
sourcemap: 'hidden'orfilesToDeleteAfterUploadglobs:sentryVitePlugin({ org, project, authToken });
The new
sourcemaps.deleteSourcemapsAfterUploadoption controls the removal:- Unset: the plugin removes only the source maps it turned on itself. Source maps you enabled yourself stay in the build output, as before.
true: the plugin also removes source maps you enabled yourself, and switches visible source maps to hidden. Set this if you already usesourcemap: 'hidden'and want to drop yourfilesToDeleteAfterUploadglobs.false: the plugin never removes source maps.
Builds in development mode or without an auth token, org and project do not change.
-
feat(cloudflare): Propagate tracing context through Queue messages (#25306)
Cloudflare Queue consumers can now link to the traces of the producers that sent the messages. Set
queueTracePropagationBindingsto the producer bindings that should add trace data to plain-object message bodies. Consumers remove this data before your handler runs, and thequeue.processspan links to every producer in the batch.export default Sentry.withSentry( env => ({ dsn: env.SENTRY_DSN, queueTracePropagationBindings: ['BILLING_QUEUE', /^JOBS_/], }), handler, );
-
feat(core): Answer managed tunnel requests in the runtime (#25997, #25998, #25999, #26000, #26001)
serveTunnelIntegration()now answers tunnel requests before they reach your app, in Node.js, Bun, Deno, Cloudflare Workers and AWS Lambda. You no longer need a framework integration or a route handler, so any server setup works with only the integration:Sentry.init({ dsn, integrations: [Sentry.serveTunnelIntegration()] });
To answer tunnel requests from your own code, set
serveTunnelIntegration({ intercept: false })and callhandleTunnelRequestIfMatched.
Other Changes
- feat(server-utils): Always warn on Bun when no channel injection is detected (#25857)
- feat(server-utils): Group the tool spans of an Anthropic session runner under one invoke_agent span (#25995)
- feat(tanstackstart-react): Deprecate
tunnelRoute(#26225) - fix(aws-serverless): Fork isolation scope per invocation (#26191)
- fix(aws-serverless): Omit default port from url.full on function.aws spans (#26227)
- fix(browser): Keep the current origin for
//paths inurl.full(#26165) - fix(cloudflare): Capture NonRetryableError before the final workflow step attempt (#26161)
- fix(cloudflare): Initialize the SDK before constructing a Durable Object (#26218)
- fix(cloudflare): Keep framework-managed methods when a Durable Object constructor throws (#25851)
- fix(core): Avoid stack overflow in FunctionToString on cyclic Proxy prototype chains (#26162)
- fix(core): Preserve parentheses in anonymous Node stack paths (#26216)
- fix(core): stop normalize() from throwing on symbol and null-prototype errors (#25967)
- fix(core): Use the final segment span name for streamed spans that end before a rename (#26178)
- fix(deps): Bump the sentry CLI to ^0.49.0 (#26200)
- fix(esbuild): Avoid import-is-undefined warning for entries without a default export (#26132)
- fix(hono): Name routes without c.req.matchedRoutes (#25454)
- fix(nextjs,sveltekit): Hide git revision console on Windows (#26223)
- fix(node): Patch the mutable fs object in fsIntegration under native ESM (#26086)
- fix(node): Read syncBuiltinESMExports off the module namespace so Deno can load @sentry/node (#26155)
- fix(server-utils): Count Bedrock prompt-cache tokens as input tokens (#26147)
- fix(server-utils): Create an invoke_agent span for LangGraph stream() (#25749)
- fix(server-utils): End Bedrock stream spans with an error status on failure (#26131)
- fix(server-utils): Keep Bedrock InvokeModel spans for byte, non-JSON, or model-less bodies (#26124)
- fix(server-utils): Mark AI streaming spans as errored when the stream fails midway (#26023)
- fix(server-utils): Read Bedrock Claude stream output tokens from message_delta (#26170)
- fix(server-utils): Read Bedrock Mistral and Cohere stream token counts from invocation metrics (#26176)
- fix(server-utils): Record Anthropic system instructions from text blocks (#26182)
- fix(server-utils): Record Bedrock finish reasons as a JSON string (#26184)
- fix(server-utils): Record LangGraph finish reasons as a JSON string (#26185)
- fix(server-utils): Record Vercel AI system instructions from message objects (#26181)
- fix(sveltekit): Read navigation untracked in the Kit 3 fetch wrapper (#26136)
Internal Changes
- chore(deps): Bump @modelcontextprotocol/server and client to 2.4.0 (#26116)
- chore(deps): Bump
@sentry/conventionsto 0.31.0 (#26160) - chore(deps): Bump
@sentry/conventionsto 0.32.0 (#26222) - chore(deps): Bump body-parser to fix CVE-2026-111181 (#26164)
- chore(deps): Bump dependencies to fix in-range security alerts (#26221)
- chore(deps): Bump nanoid to fix CVE-2026-73086 (#26173)
- chore(deps): Bump nx from 22.7.10 to 24.0.3 (#26110)
- chore(deps): Bump path-to-regexp to fix CVE-2026-4867 (#26174)
- chore(deps): Bump rrweb to 2.46.0 (#26241)
- chore(deps): Bump vite to 6.4.5 and 7.3.7 (#26113)
- chore(deps): Remove unused dependencies from workspace packages (#26230)
- chore(deps-dev): Bump vite from 8.3.5 to 8.3.6 (#26243)
- chore: use native
node:fsfor removal scripts (#26219) - docs: Point Sentry Conventions links to conventions.sentry.dev (#26156)
- feat(deps): Bump ws from 8.18.0 to 8.22.2 (#26242)
- fix(ci): refresh lockfile deprecation metadata (#26183)
- perf(ci): (more) sharding of browser and runtime integration tests (#26163)
- perf(ci): cache WebKit system package downloads (#26198)
- perf(ci): combine circular dependency checks across entrypoints (#26195)
- perf(ci): decouple ordinary E2E tests from the AWS Lambda layer build (#26167)
- perf(ci): isolate SQL Server tests and use ARM integration runners (#26148)
- perf(ci): minimize Playwright system dependency installation (#26159)
- perf(ci): use ARM runners for builds and selected tests (#26106)
- perf(ci): Use pnpm pack for tarballs (#26024)
- ref(core): Set up log and metric flushing on first capture (#26146)
- ref(server-utils): Add shared isBun, isDeno and isCloudflareWorkers helpers (#26111)
- test(aws-serverless): Add Bedrock streaming integration scenario (#26190)
- test(browser): Trigger third-party errors after initialization (#26206)
- test(browser): Use navigation-aware back actions in bfcache tests (#26208)
- test(bundler-plugins): Add integration tests for
sourcemaps.assetsandsourcemaps.ignore(#25916) - test(bundler-plugins): Increase timeout for webpack release-injection test (#26172)
- test(cloudflare): Poll Workflow send aborts in the run context (#26207)
- test(cloudflare): tolerate span timestamp rounding (#26196)
- test(e2e): Fix cloudflare-pi-durable builds (#26235)
- test(e2e): Pin elysia to v1 in the elysia-node test app (#26215)
- test(e2e): Remove unused dependencies from E2E test apps (#26231)
- test(hono): Fix flaky middleware error status test (#26213)
- test(hono): relax middleware span timing assertions (#26199)
- test(node): collect TypeSafe spans across streamed envelopes (#26151)
- test(nuxt): Keep Nitro 2 WebSocket handlers resolvable with the managed tunnel (#26082)
- test(react): Synchronize lazy-route navigation cancellation (#26210)
- test(replay): Collect request spans across recording segments (#26209)
Work in this release was contributed by @lazerg, @rjmcgee53192, @adityankale190895, @arthurfiorette, @chan-mai, @nuntz, and @43081j. Thank you for your contributions!
Bundle size 📦
| Path | Size |
|---|---|
| @sentry/browser | 29.22 KB |
| @sentry/browser - with treeshaking flags | 27.42 KB |
| @sentry/browser - with treeshaking flags tracing without tracing | 27.32 KB |
| @sentry/browser (incl. Tracing) | 51.07 KB |
| @sentry/browser (incl. Tracing + Span Streaming) | 51.08 KB |
| @sentry/browser (incl. Tracing, Profiling) | 53.98 KB |
| @sentry/browser (incl. Tracing, Replay) | 90.52 KB |
| @sentry/browser (incl. Tracing, Replay) - with treeshaking flags | 79.46 KB |
| @sentry/browser (incl. Tracing, Replay with Canvas) | 95.15 KB |
| @sentry/browser (incl. Tracing, Replay, Feedback) | 107.83 KB |
| @sentry/browser (incl. Feedback) | 46.41 KB |
| @sentry/browser (incl. sendFeedback) | 34.19 KB |
| @sentry/browser (incl. FeedbackAsync) | 39.19 KB |
| @sentry/browser (incl. Metrics) | 30.75 KB |
| @sentry/browser (incl. Logs) | 31.03 KB |
| @sentry/browser (incl. Metrics & Logs) | 31.69 KB |
| @sentry/react | 31.03 KB |
| @sentry/react (incl. Tracing) | 53.48 KB |
| @sentry/vue | 37.44 KB |
| @sentry/vue (incl. Tracing) | 54.04 KB |
| @sentry/svelte | 29.25 KB |
| @sentry/remix (Remix 3 client bundle) | 56.56 KB |
| CDN Bundle | 30.98 KB |
| CDN Bundle (incl. Tracing) | 51.65 KB |
| CDN Bundle (incl. Logs, Metrics) | 33.71 KB |
| CDN Bundle (incl. Tracing, Logs, Metrics) | 54.09 KB |
| CDN Bundle (incl. Replay, Logs, Metrics) | 74.22 KB |
| CDN Bundle (incl. Tracing, Replay) | 89.03 KB |
| CDN Bundle (incl. Tracing, Replay, Logs, Metrics) | 91.53 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) | 95.01 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) | 97.55 KB |
| CDN Bundle - uncompressed | 90.59 KB |
| CDN Bundle (incl. Tracing) - uncompressed | 152.36 KB |
| CDN Bundle (incl. Logs, Metrics) - uncompressed | 98.91 KB |
| CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed | 159.96 KB |
| CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed | 227.72 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed | 271.52 KB |
| CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed | 279.11 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed | 284.9 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed | 292.48 KB |
| @sentry/nextjs (client) | 56.38 KB |
| @sentry/sveltekit (client) | 51.58 KB |
| @sentry/core/server | 43.25 KB |
| @sentry/core/browser | 13.7 KB |
| @sentry/node | 153.71 KB |
| @sentry/node/import (ESM hook with diagnostics-channel injection) | 80.35 KB |
| @sentry/node - without tracing | 94.87 KB |
| @sentry/node - without channel injection | 134.46 KB |
| @sentry/aws-serverless | 103.36 KB |
| @sentry/cloudflare (withSentry) - minified | 198.74 KB |
| @sentry/cloudflare (withSentry) | 493.9 KB |
| @sentry/nextjs/cloudflare (withSentry) - minified | 219.91 KB |