Important Changes
-
feat(cloudflare): Add
nodejs_compatentrypoint (#21881)The Cloudflare SDK now ships a dedicated
@sentry/cloudflare/nodejs_compatentrypoint for Workers running with thenodejs_compatflag. This entrypoint unlocks Node SDK features on Cloudflare, including theprismaIntegration(#21882) and AI v7 support for thevercelAiIntegration(#21917).This entrypoint is a drop-in replacement, so you can switch your imports from
@sentry/cloudflaredirectly to@sentry/cloudflare/nodejs_compat. To use it, your Worker must set thenodejs_compatcompatibility flag inwrangler.toml/wrangler.jsonc. This will become the default entrypoint in v11. -
feat: Use Sentry's minimal OpenTelemetry tracer provider by default (#21666, #21680, #21842)
The Node SDK now registers Sentry's own minimal
SentryTracerProviderby default, which creates native Sentry spans directly instead of routing them through the full OpenTelemetry SDK span pipeline. This reduces overhead for the common case where you don't need the full OpenTelemetry tracing stack.If you rely on OpenTelemetry SDK features that the minimal provider doesn't support, you can opt out and fall back to the full OpenTelemetry
BasicTracerProviderby settingopenTelemetryBasicTracerProvider: truein yourSentry.init()options. Providing customopenTelemetrySpanProcessorsalso forces the full provider automatically.
Other Changes
- feat(bun,deno,node): pg orchestrion instrumentation (#21826)
- feat(bun): enable new mysql, pg integrations in 'bun build' (#21828)
- feat(cloudflare): Enable AI v7 support for Cloudflare in the /nodejs_compat entrypoint (#21917)
- feat(cloudflare): Expose prismaIntegration in nodejs_compat export (#21882)
- feat(core): Add
sentry.trace_lifecycleattribute (#21850) - feat(core): Add deferred segment-span transaction capture (#21839)
- feat(deps): Bump OpenTelemetry dependencies to latest (#21988)
- feat(mongoose): Instrument mongoose >= 9.7 via native tracing channels (#21803)
- feat(replays): Record segment names that occur during replay (#21851)
- fix(browser): Accept precisely-typed GrowthBook class in growthbookIntegration (#21825)
- fix(browser): Flush telemetry when page is hidden (#21862)
- fix(cloudflare): Catch potential errors during flush and dispose (#21976)
- fix(core): Capture Anthropic stream stop_reason from message_delta (#21907)
- fix(core): Print getTraceMetaTags in 1 line to prevent hydration errors (#22004)
- fix(nextjs): Add immutable browser chunks to upload assets (#21978)
- fix(nextjs): Handle
Middleware.executeroot spans on Node.js runtime (#22013) - fix(react/solid/vue): Instrument TanStack Router navigations via
onBeforeLoad/onResolved(#21975)
Internal Changes
- chore: Add experimentalUseDiagnosticsChannelInjection in node size-limit (#21992)
- chore: Add external contributor to CHANGELOG.md (#21945)
- chore: Clarify usage of hoistTransitiveImports option (#21888)
- chore: Make @sentry/conventions sideEffect free during bundling (#22015)
- chore: Remove runtime ESM/CJS switching (#21761)
- chore(ci): Replace
app-idwithclient-idin GH workflows (#21914) - chore(cloudflare): Disallow Node SDK usage outside of nodejs_compat (#21884)
- chore(cloudflare): Disallow server-utils usage outside of nodejs_compat (#21918)
- chore(node-core): Move isCjs to its own file to prevent sideEffects (#21856)
- ci: Increase Node integration test timeout to 20 minutes (#21903)
- deps(server-utils): Bump @apm-js-collab/tracing-hooks to 0.10.1 (#21892)
- feat(server-utils): Implement orchestrion-based instrumentation for vercel-ai v6 (#21658)
- feat(server-utils): Migrate
@opentelemetry/instrumentation-ioredisto orchestrion (#21849) - feat(server-utils): Migrate Anthropic integration to orchestrion (#21902)
- feat(server-utils): Migrate OpenAI integration to orchestrion (#21877)
- feat(server-utils): Rewrite
@opentelemetry/instrumentation-hapito orchestrion (#21866) - ref(core): Add
@sentry/conventionsto@sentry/coreand align versions (#21855) - ref(deno): add deno-integration-tests dev-package (#21827)
- ref(node-core): Move node fetch instrumentation into node-core (#21873)
- ref(node): Fold breadcrumb & trace propagation into node fetch instrumentation (#21872)
- ref(node): Refactor orchestrion config into separate files (#21957)
- ref(node): Streamline Prisma v5 instrumentation (#21980)
- ref(node): Use
@sentry/conventionsand vendor remaining semantic conventions (#21893) - test(browser): Fix web worker route-registration race in debug ID test (#21920)
- test(e2e): Fix failing nitro-3 e2e test due to broken dependency (#21895)
- test(e2e): Revert nf3 dependency override in nitro-3 e2e test (#21951)
- test(e2e): Use
injectDiagnosticsfor orchestrion marker (#21987) - test(google-genai): Move google-genai integration tests to use a real client (#21909)
- test(nextjs): Tolerate aborted navigation in streaming RSC error E2E test (#21847)
- test(node): Attempt to unflake docker-based node integration tests (#21905)
- test(node): Automatically run all node-integration tests with orchestrion (#21911)
- test(node): Collapse mysql span streaming tests into same suite (#21890)
- test(node): Ensure logs are auto-printed when a test fails (#21887)
- test(node): Improve tests for Prisma v5 (#21876)
- test(node): Migrate fs & contextLines-filename integration tests to helpers (#21958)
- test(node): Migrate http client span tests to createCjsTests (#21956)
- test(node): Migrate logging integration tests to create*Tests helpers (#21955)
- test(node): Refactor remaining express integrations tests to new runner (#21949)
- test(node): Update pg-native tests to use
additionalDependencies(#21878) - tests(core): Move anthropic node integration tests to use a real client (#21906)
Work in this release was contributed by @codr and @zenato. Thank you for your contribution!
Bundle size 📦
| Path | Size |
|---|---|
| @sentry/browser | 26.94 KB |
| @sentry/browser - with treeshaking flags | 25.42 KB |
| @sentry/browser (incl. Tracing) | 45.16 KB |
| @sentry/browser (incl. Tracing + Span Streaming) | 46.89 KB |
| @sentry/browser (incl. Tracing, Profiling) | 49.82 KB |
| @sentry/browser (incl. Tracing, Replay) | 83.53 KB |
| @sentry/browser (incl. Tracing, Replay) - with treeshaking flags | 73.38 KB |
| @sentry/browser (incl. Tracing, Replay with Canvas) | 88.12 KB |
| @sentry/browser (incl. Tracing, Replay, Feedback) | 100.48 KB |
| @sentry/browser (incl. Feedback) | 43.71 KB |
| @sentry/browser (incl. sendFeedback) | 31.62 KB |
| @sentry/browser (incl. FeedbackAsync) | 36.63 KB |
| @sentry/browser (incl. Metrics) | 28 KB |
| @sentry/browser (incl. Logs) | 28.23 KB |
| @sentry/browser (incl. Metrics & Logs) | 28.9 KB |
| @sentry/react | 28.7 KB |
| @sentry/react (incl. Tracing) | 47.38 KB |
| @sentry/vue | 32.25 KB |
| @sentry/vue (incl. Tracing) | 46.98 KB |
| @sentry/svelte | 26.97 KB |
| CDN Bundle | 29.3 KB |
| CDN Bundle (incl. Tracing) | 47.11 KB |
| CDN Bundle (incl. Logs, Metrics) | 30.83 KB |
| CDN Bundle (incl. Tracing, Logs, Metrics) | 48.38 KB |
| CDN Bundle (incl. Replay, Logs, Metrics) | 69.15 KB |
| CDN Bundle (incl. Tracing, Replay) | 83.73 KB |
| CDN Bundle (incl. Tracing, Replay, Logs, Metrics) | 84.99 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) | 89.38 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) | 90.64 KB |
| CDN Bundle - uncompressed | 87.26 KB |
| CDN Bundle (incl. Tracing) - uncompressed | 142.54 KB |
| CDN Bundle (incl. Logs, Metrics) - uncompressed | 91.85 KB |
| CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed | 146.42 KB |
| CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed | 213.62 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed | 258.91 KB |
| CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed | 262.78 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed | 272.29 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed | 276.15 KB |
| @sentry/nextjs (client) | 49.75 KB |
| @sentry/sveltekit (client) | 45.56 KB |
| @sentry/core/server | 76.54 KB |
| @sentry/core/browser | 63.21 KB |
| @sentry/node-core | 61.73 KB |
| @sentry/node | 120.85 KB |
| @sentry/node (incl. diagnostics channel injection) | 126.65 KB |
| @sentry/node/import (ESM hook with diagnostics-channel injection) | 68.31 KB |
| @sentry/node/light | 49.53 KB |
| @sentry/node - without tracing | 73.06 KB |
| @sentry/aws-serverless | 83.59 KB |
| @sentry/cloudflare (withSentry) - minified | 177.42 KB |
| @sentry/cloudflare (withSentry) | 438.86 KB |