@sentry/node-core
10.75.2 · 22 Sep 2026MIT23.4M / weekRepositoryHomepagenpmAtom feed
102 stable releases, newest first, by release line. Notes are quoted as the maintainers published them.
10.77.1
27 Oct 2026Reading the note…
10.76.2
8 Oct 2026Reading the note…
10.76.1
6 Oct 2026Reading the note…
10.76.0
2 Oct 2026Reading the note…
10.75.3
23 Sep 2026Reading the note…
10.75.2
22 Sep 2026v10/cloudflare: Enforce flush timeout across Workflow lifecycle
v10/core: Apply
dataCollection.urlQueryParamsto collected URLs and query stringsv10/nextjs: Align tunnel request matching in middleware with tunnel rewrite
v10/cloudflare: Enforce flush timeout across Workflow lifecycle
v10/core: Apply
dataCollection.urlQueryParamsto collected URLs and query stringsv10/nextjs: Align tunnel request matching in middleware with tunnel rewrite
v10/node: Stop leaking unhandled rejections on aborted Vercel AI streams
10.75.1
21 Sep 2026v10/cloudflare: Capture telemetry from untraced Durable Object RPC calls
v10/cloudflare: Instrument namespaces returned by jurisdiction()
v10/hono: Allow @cloudflare/workers-types v5 as peer dependency
v10/cloudflare: Capture telemetry from untraced Durable Object RPC calls
v10/cloudflare: Instrument namespaces returned by jurisdiction()
v10/hono: Allow @cloudflare/workers-types v5 as peer dependency
v10/nextjs: Resolve Next.js version relative to the SDK when cwd differs
10.75.0
16 Sep 2026v10/effect: Capture errors through the Effect v4
ErrorReporterAPIOn Effect v4,
Sentry.effectLayernow registers a SentryErrorReporter. Failures that pass throughEffect.withErrorReporting,ErrorReporter.reportor the built-in HTTP and RPC reporting boundaries are captured automatically, withErrorReporter.ignore,ErrorReporter.severityandErrorReporter.attributesannotations respected. Nothing changes on Effect v3.v10/core: Accept a
CollectBehaviorshorthand fordataCollection.httpHeadersv10/browser: Release the XHR
virtualErroronce the request completed
Important Changes
v10/effect: Capture errors through the Effect v4
ErrorReporterAPIOn Effect v4,
Sentry.effectLayernow registers a SentryErrorReporter. Failures that pass throughEffect.withErrorReporting,ErrorReporter.reportor the built-in HTTP and RPC reporting boundaries are captured automatically, withErrorReporter.ignore,ErrorReporter.severityandErrorReporter.attributesannotations respected. Nothing changes on Effect v3.
Other Changes
v10/core: Accept a
CollectBehaviorshorthand fordataCollection.httpHeadersv10/browser: Release the XHR
virtualErroronce the request completedv10/browser-utils: Skip nullish LCP entries in vendored web-vitals
v10/bundler-plugins: Stamp debug IDs onto emitted source maps when
disable-uploadis setv10/core: Don't instrument the SDK's own envelope requests
v10/nextjs: Only include emitted chunk directories in Turbopack sourcemap upload
v10/nitro: Import from nitro/h3 instead of h3 directly
v10/node-core: Don't recurse in logAndExitProcess on a broken stdio pipe
v10/nuxt: Detect Nitro version via the app's Nuxt dependency chain
v10/replay: Don't rewrite already-emitted nodes when syncing mirror attributes
10.74.0
9 Sep 2026v10: Streamline isolation scope handling & reset in isolation scopes
server-utils: Include Gemini reasoning tokens in Vercel AI token usage
v10/browser: Set
user_agent.originalon all spans for consistent filtering
v10: Streamline isolation scope handling & reset in isolation scopes
server-utils: Include Gemini reasoning tokens in Vercel AI token usage
v10/browser: Set
user_agent.originalon all spans for consistent filteringv10/cloudflare: Auto-instrument classes re-exported from the worker entry
v10/core: Guard
loadModuledefault parameter against ESM scopev10/core: Match wrapped Facebook Mobile browser errors in
DEFAULT_IGNORE_ERRORSv10/core: Resolve MCP capture policy per operation
v10/nextjs: Fix SDK import crashing under jsdom/happy-dom
v10/nextjs: Keep the Pages Router runtime out of App Router client bundles
v10/nextjs: Register Vercel AI span processors on Next.js
v10/nuxt: Windows file:// for import-in-the-middle hook and isAbsolute for C:\
v10/sveltekit: Handle SvelteKit 3 error kinds in handleErrorWithSentry
v10/sveltekit: Read Cloudflare execution context from platform.ctx
v10/sveltekit: Read SvelteKit config from the Vite plugin
Internal Changes
Work in this release was contributed by @halillusion and @zkasuran. Thank you for your contributions!
10.73.0
31 Aug 2026- deprecated
v10/node: Deprecate
shouldHandleErroronsetupExpressErrorHandlerandsetupFasitfyErrorHandler v10/nextjs: Add
@sentry/nextjs/configentry pointwithSentryConfigis now available from@sentry/nextjs/config, the path it moves to in v11. Importing it from@sentry/nextjsstill works on v10 but logs a warning once, so you can change yournext.configfile today and upgrade to v11 without touching it again.// next.config.mjs - import { withSentryConfig } from '@sentry/nextjs'; + import { withSentryConfig } from '@sentry/nextjs/config';v10/cloudflare: Instrument Durable Object handlers installed as read-only properties
Important Changes
v10/nextjs: Add
@sentry/nextjs/configentry pointwithSentryConfigis now available from@sentry/nextjs/config, the path it moves to in v11. Importing it from@sentry/nextjsstill works on v10 but logs a warning once, so you can change yournext.configfile today and upgrade to v11 without touching it again.// next.config.mjs - import { withSentryConfig } from '@sentry/nextjs'; + import { withSentryConfig } from '@sentry/nextjs/config';
Other Changes
- deprecated
v10/node: Deprecate
shouldHandleErroronsetupExpressErrorHandlerandsetupFasitfyErrorHandler v10/cloudflare: Instrument Durable Object handlers installed as read-only properties
Internal Changes
10.72.0
28 Aug 2026AI integrations no longer report errors that propagate to the caller (#23638, #23639, #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.v10/cloudflare: Add
rpcTracePropagationBindings(#23737, #23738)The new
rpcTracePropagationBindingsoption names theenvbindings 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 overenableRpcTracePropagation, which is now deprecated. When you build with the Sentry Cloudflare Vite plugin, the bindings that resolve to this worker (its own Durable Objects and self service bindings) are derived from your wrangler config and added for you.v10/astro: Support astro v7 route patterns properly
Important Changes
AI integrations no longer report errors that propagate to the caller (#23638, #23639, #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.v10/cloudflare: Add
rpcTracePropagationBindings(#23737, #23738)The new
rpcTracePropagationBindingsoption names theenvbindings 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 overenableRpcTracePropagation, which is now deprecated. When you build with the Sentry Cloudflare Vite plugin, the bindings that resolve to this worker (its own Durable Objects and self service bindings) are derived from your wrangler config and added for you.
Other Changes
v10/astro: Support astro v7 route patterns properly
v10/bundler-plugins: Preserve full file path in component annotation source maps
v10/core: Store child span timeout handle in
_childSpanTimeoutIDv10/node: Only end the process session when it is still ok
v10/react-router: Use react-router's own instrumentation types instead of a mirrored copy
v10/replay: Suppress Worker destroyed error on session expiry
v10/server-utils: Keep orchestrion registration out of tree-shaking
v10/server-utils: Stop shipping orchestrion bundler plugins as production dependencies
v10/server-utils: Support openai v7 in auto-instrumentation
v10/sveltekit: Detect native tracing in flattened SvelteKit 3 config
Internal Changes
Work in this release was contributed by @ryanrho-mercor, @lux-in-tenebris-lucet, and @suhailopensource. Thank you for your contributions!
10.71.0
24 Aug 2026- breaking
v10/core: Enable logs by default
- deprecated
v10/core: Deprecate
scope.clear()method v10/core: Bound child span tracking on long-lived spans
Important Changes
- breaking
v10/core: Enable logs by default
The
enableLogsclient option now defaults totrue, so Sentry Logs work without any manual opt-in. Nothing is captured unless you call theSentry.logger.*APIs or add a log-forwarding integration (such asconsoleLoggingIntegration,pinoIntegration, or the winston transport), and you can setenableLogs: falseto opt out. Although a default change like this would normally land in a major release, we are shipping it in a minor after careful consideration, since it sends no data on its own and only takes effect once you actively use the logging APIs or a logging integration.Other Changes
- deprecated
v10/core: Deprecate
scope.clear()method v10/core: Bound child span tracking on long-lived spans
v10/core: Read Supabase PostgREST headers from
Headersinstancesv10/hono: Use
captureExceptionfrom scope, not fromClientv10/nuxt: Delete source maps after Nitro finishes building
v10/react-router: Carry multi-byte UTF-8 across SSR stream chunk boundaries
v10/react: Match TanStack Router pageload against the router location
Internal Changes
10.70.0
10 Aug 2026v10/core: Support stable MCP SDK v2
v10/solid,solidstart: Support
@solidjs/routerv1v10/cloudflare: Fork the isolation scope for Durable Object methods
v10/core: Support stable MCP SDK v2
v10/solid,solidstart: Support
@solidjs/routerv1v10/cloudflare: Fork the isolation scope for Durable Object methods
v10/cloudflare: Get original waituntil in workflows
v10/cloudflare: Instrument DO RPC methods on the prototype, not a Proxy
v10/cloudflare: Set agent conversation id on the
onRequestpathv10/cloudflare: Set conversation id independent of session name
v10/cloudflare: Try/catch on non-configurable prototypes
v10/cloudflare: Use gen_ai.agent.name for class names
v10/core,browser: Handle errors from other realms
v10/core: Sample errors after
beforeSendwhile preserving session updatesv10/hono: Include originalException in captured exception hint
v10/nextjs:
meriyahissue forstandalonebuildv10/nextjs: Remove tracing from middleware wrappers
v10/profiling-node: Respect profileSessionSampleRate in trace profile lifecycle
v10/react-router: Preserve
sourcemaps.disablewhenunstable_sentryVitePluginOptionsis setv10/react: Remove routes from shared set on
<Routes>unmountv10/sveltekit: Export
metricsfrom worker entry point
Internal Changes
Work in this release was contributed by @davidmurdoch, @Jxxunnn, and @kamilogorek. Thank you for your contributions!
10.69.0
29 Jul 2026v10/cloudflare: Add
instrumentAgentWithSentryfor Cloudflare Agentsv10/cloudflare: Add Spotlight integration for local dev event forwarding
v10/cloudflare: Add wranglerConfigPath to Vite options
Important Changes
v10/cloudflare: Add
instrumentAgentWithSentryfor Cloudflare Agents
The Cloudflare SDK adds a new
instrumentAgentWithSentryAPI for Cloudflare Agents. It works likeinstrumentDurableObjectWithSentryforAgentclasses from theagentsSDK and additionally creates spans for@callableRPC methods and automatically sets theconversationIdbased on the agent's name. When building with the Sentry Vite plugin, Agents are instrumented automatically (#22788).Other Changes
v10/cloudflare: Add Spotlight integration for local dev event forwarding
v10/cloudflare: Add wranglerConfigPath to Vite options
v10/cloudflare: Filter framework-internal Durable Object storage spans
v10/cloudflare: Instrument Agents automatically
v10/cloudflare: Rotate agent conversation id on chat clear
v10/cloudflare: Also skip cf: prefixed DOs
v10/cloudflare: Filter
CREATE INDEXspans oncf_-prefixed tablesv10/cloudflare: Prevent AI provider skips
v10/core: Summarize SQLite upserts so Durable Object
cf_spans stay filteredv10/effect: Set
sentry.originon logs fromSentryEffectLoggerv10/gatsby: Add React 19 to peer dependency range
v10/node: Unpin
@apm-js-collab/code-transformer-bundler-pluginsv10/server-utils: Do not inject dc into client bundle
Internal Changes
10.68.0
24 Jul 2026cloudflare: Add @sentry/cloudflare/vite orchestrion plugin
nestjs: Support WebSocket errors in SentryGlobalFilter
node,server-utils: Set
cache.keyon dataloader spans and capture redis delete operations ascache.remove
cloudflare: Add @sentry/cloudflare/vite orchestrion plugin
nestjs: Support WebSocket errors in SentryGlobalFilter
node,server-utils: Set
cache.keyon dataloader spans and capture redis delete operations ascache.removeserver-utils: Allow integrations to be part of marker
server-utils: Migrate
FirebaseInstrumentationto orchestrionserver-utils: Warn when bundler config has instrumented module in external
v10: Add
http.routeattribute tohttp.serverspans with parameterized routesv10: Add
url.fullandurl.pathtohttp.serverspansv10/cloudflare: Auto-instrument Durable Object classes
v10/cloudflare: Auto-instrument the worker entry with withSentry
v10/cloudflare: Auto-instrument WorkerEntrypoint classes
v10/cloudflare: Auto-instrument Workflow classes
v10/cloudflare: Read wrangler config and resolve the Sentry options module
v10/core: Add
instrumentStateGraphAPIv10/core: Add
url.fullattribute to core fetch instrumentationv10/core: Support filtering
stackFrameVariablesby variable namev10/react-router: Make instrumentation API the default
cloudflare,deno,node: Align types of vercelai
core: Instrument Anthropic client in place instead of via a deep proxy
replay: Set text/javascript MIME type on compression worker Blob
sveltekit: Adapt frame rewriting for kit 3
v10: Pin
@apm-js-collab/code-transformer-bundler-pluginsto 0.7.1v10/cloudflare: Import prismaIntegration from server-utils
v10/core: Avoid
functionToStringIntegrationcausing infinite recursionsv10/core: Avoid propagating
baggage: "undefined"when DSC is missing
Internal Changes
Work in this release was contributed by @psh4607 and @trinitiwowka. Thank you for your contributions!
10.67.0
20 Jul 2026effect: Capture errors through the Effect v4
ErrorReporterAPIOn Effect v4,
Sentry.effectLayernow registers a SentryErrorReporter. Failures that pass throughEffect.withErrorReporting,ErrorReporter.reportor the built-in HTTP and RPC reporting boundaries are captured automatically, withErrorReporter.ignore,ErrorReporter.severityandErrorReporter.attributesannotations respected. Nothing changes on Effect v3.The server SDK now enables the
contextLinesandlinkedErrorsintegrations by default, so captured errors carry source context and theircausechain. No other Node default integration is enabled.sveltekit: Add support for SvelteKit 3
The SvelteKit SDK now supports the pre-release of SvelteKit 3, including client-side pageload and navigation tracing and server-side native tracing, alongside continued SvelteKit 2 support. No Sentry-specific setup changes are required. The SDK detects your SvelteKit version and picks the right implementation automatically.
aws-serverless: Use orchestrion aws-sdk integration under diagnostics-channel opt-in
Important Changes
effect: Capture errors through the Effect v4
ErrorReporterAPIOn Effect v4,
Sentry.effectLayernow registers a SentryErrorReporter. Failures that pass throughEffect.withErrorReporting,ErrorReporter.reportor the built-in HTTP and RPC reporting boundaries are captured automatically, withErrorReporter.ignore,ErrorReporter.severityandErrorReporter.attributesannotations respected. Nothing changes on Effect v3.The server SDK now enables the
contextLinesandlinkedErrorsintegrations by default, so captured errors carry source context and theircausechain. No other Node default integration is enabled.sveltekit: Add support for SvelteKit 3
The SvelteKit SDK now supports the pre-release of SvelteKit 3, including client-side pageload and navigation tracing and server-side native tracing, alongside continued SvelteKit 2 support. No Sentry-specific setup changes are required. The SDK detects your SvelteKit version and picks the right implementation automatically.
Other Changes
aws-serverless: Use orchestrion aws-sdk integration under diagnostics-channel opt-in
cloudflare: Auto-instrument Workers AI binding via env instrumentation
cloudflare: Instrument Cloudflare rate limiter bindings
core: Instrument workers-ai-provider
core: Rename
queryParamstourlQueryParamsmongodb: Implement orchestrion mongodb integration
mongoose: Implement orchestrion mongoose integration
node: Rewrite tedious instrumentation to orchestrion tracing channels
nuxt: Add
_experimental.useDiagnosticsChannelInjectionremix: Add orchestrion-based remix instrumentation
replay: Allow skipping the final flush on stop() via { flush: false }
server-utils: Add @opentelemetry/instrumentation-koa orchestrion integration
server-utils: Add orchestrion aws-sdk channel integration core
server-utils: Allow passing custom transforms to orchestrion
server-utils: Port S3, Kinesis, DynamoDB, SecretsManager and StepFunctions aws-sdk extensions
server-utils: Port SQS, SNS and Lambda aws-sdk extensions with trace propagation
server-utils: Rewrite
SentryLangChainInstrumentationto orchestrionserver-utils: Rewrite
SentryLangGraphInstrumentationto orchestrionvue: Set
navigation.route.idfrom the route namebundler: Do not import type from optional peer dep
cloudflare: Bind Durable Object built-in handlers
cloudflare: Instrument custom WorkerEntrypoint RPC methods
cloudflare: Route DO teardown through original
waitUntilcloudflare: Skip spans for Cloudflare-internal Durable Object SQL queries
core: Prevent functionToStringIntegration from throwing on cross-origin realms
core: Prevent infinite recursion when console is instrumented twice
nextjs: Mark internal chunk frames as not
in_appnode: Register tracer provider when OTel API global pre-exists with a different version
node-native: Don't drop breadcrumbs from event loop block events
serve-rutils: Orchestrion diagnostics for async and require
server-utils: Only skip loader thread
sveltekit: Detect SvelteKit server build via Vite Environment API
vercelai: Avoid double-capturing v4 tool errors in orchestrion mode
vue: Support pinia 4 in peer dependency range
Internal Changes
skills: Make sure digest file is written/read correctly
Work in this release was contributed by @PeterWadie and @akshitsinha. Thank you for your contributions!
Other Changes
replay: Set
text/javascriptMIME type on the compression worker Blob
10.66.0
16 Jul 2026- deprecated
node-core: Deprecate
@sentry/node-corepackage - deprecated
tanstackstart: Deprecate
@sentry/tanstackstartpackage bun: Add
initWithoutDefaultIntegrationsandgetDefaultIntegrationsWithoutPerformance
- deprecated
node-core: Deprecate
@sentry/node-corepackage - deprecated
tanstackstart: Deprecate
@sentry/tanstackstartpackage bun: Add
initWithoutDefaultIntegrationsandgetDefaultIntegrationsWithoutPerformancebundlers: Add orchestrion bundler plugins
cloudflare: Support Cloudflare types v5 & newer wrangler versions
core: Add and use
dataCollection.databaseQueryData(for e.g. Supabase filter values and mutation bodies)core: Add and use
dataCollection.graphQLcore: Add stringify helper and make AI-tracing serializers safe
nestjs: Add orchestrion diagnostics-channel instrumentation
nextjs: Add opt-in for orchestrion instrumentation
node: Rewrite knex instrumentation to orchestrion tracing channels
server-utils: Capture and log orchestrion stats
server-utils: Migrate
@opentelemetry/instrumentation-kafkajsto orchestrionserver-utils: Migrate
@opentelemetry/instrumentation-mysql2to orchestrionserver-utils: Rewrite
@opentelemetry/instrumentation-dataloaderto orchestrionserver-utils: Rewrite
@opentelemetry/instrumentation-generic-poolto orchestrionsveltekit: Detect SvelteKit 3 native tracing from the Vite plugin
Include bundler CJS exports to fix Node warning
browser-utils: Remove readystatechange listener to prevent memory leaks
browser: Propagate trace data from active span if
http.clientspan is non-recordingcore: Preserve propagation across ignored spans
node: Move dc integration swap to _init
react-router: Correct url attributes for history and relative navigations
react: Preserve parent path prefix for descendant route names in
react-routerserver-utils: Dedupe ioredis orchestrion span for offline-queued commands
vue: Refresh pageload URL attrs on TanStack onResolved
Internal Changes
Work in this release was contributed by @dobladov and @PeterWadie. Thank you for your contributions!
10.65.0
10 Jul 2026angular: Set
urlattributes on pageload and navigation spansastro: Set
url.templateon pageload spansaws-serverless: Replace OTel Lambda instrumentation with handler redirection
angular: Set
urlattributes on pageload and navigation spansastro: Set
url.templateon pageload spansaws-serverless: Replace OTel Lambda instrumentation with handler redirection
browser: Set
url.pathandurl.fullon pageload and navigation spansbun: Warn when externalizing instrumented deps
core: Require
attributesonSerializedStreamedSpanember: Set
url.template,url.pathandurl.fullon router spansmysql2: Instrument mysql2 >= 3.20.0 via native tracing channels
nextjs: Set
urlattributes on pageload and navigation spansreact: Set
url.template,url.pathandurl.fullon routing spansreact-router: Set
url.template,url.pathandurl.fullon pageload and navigation spansremix: Set
url.templateon pageload and navigation spansserver-utils: Add orchestrion support for Vercel AI v4
server-utils: Add requiresParentSpan option to bindTracingChannelToSpan
server-utils: Capture usage and output on streamed Vercel AI v7 spans
server-utils: Implement orchestrion-based express integration
server-utils: Instrument graphql v17 via native tracing channels
solid: Set
urlattributes on solid router and tanstack router spanssveltekit: Set
url.template,url.pathandurl.fullon pageload and navigation spansvue, nuxt: Set
url.templateand URL attributes on router spansbrowser: Send web vital span
sentry.segment.nameattributecloudflare: Honor newTarget in instrumentDurableObjectWithSentry construct trap
opentelemetry: Fall back to
'sentry.origin': manualwhen backfilling OTel datareplay: Prevent rrweb recording from dying when the emit callback throws
replay: Skip client reports for replay failures after stop
vite: Add fast component annotation transform
Internal Changes
core: Add isObjectLike guard and consolidate non-null-object checks
core: Add uniq array util and consolidate call sites
server-utils: Migrate @opentelemetry/instrumentation-amqplib to orchestrion
server-utils: Migrate
@opentelemetry/instrumentation-graphqlto orchestrionserver-utils: Migrate
@opentelemetry/instrumentation-redisto orchestrionserver-utils: Migrate Google GenAI integration to orchestrion
server-utils: Migrate postgres.js instrumentation to orchestrion
Work in this release was contributed by @martijnwalraven. Thank you for your contribution!
10.64.0
7 Jul 2026cloudflare: Add
nodejs_compatentrypointThe 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.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.bun,deno,node: Pg orchestrion instrumentation
Important Changes
cloudflare: Add
nodejs_compatentrypointThe 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.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
bun,deno,node: Pg orchestrion instrumentation
bun: Enable new mysql, pg integrations in 'bun build'
cloudflare: Enable AI v7 support for Cloudflare in the /nodejs_compat entrypoint
cloudflare: Expose prismaIntegration in nodejs_compat export
core: Add
sentry.trace_lifecycleattributecore: Add deferred segment-span transaction capture
mongoose: Instrument mongoose >= 9.7 via native tracing channels
replays: Record segment names that occur during replay
browser: Accept precisely-typed GrowthBook class in growthbookIntegration
browser: Flush telemetry when page is hidden
cloudflare: Catch potential errors during flush and dispose
core: Capture Anthropic stream stop_reason from message_delta
core: Print getTraceMetaTags in 1 line to prevent hydration errors
nextjs: Add immutable browser chunks to upload assets
nextjs: Handle
Middleware.executeroot spans on Node.js runtimereact/solid/vue: Instrument TanStack Router navigations via
onBeforeLoad/onResolved
Internal Changes
server-utils: Implement orchestrion-based instrumentation for vercel-ai v6
server-utils: Migrate
@opentelemetry/instrumentation-ioredisto orchestrionserver-utils: Migrate Anthropic integration to orchestrion
server-utils: Migrate OpenAI integration to orchestrion
server-utils: Rewrite
@opentelemetry/instrumentation-hapito orchestrion
Work in this release was contributed by @codr and @zenato. Thank you for your contribution!
10.63.0
1 Jul 2026browser: Add
url.fullattribute to resource spanscore: Add
extendIntegrationmethodcore: Add
isTracingSuppressedto the async context strategy
browser: Add
url.fullattribute to resource spanscore: Add
extendIntegrationmethodcore: Add
isTracingSuppressedto the async context strategycore: Pass normalizedRequest to the sampling context for root spans
node: Add lru-memoizer diagnostics-channel integration to experimentalUseDiagnosticsChannelInjection
node: Expose channel-based, streamlined
fastifyIntegrationbrowser: Defer sending session envelope until browser is idle
core: Improve waiting for tracing channel bindings
core: Serialize streamed span status message to
sentry.status.messageattributenextjs: Don't inject trace meta tags when Cache Components is enabled
opentelemetry: Strip leading ? and # from inferred http.query and http.fragment
tanstackstart-react: Drop server transactions for tunnel route requests
Internal Changes
server-utils: Add lru-memoizer diagnostics-channel integration
server-utils: Expose channel-based, streamlined
fastifyIntegrationserver-utils: Restore caller context for callback tracing channels
Work in this release was contributed by @suzunn. Thank you for your contribution!
10.62.0
26 Jun 2026server-runtimes: Add v7 support for
vercelAiIntegrationThe
vercelAiIntegrationnow supports v7 of theaipackage. Note that v7 is not yet supported on Cloudflare.node: Avoid failing at runtime if tracingChannel is not available
sveltekit: Avoid capturing preloaded 400 errors on client
Important Changes
server-runtimes: Add v7 support for
vercelAiIntegrationThe
vercelAiIntegrationnow supports v7 of theaipackage. Note that v7 is not yet supported on Cloudflare.
Other Changes
node: Avoid failing at runtime if tracingChannel is not available
sveltekit: Avoid capturing preloaded 400 errors on client
Work in this release was contributed by @hyunbinseo. Thank you for your contribution!
Internal Changes
core: Add spanKindToName helper for reverse span-kind lookup
10.61.0
25 Jun 2026core: Enable
streamGenAiSpansby defaultThe SDK now extracts all
gen_aispans out of a transaction and sends them as v2 envelope items by default. This prevents gen_ai spans from being dropped when the transaction payload exceeds size limits. Because they are no longer constrained by transaction size limits, AI message data is also no longer truncated by default. SetenableTruncation: trueon the respective AI integration to re-enable truncation. To keep the previous behavior, setstreamGenAiSpans: false.Self-hosted Sentry users should opt out with
streamGenAiSpans: false, since streamed gen_ai spans may not be ingested by their Sentry instance.cloudflare: Add batch, exec, and withSession D1 instrumentation
cloudflare: Instrument SQL API in sqlite durable objects
Important Changes
core: Enable
streamGenAiSpansby defaultThe SDK now extracts all
gen_aispans out of a transaction and sends them as v2 envelope items by default. This prevents gen_ai spans from being dropped when the transaction payload exceeds size limits. Because they are no longer constrained by transaction size limits, AI message data is also no longer truncated by default. SetenableTruncation: trueon the respective AI integration to re-enable truncation. To keep the previous behavior, setstreamGenAiSpans: false.Self-hosted Sentry users should opt out with
streamGenAiSpans: false, since streamed gen_ai spans may not be ingested by their Sentry instance.
Other Changes
cloudflare: Add batch, exec, and withSession D1 instrumentation
cloudflare: Instrument SQL API in sqlite durable objects
core: Add
db.query.summaryfunctionalitycore: Add top-level
Sentry.setAttribute(s)APIshono: Name transactions after the matched route handler
react-router: Bump peerDependencies for react-router 8
replays: Record replay
trace_idswith span streaming
Internal Changes
Adopt
bindTracingChannelToSpanacross runtimesRemove Otel from
fsIntegrationserver-utils: Add tracingChannel-to-span binding
10.60.0
23 Jun 2026cloudflare: Add R2 bucket auto-instrumentation
core: Add
bindScopeToEmitterto bind a scope to an event emitterbrowser: Ensure
url.fullandhttp.urlattributes have the same values onhttp.clientspans
Other Changes
cloudflare: Add R2 bucket auto-instrumentation
core: Add
bindScopeToEmitterto bind a scope to an event emitterbrowser: Ensure
url.fullandhttp.urlattributes have the same values onhttp.clientspansserver-utils: Avoid directly importing
tracingChannelfor Node v18 compatibilityserver-utils: Remove optional
vitepeer dependency
Internal Changes
bundler-plugins: Integration with monorepo build
10.59.0
19 Jun 2026react-router: Add support for React Router v8
The SDK now supports React Router v8, in both the framework and SPA (
@sentry/react) modes.react: Add version-agnostic React Router SPA exports
@sentry/reactnow exports version-agnostic wrappers for React Router v6+ SPA instrumentation. The new exports replace the version-specificV6/V7variants, which are now deprecated:Deprecated New reactRouterV6BrowserTracingIntegration/V7reactRouterBrowserTracingIntegrationwithSentryReactRouterV6Routing/V7wrapReactRouterRoutingwrapCreateBrowserRouterV6/V7wrapCreateBrowserRouterwrapCreateMemoryRouterV6/V7wrapCreateMemoryRouterwrapUseRoutesV6/V7wrapUseRoutesThe deprecated exports continue to work and will be removed in the next major version.
aws-serverless: Instrument aws-sdk clients >= 3.1046.0
Important Changes
react-router: Add support for React Router v8
The SDK now supports React Router v8, in both the framework and SPA (
@sentry/react) modes.react: Add version-agnostic React Router SPA exports
@sentry/reactnow exports version-agnostic wrappers for React Router v6+ SPA instrumentation. The new exports replace the version-specificV6/V7variants, which are now deprecated:Deprecated New reactRouterV6BrowserTracingIntegration/V7reactRouterBrowserTracingIntegrationwithSentryReactRouterV6Routing/V7wrapReactRouterRoutingwrapCreateBrowserRouterV6/V7wrapCreateBrowserRouterwrapCreateMemoryRouterV6/V7wrapCreateMemoryRouterwrapUseRoutesV6/V7wrapUseRoutesThe deprecated exports continue to work and will be removed in the next major version.
Other Changes
aws-serverless: Instrument aws-sdk clients >= 3.1046.0
bun: Add orchestrion bun build plugin
cloudflare: Instrument sync KV
core: Disable gen_ai message truncation by default when
streamGenAiSpansis enableddeno: Add orchestrion deno runtime hook
hono: Extend peer dependency range
node: Collapse orchestrion opt-in to a single option
Diagnostics channel Node v18
browser: Clean up pageload readystatechange listener
core: Capture scopes on span before emitting
spanStarteventcore: Defer TwP sampling by reading trace state from the scope
core: Prevent outgoing HTTP instrumentation from crashing on
//request pathscore: Set
productionas defaultsentry.environmentattribute value on streamed spansnextjs: Register safe random ID context at module load
Internal Changes
node: Restore eslint-disable in vendored tedious instrumentation
10.58.0
15 Jun 2026- deprecated
react-router: Always build client instrumentation and deprecate
useInstrumentationAPI hono: Add support for the Deno runtime
@sentry/hononow supports the Deno runtime via a new@sentry/hono/denoentry point. Install@sentry/denoas a peer dependency and initialize Sentry through thesentry()middleware:import { Hono } from 'hono'; import { sentry } from '@sentry/hono/deno'; const app = new Hono(); app.use( sentry(app, { dsn: '__DSN__', // or Deno.env.get('SENTRY_DSN') tracesSampleRate: 1.0, }), ); Deno.serve(app.fetch);core: Extract objects as structured logs in
consoleLoggingIntegrationThe
consoleLoggingIntegrationnow extracts structured log attributes when the first argument is a plain object.// Object keys become log attributes console.log({ userId: 123, action: 'login' }, 'User logged in'); // → attributes: { userId: 123, action: "login" } // Non-object first args use template + parameters (unchanged) console.log('Hello', 'world', 123); // → sentry.message.template: "Hello {} {}"
Important Changes
hono: Add support for the Deno runtime
@sentry/hononow supports the Deno runtime via a new@sentry/hono/denoentry point. Install@sentry/denoas a peer dependency and initialize Sentry through thesentry()middleware:import { Hono } from 'hono'; import { sentry } from '@sentry/hono/deno'; const app = new Hono(); app.use( sentry(app, { dsn: '__DSN__', // or Deno.env.get('SENTRY_DSN') tracesSampleRate: 1.0, }), ); Deno.serve(app.fetch);core: Extract objects as structured logs in
consoleLoggingIntegrationThe
consoleLoggingIntegrationnow extracts structured log attributes when the first argument is a plain object.// Object keys become log attributes console.log({ userId: 123, action: 'login' }, 'User logged in'); // → attributes: { userId: 123, action: "login" } // Non-object first args use template + parameters (unchanged) console.log('Hello', 'world', 123); // → sentry.message.template: "Hello {} {}"react-router: Stabilize the instrumentation API
React Router's instrumentation API is now stable — the
@experimentalmarkers have been removed fromcreateSentryServerInstrumentation,createSentryClientInstrumentation, and the related helpers and types. The manual server wrapperswrapServerLoaderandwrapServerActionare now deprecated in favor of it. Exportinstrumentations = [Sentry.createSentryServerInstrumentation()]from yourentry.server.tsxto instrument all loaders and actions without wrapping them individually.
Other Changes
hono: Add HTTP connection info to server spans
node-core: Attach log message and fields to pino error events
- deprecated
react-router: Always build client instrumentation and deprecate
useInstrumentationAPI react-router: Rename client navigation roots from the route pattern
astro: Resolve middleware export types
browser: Ignore
__sentry_wrapped__inherited fromFunction.prototypecore: Avoid double counting cached input tokens for Vercel AI SDK v6
core: Keep
safeJoinside-effect-free for DOM elementsdeno: Use correct paths for
moduleandtypesfields inpackage.jsonnextjs: Mark redirect server actions as
okinstead ofinternal_errorreact-router: Mark instrumentation API active on invocation
redis: Bring span attributes into alignment with conventions
sveltekit: Add
defaultexports conditiontanstackstart-react: Preserve middleware context types
core: Reuse unchanged Vercel AI messages JSON
Work in this release was contributed by @archievi, @AyaanFaisal21, @itosa-kazu, and @bkchr. Thank you for your contributions!
Internal Changes
nestjs: Migrate vendored nest instrumentation to Sentry APIs
10.57.0
9 Jun 2026- deprecated
core: Deprecate
sendDefaultPiiin favor ofdataCollectionsendDefaultPiiis deprecated and will be removed in v11. The newdataCollectionoption lets you control each category of collected data.sendDefaultPii: truestill works and maps to enabling alldataCollectioncategories.dataCollection.userInfodefaults totruewhendataCollectionis provided, meaning auto-populateduser.*fields (e.g. IP address from a request) are collected by default. Data you set explicitly (like viaSentry.setUser()) is always sent regardless. WhendataCollectionis not set at all, the legacysendDefaultPiibehavior applies (userInfo: falseby default) to preserve backward compatibility.Note that an empty
dataCollection: {}falls back to more permissive defaults thansendDefaultPii: false, so replicate the old behavior by opting out explicitly:Sentry.init({ dataCollection: { userInfo: false, genAI: { inputs: false, outputs: false }, httpBodies: [], httpHeaders: { deny: ['forwarded', '-ip', 'remote-', 'via', '-user'] }, cookies: { deny: ['forwarded', '-ip', 'remote-', 'via', '-user'] }, queryParams: { deny: ['forwarded', '-ip', 'remote-', 'via', '-user'] }, }, }); angular: Add support for Angular 22
@sentry/angularnow officially supports Angular 22.Use
dataCollection.frameContextLinesfor ContextLines integration
Important Changes
angular: Add support for Angular 22
@sentry/angularnow officially supports Angular 22.- deprecated
core: Deprecate
sendDefaultPiiin favor ofdataCollectionsendDefaultPiiis deprecated and will be removed in v11. The newdataCollectionoption lets you control each category of collected data.sendDefaultPii: truestill works and maps to enabling alldataCollectioncategories.dataCollection.userInfodefaults totruewhendataCollectionis provided, meaning auto-populateduser.*fields (e.g. IP address from a request) are collected by default. Data you set explicitly (like viaSentry.setUser()) is always sent regardless. WhendataCollectionis not set at all, the legacysendDefaultPiibehavior applies (userInfo: falseby default) to preserve backward compatibility.Note that an empty
dataCollection: {}falls back to more permissive defaults thansendDefaultPii: false, so replicate the old behavior by opting out explicitly:Sentry.init({ dataCollection: { userInfo: false, genAI: { inputs: false, outputs: false }, httpBodies: [], httpHeaders: { deny: ['forwarded', '-ip', 'remote-', 'via', '-user'] }, cookies: { deny: ['forwarded', '-ip', 'remote-', 'via', '-user'] }, queryParams: { deny: ['forwarded', '-ip', 'remote-', 'via', '-user'] }, }, });
Other Changes
Use
dataCollection.frameContextLinesfor ContextLines integrationcloudflare: Auto instrument D1 based on env
core: Change default of
dataCollection.userInfototruecore: Default
dataCollection.httpBodiesto all valid body typeshono: Filter noisy transactions (
faviconetc)cloudflare: Don't track negatively sampled spans
core: Use
safeDateNowcalls fornew Date()readsnextjs: Shim
pinoIntegrationon edge runtimenode: Prevent PostgresJs integration from emitting duplicate spans per query
node-core: Read
__SENTRY_SERVER_MODULES__lazily so Turbopack injection is honoredreact: Detect React Router v6/v7 navigations in a layout effect to propagate the correct trace
react: Remove unused
react.componentStackevent contextreplays: Record
sentry._internal.replay_is_bufferingfor spans
Internal Changes
Work in this release was contributed by @zhongrenfei1-hub. Thank you for your contribution!
10.56.0
2 Jun 2026deno: Redis diagnostics channel based integration for Deno
Adds Redis integration support for Deno, covering both
redisandioredisclients.cloudflare: Only capture workflow step error on final retry attempt
hono: Emit warning if
@sentry/nodewas imported instead of@sentry/hono/node
Important Changes
deno: Redis diagnostics channel based integration for Deno
Adds Redis integration support for Deno, covering both
redisandioredisclients.
Other Changes
cloudflare: Only capture workflow step error on final retry attempt
hono: Emit warning if
@sentry/nodewas imported instead of@sentry/hono/nodenode: Use ioredis tracing channels
browser: Correctly parse sampleRate when
consistentTraceSamplingis enabledcloudflare: Fix
instrumentDurableObjectWithSentrybreaking Cloudflare Agentscloudflare: Wait for span links to be set
core: Use
WeakReffor Span-Scope circular referencesnode: Vendor
InstrumentationNodeModuleFileto fix Bun--bytecodecrashprofiling-node: Ensure node version support warning includes latest 26
Internal Changes
server-utils: Initial scaffolding
10.55.0
28 May 2026- deprecated
hono: Promote
@sentry/honoto stable and deprecatehonoIntegrationThe
@sentry/honoSDK is now stable. See the Sentry Hono SDK docs to get started. hono: Add
shouldHandleErroroption tosentry()middlewareThe
sentry()middleware now accepts ashouldHandleErrorcallback to control which errors are captured and sent to Sentry. By default, 3xx/4xx HTTP errors are ignored and 5xx errors and plainErrorobjects are captured. Returntruefrom the callback to capture an error,falseto suppress it.app.use( sentry(app, { dsn: '__DSN__', shouldHandleError(error) { const status = (error as { status?: number })?.status; // Capture 401/403 in addition to the default 5xx errors return status === 401 || status === 403 || typeof status !== 'number' || status >= 500; }, }), );tanstackstart-react: Add distributed tracing
Server and client traces are now automatically connected, allowing you to see the full request lifecycle from server-side rendering through client-side hydration in a single trace.
Important Changes
- deprecated
hono: Promote
@sentry/honoto stable and deprecatehonoIntegrationThe
@sentry/honoSDK is now stable. See the Sentry Hono SDK docs to get started. hono: Add
shouldHandleErroroption tosentry()middlewareThe
sentry()middleware now accepts ashouldHandleErrorcallback to control which errors are captured and sent to Sentry. By default, 3xx/4xx HTTP errors are ignored and 5xx errors and plainErrorobjects are captured. Returntruefrom the callback to capture an error,falseto suppress it.app.use( sentry(app, { dsn: '__DSN__', shouldHandleError(error) { const status = (error as { status?: number })?.status; // Capture 401/403 in addition to the default 5xx errors return status === 401 || status === 403 || typeof status !== 'number' || status >= 500; }, }), );tanstackstart-react: Add distributed tracing
Server and client traces are now automatically connected, allowing you to see the full request lifecycle from server-side rendering through client-side hydration in a single trace.
tanstackstart-react: Add server-side route parametrization
Server transaction names are now parametrized automatically (e.g.,
GET /users/123becomesGET /users/$userId), improving transaction grouping in Sentry.tanstackstart-react: Show readable server function names in traces
Server function spans now show human-readable names (e.g.,
GET /_serverFn/greetinstead ofGET /_serverFn/a10e70b3...). Thetanstackstart.function.hash.sha256span attribute has been renamed totanstackstart.function.id.
Other Changes
core: Migrate request data to
dataCollectionhono: Add warning in Bun for double init
hono: Instrument main-app inline middleware spans
metrics: Migrate metrics to use
dataCollectioninstead ofsendDefaultPiitanstackstart-react: Enable component tracking
tanstackstart-react: Filter noisy dev transactions
cloudflare: Use original waitUntil to not create a deadlock
elysia: Widen accepted
Elysiaapp type to support Elysia optionstanstackstart-react: Add server-side replayIntegration no-op stub
Internal Changes
meta(agents): Update AI commit attribution guidance
10.54.0
26 May 2026core: Support array attributes for spans, logs, and metrics
Arrays of primitive values (
string,number,boolean) are now accepted as attribute values. Arrays containing non-primitive elements will be dropped and won't show up in Sentry. Array attributes on logs and metrics were previously stringified and will now be sent as actual arrays instead. If you have custom rules that process attribute values in anybeforeSend*callbacks (e.g., data scrubbing), you may need to update them to correctly handle array values.For instance, here's how you can update a
beforeSendLogcallback to handle arrays:beforeSendLog: log => { const attributes = log.attributes; Object.keys(attributes).forEach(key => { const value = attributes[key]; if (typeof value === 'string') { attributes[key] = scrubData(value); } if (Array.isArray(value)) { attributes[key] = value.map(v => (typeof v === 'string' ? scrubData(v) : v)); } }); return log; };browser: Add
fetchStreamPerformanceIntegrationfor streamed response trackingA new integration that tracks the performance of streamed fetch responses. Use this to measure time-to-first-byte and streaming duration for APIs that return chunked/streamed data. This replaces the now deprecated
trackFetchStreamPerformanceoption.core: Add
dataCollectionclient optionAdds a new
dataCollectionclient option for controlling what data the SDK collects and sends to Sentry. This provides a centralized way to configure data collection behavior across different SDK features. In the future, this option will be used for fine-granular data filtering, while the simplesendDefaultPiiboolean option will be deprecated and removed in a future release.
Important Changes
core: Support array attributes for spans, logs, and metrics
Arrays of primitive values (
string,number,boolean) are now accepted as attribute values. Arrays containing non-primitive elements will be dropped and won't show up in Sentry. Array attributes on logs and metrics were previously stringified and will now be sent as actual arrays instead. If you have custom rules that process attribute values in anybeforeSend*callbacks (e.g., data scrubbing), you may need to update them to correctly handle array values.For instance, here's how you can update a
beforeSendLogcallback to handle arrays:beforeSendLog: log => { const attributes = log.attributes; Object.keys(attributes).forEach(key => { const value = attributes[key]; if (typeof value === 'string') { attributes[key] = scrubData(value); } if (Array.isArray(value)) { attributes[key] = value.map(v => (typeof v === 'string' ? scrubData(v) : v)); } }); return log; };browser: Add
fetchStreamPerformanceIntegrationfor streamed response trackingA new integration that tracks the performance of streamed fetch responses. Use this to measure time-to-first-byte and streaming duration for APIs that return chunked/streamed data. This replaces the now deprecated
trackFetchStreamPerformanceoption.core: Add
dataCollectionclient optionAdds a new
dataCollectionclient option for controlling what data the SDK collects and sends to Sentry. This provides a centralized way to configure data collection behavior across different SDK features. In the future, this option will be used for fine-granular data filtering, while the simplesendDefaultPiiboolean option will be deprecated and removed in a future release.hono: Add
hono.requestspans for internal.request()callsThe Hono SDK now creates spans for internal
.request()calls, providing better visibility into request handling within Hono applications.
Other Changes
core: Add data collection filtering utilities
core: Convert scope contexts to segment span attributes in span streaming
core: Emit
sentry.sdk.integrationson streamed segment spanscore: HTTP server diagnostics channel utility
core: Migrate span streaming envelope to
dataCollectioncore: Migrate Supabase integration to
dataCollectioncore: Migrate trpc to
dataCollectiondeno: Instrument
node:httpon versions that support itember: Extract ember-specific logic into custom
browserTracingIntegrationlogs: Migrate log envelope user inference to
dataCollectionnuxt: Allow custom configuration files paths in Nuxt module
replay: Update example worker script
serverless: Add server-only context span attributes via processSegmentSpan hooks
astro: Avoid injecting meta tags into
<head>inside attribute valuesastro: Use explicit ResponseInit when injecting meta tags in response
browser: Add a synthetic stack trace to DOMException with empty stack traces if
attachStacktraceis truebrowser: Fix internal frame detection in minified bundles
cloudflare: Avoid repeated flush lock wrapping
cloudflare: Skip SDK initialization for OPTIONS/HEAD requests
cloudflare, vercel-edge: Disable timer-based flush for serverless runtimes
core: Sanitize lone surrogates in log body and attributes
deno: Support
Deno.serveinstrumentation on Deno 2.8hono: Preserve middleware handler metadata
hono: Use generic Hono type in Bun/Node
nextjs: Widen
projectoption type tostring | stringnode: Improve
http.clientdouble-wrap messagenode: Preserve CallbackManager handlers in LangChain instrumentation
react-router: Do not re-write origin on router state changes
replay: Set
sentry.replay_idattribute on streamed spansreplay: Set
replay_idon DSC after buffer-to-session conversionsolidstart: Use nitro module for build hooks to preserve preset hooks
Internal Changes
Work in this release was contributed by @abcang, @ahmadio, @delorge, @mdnanocom, and @victorgarciaesgi. Thank you for your contributions!
10.53.1
12 May 2026Reading the note…
10.53.0
12 May 2026core: Add
streamGenAiSpansoptions to stream gen_ai spansAdds a new
streamGenAiSpansoption that controls howgen_aispans are sent to Sentry. When set, the SDK extracts allgen_aispans out of a transaction and sends them as v2 envelope items.Enable this option if gen_ai spans are being dropped because the transaction payload exceeds size limits.
Sentry.init({ dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0', streamGenAiSpans: true, });browser: Migrate browser profiling thread data to span attributes
core: Add
addConsoleInstrumentationFilterutility
Important Changes
core: Add
streamGenAiSpansoptions to stream gen_ai spansAdds a new
streamGenAiSpansoption that controls howgen_aispans are sent to Sentry. When set, the SDK extracts allgen_aispans out of a transaction and sends them as v2 envelope items.Enable this option if gen_ai spans are being dropped because the transaction payload exceeds size limits.
Sentry.init({ dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0', streamGenAiSpans: true, });
Other Changes
browser: Migrate browser profiling thread data to span attributes
core: Add
addConsoleInstrumentationFilterutilitycore: Add
applicationKeytoBuildTimeOptionsBasecore: Split exports by browser/server for bundle size
nextjs: Add top-level
applicationKeyoptionnode: Support Node 26
cloudflare: Avoid flush lock self-wait
hono: Capture transaction name on request for correct culprit
mcp: Retroactively wrap handlers registered before wrapMcpServerWithSentry
node-core: Guard against undefined util.getSystemErrorMap
replay: Capture aborted/errored fetch requests in replay network tab
Internal Changes
Work in this release was contributed by @dmmulroy and @SAY-5. Thank you for your contributions!
10.52.0
7 May 2026- security
Bump fast-xml-parser to fix vulnerability
- security
Bump vite versions to fix vulnerability
Beta release of the official Hono Sentry SDK
This release marks the beta release of the
@sentry/honoSentry SDK. For details on how to use it, check out the Sentry Hono SDK docs. Please reach out on GitHub if you have any feedback or concerns.
Important Changes
Beta release of the official Hono Sentry SDK
This release marks the beta release of the
@sentry/honoSentry SDK. For details on how to use it, check out the Sentry Hono SDK docs. Please reach out on GitHub if you have any feedback or concerns.browser: Add
ingest_settingsto v2 log envelope payloadInference of user data (e.g. IP address, browser name/version) on log events is now gated behind the
sendDefaultPiioption. Previously, this data was always inferred by default.
Other Changes
browser: Add
ingest_settingsto v2 metrics envelope payloadbrowser: Migrate spotlight event processor to
ignoreSpanscloudflare: Capture request body via httpServerIntegration
cloudflare: Support rpc trace propagation for WorkerEntrypoint
cloudflare: Support tracing for queue producer
core: Apply request data to segment spans in span streaming
core: Migrate Vercel AI event processor to span streaming
deno: Add
processSegmentSpanto Deno context integrationhttp: Portable node:http client instrumentation
nitro: Add unstorage tracing channel instrumentation
node-core: Add
processSegmentSpanto node context integrationnode: Use diagnostics_channel for redis >= 5.12.0
node: Vendor ioredis, redis instrumentations
replay: Reset replay id from DSC on session expiry/refresh
- security
Bump fast-xml-parser to fix vulnerability
- security
Bump vite versions to fix vulnerability
core: Drain buffers in flush() when there is no transport
core: Guard against undefined chained in copyProps
hono: Do not capture 3xx and 4xx errors and add tests
nextjs: Skip build modification when SRI is enabled
opentelemetry: Respect OTEL_SERVICE_NAME, OTEL_RESOURCE_ATTRIBUTES
Internal Changes
Work in this release was contributed by @sbs44. Thank you for your contribution!
10.51.0
29 Apr 2026- breaking
hono: Change setup for
@sentry/hono/node(initin external file)To improve Node.js instrumentation, the
sentry()middleware exported from@sentry/hono/nodeno longer accepts configuration options. Instead, you must configure the SDK by callingSentry.init()in a dedicated instrumentation file that runs before your application code (read more in the Hono SDK readme:// instrument.mjs (or instrument.ts) import * as Sentry from '@sentry/hono/node'; Sentry.init({ dsn: '__DSN__', tracesSampleRate: 1.0, }); cloudflare: Add trace propagation for RPC method calls
Trace context is now propagated across Cloudflare Workers RPC calls, connecting traces between Workers and Durable Objects. This feature is opt-in and requires setting
enableRpcTracePropagation: truein your SDK configuration:// Worker export default Sentry.withSentry( env => ({ dsn: env.SENTRY_DSN, enableRpcTracePropagation: true, }), handler, ); // Durable Object export const MyDurableObject = Sentry.instrumentDurableObjectWithSentry( env => ({ dsn: env.SENTRY_DSN, enableRpcTracePropagation: true, }), MyDurableObjectBase, );nitro: Add
@sentry/nitroSDKA new
@sentry/nitropackage provides first-class Sentry support for Nitro applications, with HTTP handler and error instrumentation, middleware tracing, request isolation, and build-time source map uploading viawithSentryConfig. Read more in the Nitro SDK docs and the Nitro SDK readme.
Important Changes
cloudflare: Add trace propagation for RPC method calls
Trace context is now propagated across Cloudflare Workers RPC calls, connecting traces between Workers and Durable Objects. This feature is opt-in and requires setting
enableRpcTracePropagation: truein your SDK configuration:// Worker export default Sentry.withSentry( env => ({ dsn: env.SENTRY_DSN, enableRpcTracePropagation: true, }), handler, ); // Durable Object export const MyDurableObject = Sentry.instrumentDurableObjectWithSentry( env => ({ dsn: env.SENTRY_DSN, enableRpcTracePropagation: true, }), MyDurableObjectBase, );- breaking
hono: Change setup for
@sentry/hono/node(initin external file)To improve Node.js instrumentation, the
sentry()middleware exported from@sentry/hono/nodeno longer accepts configuration options. Instead, you must configure the SDK by callingSentry.init()in a dedicated instrumentation file that runs before your application code (read more in the Hono SDK readme:// instrument.mjs (or instrument.ts) import * as Sentry from '@sentry/hono/node'; Sentry.init({ dsn: '__DSN__', tracesSampleRate: 1.0, }); nitro: Add
@sentry/nitroSDKA new
@sentry/nitropackage provides first-class Sentry support for Nitro applications, with HTTP handler and error instrumentation, middleware tracing, request isolation, and build-time source map uploading viawithSentryConfig. Read more in the Nitro SDK docs and the Nitro SDK readme.
Other Changes
astro: Drop prerendered http.server filter via
ignoreSpansaws-serverless: Validate extension tunnel DSN against
SENTRY_DSNbrowser: Add
ingest_settingsto span v2 envelope payloadbrowser: Add support for streamed spans in
httpContextIntegrationcore: Backfill otel attributes on streamed spans
core: Clear up integrations on dispose
core: Instrument langgraph createReactAgent
core: Support attribute matching in
ignoreSpansfeedback: Allow error messages to be customized
hono: Support middleware spans defined in app groups
nextjs: Filter unwanted segments when span streaming is enabled
nextjs: Migrate edge event processors to span-first APIs
nextjs: Migrate server event processors to span-first APIs
nextjs: Set global attribute for turbopack usage
nitro: Nitro SDK
react-router: Clean up bogus
*http.route attribute on segment spansreact-router: Drop low-quality transactions via
ignoreSpanssveltekit: Support span streaming in
svelteKitSpansEnhancementintegrationtanstackstart-react: Add dynamic tunnel route helper and generator
Update prisma v7 spans descriptions
core: Avoid parse-time SyntaxError on Safari <16.4 in postgresjs
core: Ensure
isSentryRequesthandles subdomains properlycore: Ensure ip address headers are stripped when lower case
core: Filter more cookie names for PII
core: Use symbol for normalization checks
hono: Distinguish
.use()middleware in sub-apps from.all()handlersnextjs: Ensure we do not match tunnel endpoints too broadly
opentelemetry: Add conditional browser export to avoid node deps
replay: Avoid main-thread blocking in WorkerHandler under event bursts
replay: Ensure
maskAttributesworks withmaskAllText=falsesupabase: Consider
sendDefaultPiifor supabase integration
Internal Changes
e2e/tanstackstart-react: Pin @tanstack/start-plugin-core to unblock CI
10.50.0
23 Apr 2026- removed
hono: Remove undefined from options type
effect: Support v4 beta
The
@sentry/effectintegration now supports Effect v4 beta, enabling Sentry instrumentation for the latest Effect framework version. Read more in the Effect SDK readme.hono: Add
@sentry/hono/bunfor Bun runtimeA new
@sentry/hono/bunentry point adds first-class support for running Hono applications instrumented with Sentry on the Bun runtime. Read more in the Hono SDK readme.
Important Changes
effect: Support v4 beta
The
@sentry/effectintegration now supports Effect v4 beta, enabling Sentry instrumentation for the latest Effect framework version. Read more in the Effect SDK readme.hono: Add
@sentry/hono/bunfor Bun runtimeA new
@sentry/hono/bunentry point adds first-class support for running Hono applications instrumented with Sentry on the Bun runtime. Read more in the Hono SDK readme.replay: Add replayStart/replayEnd client lifecycle hooks
New
replayStartandreplayEndclient lifecycle hooks let you react to replay session start and end events in your application.
Other Changes
core: Emit
no_parent_spanclient outcomes for discarded spans requiring a parenthono: Add runtime packages as optional peer dependencies
opentelemetry: Add tracingChannel utility for context propagation
browser: Enrich graphqlClient spans for relative URLs
browser: Filter implausible LCP values
cloudflare: Use TransformStream to keep track of streams
console: Re-patch console in AWS Lambda runtimes
core: Handle stateless MCP wrapper transport correlation
- removed
hono: Remove undefined from options type
node: Guard against null
httpVersionin outgoing request span attributesnode-core: Pass rejection reason instead of Promise as originalException
Internal Changes
10.49.0
16 Apr 2026Reading the note…
10.48.0
9 Apr 2026Reading the note…
10.47.0
31 Mar 2026Reading the note…
10.46.0
25 Mar 2026Reading the note…
10.45.0
19 Mar 2026Reading the note…
10.44.0
17 Mar 2026Reading the note…
10.43.0
10 Mar 2026Reading the note…
10.42.0
3 Mar 2026Reading the note…
10.41.0
2 Mar 2026Reading the note…
10.40.0
24 Feb 2026Reading the note…
10.39.0
16 Feb 2026Reading the note…
10.38.0
29 Jan 2026Reading the note…
10.37.0
27 Jan 2026Reading the note…
10.36.0
21 Jan 2026Reading the note…
10.35.0
19 Jan 2026Reading the note…
10.34.0
14 Jan 2026Reading the note…