This is the first release candidate of version 11 of the Sentry JavaScript SDKs.
We recommend following the migration guide to upgrade from version 10 to version 11.
Breaking Changes
All SDKs
- feat: Remove support for initialising via
--require(#22513) - feat!: Rename deprecated
http.*span attributes (#23574) - feat!: Rename deprecated
net.span attributes (#23301) - feat!: Replace
skipOpenTelemetrySetupwithenableOpenTelemetrySetup(#23199) - feat!: Replace the deprecated
http.targetspan attribute (#23575) - feat!: Require Node
>=20.19.0as minimum supported version (#22558) - feat!: Use
handlerspan op for terminal request handlers (#22871) - feat!: Use
middlewarespan op for web-server middleware (#22852) - feat(frameworks)!: Use
functionop for framework functions (#23047) - feat(node/cloudflare)!: Remove deprecated
honoIntegration(#22480) - feat(v11): Drop TypeScript 3.8 support (#18604)
AI integrations
- feat(langchain): Emit gen_ai.pipeline.name instead of langchain.chain.name (#23740)
- ref(anthropic)!: Move Anthropic AI integration to
@sentry/server-utils(#22954) - ref(google-genai)!: Move Google GenAI integration to
@sentry/server-utils(#22959) - ref(langchain)!: Move LangChain and LangGraph integrations to
@sentry/server-utils(#22962) - ref(langgraph)!: Drop gen_ai.create_agent spans (#22840)
- ref(openai)!: Move OpenAI AI integration to
@sentry/server-utils(#22953) - ref(vercel-ai)!: Move Vercel AI integration to
@sentry/server-utils(#22964) - ref(workers-ai)!: Move Workers AI integration to
@sentry/server-utils(#22960)
@sentry/angular
- feat(angular,ember,sveltekit)!: Use
routerspan op for frontend routers (#23086) - feat(angular)!: Use
ui.mountandfunctionspan ops for tracing decorators (#22667)
@sentry/astro
- feat(astro)!: Drop support for Astro 3 (#22683)
- feat(astro)!: Enable orchestrion instrumentation on Cloudflare Workers (#23003)
- feat(astro)!: Remove deprecated
sourceMapsUploadOptionsbuild option (#23630) - feat(astro)!: Remove unstable_sentryVitePluginOptions (#23370)
- ref(astro)!: Migrate import hook to makeOrchestrionLoader (#22861)
- ref(astro)!: Remove deprecated release/debug conflict workaround from BuildTimeOptionsBase (#23270)
@sentry/aws-serverless
- chore(aws-serverless)!: Drop
nodejs18.xfrom the Lambda layer runtimes (#23155) - feat(aws-serverless): Remove deprecated
disableAwsContextPropagationoption (#23170) - feat(aws-serverless)!: Emit
faas.invocation_idandcloud.resource_id(#24384) - feat(aws-serverless)!: Remove unused
startTraceoption andtryPatchHandler(#23219) - feat(aws-serverless)!: Use
function.awsspan op for Lambda invocations (#22677) - feat(aws)!: Use
queueSpan OP for AWS SQS & SNS messaging (#23757) - ref(aws-serverless)!: Migrate import hook to makeOrchestrionLoader (#22862)
@sentry/browser
- chore(browser)!: Remove legacy profiling option
profilesSampleRate(#23220) - feat(browser)!: Do not include metrics in base CDN bundle (#23207)
- feat(browser)!: drop browser support for AI integrations (#22438)
- feat(browser)!: Extract
performance.{mark,measure}spans into newuserTimingSpansIntegration(#22554) - feat(browser)!: Extract interaction spans into new
interactionsIntegration(#23295) - feat(browser)!: Record console breadcrumbs via consoleIntegration (#24387)
- feat(browser)!: Rename
bfcacheIntegrationtobfcacheMetricsIntegration(#23776) - feat(browser)!: Report web vitals for bfcache restores by default (#24325)
- feat(browser)!: Send session status
unhandledinstead ofcrashedfor unhandled errors (#22475) - feat(browser)!: Switch default browser session lifecycle mode to
page(#21245) - feat(browser)!: Use
browser.paintspan op for paint entries (#22673) - fix(browser)!: stop tagging DOMException.code on events (#23992)
- fix(browser)!: Use snake_case consistently for ops (#23100)
- ref(browser): Remove deprecated
trackFetchStreamPerformanceflag (#23172) - ref(browser)!: Drop Safari 14 support - remove
navigationStartfallback andpagehidelisteners (#21293) - ref(browser)!: Remove
beforeSpanEndcallback in favor ofbeforeIdleSpanEndhook (#22818)
@sentry/bundler-plugins
- feat(bundler-plugins)!: Migrate from @sentry/cli to the sentry CLI SDK (#23398)
@sentry/cloudflare
- feat(cf/vercel-edge)!: Align request data collection with v11 defaults (#22850)
- feat(cloudflare)!: Auto-instrument the Worker by default in the Vite plugin (#23273)
- feat(cloudflare)!: Enable build-time instrumentation by default in Vite plugin (#22950)
- feat(cloudflare)!: Make the nodejs_compat entrypoint the default (#22900)
- feat(cloudflare)!: Match rpcTracePropagationBindings case-insensitively (#23625)
- feat(cloudflare)!: Replace enableRpcTracePropagation with rpcTracePropagationBindings (#23486)
- feat(cloudflare)!: Skip rate limit spans (#23907)
- feat(cloudflare)!: Use
functionspan op for cron, email and workflow steps (#22703) - ref(cloudflare)!: Remove deprecated
instrumentD1WithSentryexport (#23153) - ref(cloudflare)!: Remove instrumentPrototypeMethods option (#22961)
- ref(cloudflare)!: Remove wrapRequestHandler from main entrypoint (#22881)
- ref(cloudflare)!: Use shared
SentryTracerProviderfor OpenTelemetry interop (#23300)
@sentry/core
- feat(core): Remove
spanfromScopeData(#23225) - feat(core)!: Align request data collection with v11 defaults (#22853)
- feat(core)!: Default
attachStacktraceto true (#22572) - feat(core)!: Enable data collection by default (#22917)
- feat(core)!: Enable logs by default (#22630)
- feat(core)!: Enable span streaming by default (#22642)
- feat(core)!: Flip
genAIdefaults to collect it by default (#22706) - feat(core)!: Gate incoming HTTP body capture on
dataCollection.httpBodies(#22834) - feat(core)!: Make
beforeSendSpancompatible with streamed spans by default (#22643) - feat(core)!: Make
tracePropagationTargetsmatching case-insensitive (#23534) - feat(core)!: Remove
enableMetricsoption (#23321) - feat(core)!: Remove
enableTruncationflag and all AI integrations truncation logic (#23045) - feat(core)!: Remove
endTimestampfromSentrySpanArguments(#23269) - feat(core)!: Remove
kindfor spans, move tosentry.kindattribute (#22528) - feat(core)!: Remove
queryParamsin favor ofurlQueryParams(#22711) - feat(core)!: Remove
scope.clear()method (#23230) - feat(core)!: Remove
sendDefaultPiiin favor ofdataCollection(#22918) - feat(core)!: Remove
sentry.sdk_meta.gen_ai.input.messages.original_lengthattribute (#22516) - feat(core)!: Remove
streamGenAiSpansflag (#22495) - feat(core)!: Remove deprecated
_experiments.enableLogsoption (#22808) - feat(core)!: Remove deprecated
inboundFiltersIntegration(#23008) - feat(core)!: Remove deprecated
instrumentLangGraph(#22485) - feat(core)!: Remove Unstable*PluginOptions build option types (#23390)
- feat(core)!: Return
StreamedSpanJSONfromspanToJSON(#23238) - feat(core)!: Update all spans to use
url.full,url.fragmentandurl.query(#22547) - feat(core)!: Use
rpcspan op for tRPC spans (#22914) - feat(server-utils,core)!: Use
routerspan op for backend router layers (#23088) - fix(core)!: Remove
enableLogsoption (#23319) - ref(core)!: Make
attributesin sampling context required (#24153) - ref(core)!: Align gen_ai cache token attributes with conventions (#22811)
- ref(core)!: Make
attributesrequired onScopeData(#23277) - ref(core)!: Migrate to SENTRY_SEGMENT_NAME_SOURCE (#23368)
- ref(core)!: Move
getComponentNameto browser-utils (#23716) - ref(core)!: Remove
getLocationHrefexport from core (#23717) - ref(core)!: Remove
startIdleSpanfrom server exports (#23420) - ref(core)!: Remove
supportsDOMError,supportsHistory,supportsReportingObserverexports (#23718) - ref(core)!: Remove
supportsNativeFetchexport (#23719) - ref(core)!: Remove deprecated
addAutoIpAddressToUserexport (#23174) - ref(core)!: Remove deprecated
htmlTreeAsStringfrom core (#23715) - ref(core)!: Remove deprecated
patchExpressModule(options)signature (#23175) - ref(core)!: Remove deprecated positional
spanOriginargument frominstrumentFetchRequest(#23177) - ref(core)!: Remove experimental
enableMetrics/beforeSendMetricflags (#23276) - ref(core)!: Remove orphaned deprecated Express patch APIs (#23827)
- ref(core)!: Rename
gen_ai.request.available_toolstogen_ai.tool.definitions(#22820) - ref(core)!: Rename
gen_ai.systemtogen_ai.provider.name(#22814) - ref(core)!: Rename
gen_ai.tool.inputtogen_ai.tool.call.arguments(#22821) - ref(core)!: Rename
gen_ai.tool.outputtogen_ai.tool.call.result(#22822) - ref(core)!: Rename Vercel AI cache/reasoning token attributes (#22823)
- ref(core)!: Replace deprecated
code.*andfs_errorspan attributes (#23401) - ref(core)!: Split browser/server-only exports out of the default entrypoint (#23762)
- ref(core)!: Stop setting deprecated
gen_ai.tool.typespan attribute (#22824) - ref(core)!: Unify
tracePropagationvspropagateTraceoption names (#23649)
@sentry/deno
- feat(deno)!: Align remaining denoHttpIntegration options with httpIntegration (#23692)
- feat(deno)!: Record console breadcrumbs via consoleIntegration (#24388)
- feat(deno)!: rename orchestrion integrations to match other SDKs (#22404)
- fix(deno)!: Enable sessions for HTTP requests and align option names (#23313)
- fix(deno)!: require deno >=2.8.3 (#22790)
@sentry/ember
- feat(angular,ember,sveltekit)!: Use
routerspan op for frontend routers (#23086) - feat(ember)!: Update to v2 addon format (#23252)
- feat(ember)!: Use
functionandui.taskspan ops for route hooks and runloop (#22669) - ref(ember)!: Change
'ui.ember.component.render'toui.render(#23587)
@sentry/feedback
- fix(feedback)!: always reject sendFeedback with an Error (#20475)
@sentry/google-cloud-serverless
- feat(google-cloud-serverless)!: Use
function.gcpop for GCP functions (#23050) - feat(google-cloud-serverless)!: Use
grpcspan op for GCP gRPC calls (#22666) - feat(google-cloud-serverless)!: Use
http.clientspan op for GCP HTTP requests (#22660) - ref(google-cloud-serverless)!: Migrate import hook to makeOrchestrionLoader (#22863)
@sentry/nestjs
- feat(nestjs)!: Remove import-in-the-middle instrumentation (#22805)
- feat(nestjs)!: Use
functionspan op for setup & lifecycle handlers (#22897)
@sentry/nextjs
- feat(nextjs)!: Auto-wire orchestrion build-time instrumentation (#22921)
- feat(nextjs)!: Drop
vercel-prefix from default environment and deploys (#24197) - feat(nextjs)!: Drop support for Next.js 13 (#22635)
- feat(nextjs)!: Remove deprecated build-time config options (#23221)
- feat(nextjs)!: Remove unstable_sentryWebpackPluginOptions (#23372)
- feat(nextjs)!: Use
middlewarespan op for Next.js middleware (#22674) - ref(nextjs)!: Migrate import hook to makeOrchestrionLoader (#22864)
- ref(nextjs)!: Move
withSentryConfigto@sentry/nextjs/config(#23628)
@sentry/nitro
- feat(nuxt, nitro)!: Use convention cache ops for storage spans (#22689)
@sentry/node
- chore(node)!: Remove legacy profiling options (
profilesSampleRateandprofilesSampler) (#23216) - feat(express)!: Remove
shouldHandleErrorfromsetupExpressErrorHandler(#23732) - feat(node)!: Always report the encoded body size on HTTP spans (#23576)
- feat(node)!: Default most SDKs to a no-tracer-provider setup (#22957)
- feat(node)!: Drop support for Fastify
<3.21.0(#22752) - feat(node)!: Make channel-based instrumentation the default (#22501)
- feat(node)!: Make dataloader and knex integrations channel-only (#22754)
- feat(node)!: Remove
init,preloadentry points andpreloadOpenTelemetry(#23074) - feat(node)!: Remove connect integration (#22432)
- feat(node)!: Remove import-in-the-middle ESM loader and deprecated instrumentation base (#22755)
- feat(node)!: split childProcess integration into childProcess and worker integrations (#22886)
- feat(node)!: Stop inferring name for spans (#22712)
- feat(node)!: Use
db.queryanddbspan ops for Redis (#22690) - fix(node)!: rejection warning in strict mode (#21160)
- ref!(node): Remove Fastify error handler setter (#23411)
- ref(express)!: Export a single ExpressIntegrationOptions type (#23763)
- ref(node): Merge
@sentry/node-coreback into@sentry/node(#22418) - ref(node)!: Consolidate httpIntegration options (#23443)
- ref(node)!: Remove
@opentelemetry/instrumentationdependency (#22843) - ref(node)!: Remove deprecated
prismaInstrumentationoption (#22898) - ref(node)!: Remove deprecated fastify exports, deprecate
setupFastifyErrorHandler(#23460) - ref(node)!: Remove legacy incoming HTTP span hooks and default keepAlive to true (#23396)
@sentry/nuxt
- feat(nuxt, nitro)!: Use convention cache ops for storage spans (#22689)
- feat(nuxt)!: Auto-wire orchestrion build-time instrumentation (#22915)
- feat(nuxt)!: Bundle server config into Nitro build (#24094)
- feat(nuxt)!: Enable orchestrion instrumentation on Cloudflare (#23015)
- feat(nuxt)!: Remove deprecated
sourceMapsUploadOptionsmodule option (#22875) - feat(nuxt)!: Remove unstable_sentryBundlerPluginOptions (#23351)
@sentry/opentelemetry
- feat(opentelemetry): Remove
setupEventContextTrace(#23226) - feat(opentelemetry): Remove unused exports (#22581)
- feat(opentelemetry)!: Drop
.prefetchsuffix from inferred HTTP span ops (#23094) - feat(opentelemetry)!: Infer op from
faas.trigger(#23053) - feat(opentelemetry)!: Remove
SentrySpanProcessor&SentrySampler(#22557) - feat(opentelemetry)!: Simplify propagation and remove custom OTel tracing utils (#22702)
- ref(opentelemetry): Drop OTel resource and
contexts.otel.resource(#23013) - ref(opentelemetry): Remove
OpenTelemetrySpanContext(#23285) - ref(opentelemetry)!: Streamline OTEL context managment into
setOpenTelemetryContextAsyncContextStrategy()(#22586)
@sentry/profiling-node
- ref(profiling-node)!: Remove
prune-profiler-binariesbin script (#23104)
@sentry/react
- feat(react)!: Drop support for React 16 (#22665)
- feat(vue,svelte,react)!: Use
ui.*ops for component lifecycles (#23085) - ref(react)!: Remove redundant
url.path.params.<key>attribute (#23506)
@sentry/react-router
- feat(react-router)!: Raise minimum supported React Router version to >= 7.15 (#22481)
- feat(react-router)!: Remove deprecated server wrappers (#22529)
- feat(react-router)!: Remove server OTel instrumentation (#22551)
- feat(react-router)!: Remove unstable_sentryVitePluginOptions (#23374)
- ref(react-router)!: Move Vite plugin exports to subpath
@sentry/react-router/vite(#23509) - ref(react-router)!: Remove deprecated Vite build options and back-compat shims (#23229)
@sentry/remix
- feat(remix)!: Do not double gate action form data capture (#23014)
- feat(remix)!: Move the Vite plugin to
@sentry/remix/vite(#23989) - feat(remix)!: Remove import-in-the-middle instrumentation (#22815)
- ref(remix): Drop Remix v1 route-convention handling (#22726)
- ref(remix)!: Align action form-data span attribute with conventions (#23227)
- ref(remix)!: Migrate import hook to makeOrchestrionLoader (#22865)
@sentry/server-utils
- feat(server-utils,core)!: Use
routerspan op for backend router layers (#23088) - feat(server-utils)!: Align AMQP and Redis span attributes (#23324)
- feat(server-utils)!: Clean up gen ai ops (#23076)
- feat(server-utils)!: Emit
queue.*span ops for messaging spans (#23042) - feat(server-utils)!: Emit low cardinality postgres db span names (#23600)
- feat(server-utils)!: Rename
otlpIntegrationtoopenTelemetryIntegration(#23938) - feat(server-utils)!: Start Redis spans as
cachespans (#23933) - fix(server-utils)!: Register channel integrations on versions with native channels (#23405)
- ref(server-utils)!: Replace deprecated
ai.*andgen_ai.promptattributes (#23410) - ref(server-utils)!: Replace deprecated
db.*span attributes (#23408) - ref(server-utils)!: Replace deprecated
net.*span attributes on db and messaging spans (#23422) - ref(server-utils)!: Stop setting
koa.nameon Koa spans (#24420) - ref(server-utils)!: Use
function.gcpop for firebase function spans (#23022)
@sentry/solidstart
- feat(solidstart)!: Align v1 build options with BuildTimeOptionsBase (#23388)
- feat(solidstart)!: Remove unstable_sentryVitePluginOptions (#23389)
@sentry/svelte
- feat(vue,svelte,react)!: Use
ui.*ops for component lifecycles (#23085)
@sentry/sveltekit
- feat(angular,ember,sveltekit)!: Use
routerspan op for frontend routers (#23086) - feat(sveltekit)!: Enable orchestrion instrumentation on Cloudflare (#22967)
- feat(sveltekit)!: Remove deprecated
sourceMapsUploadOptionsVite plugin option (#22874) - feat(sveltekit)!: Remove unstable_sentryVitePluginOptions (#23366)
- fix(sveltekit)!: Move
sentrySvelteKitoff the runtime entry to@sentry/sveltekit/vite(#23247)
@sentry/tanstackstart-react
- chore(tanstackstart)!: Remove deprecated
@sentry/tanstackstartutility package (#22427) - ref(tanstackstart-react)!: Migrate import hook to makeOrchestrionLoader (#22866)
@sentry/types
- chore(types)!: Stop publishing
@sentry/types(#23073)
@sentry/vercel-edge
- feat(cf/vercel-edge)!: Align request data collection with v11 defaults (#22850)
@sentry/vue
- feat(vue,svelte,react)!: Use
ui.*ops for component lifecycles (#23085)
Other Changes
- feat: Add
http.routeattribute tohttp.serverspans with parameterized routes (#22534) - feat: Add
url.fullandurl.pathattributes tohttp.serverspans (#22496) - feat: Always stream INP and remove standalone v1 spans (#22517)
- feat: Emit low-cardinality http.client span names for fetch and XHR (#23682)
- feat: Emit low-cardinality http.client span names for node:http and undici (#23690)
- feat: Emit low-cardinality http.server span names in framework SDKs (#23597)
- feat: Emit low-cardinality pageload span names when streaming spans (#23424)
- feat: Emit low-cardinality span names for messaging spans (amqplib, kafka, ...) (#23652)
- feat: Streamline isolation scope handling & reset in isolation scopes (#22890)
- feat(angular): Emit low cardinality
TraceMethodspan name and preserve description (#24239) - feat(astro): Auto-wire orchestrion build-time instrumentation (#22830)
- feat(aws-serverless): Emit low cardinality
function.awsspan names (#24072) - feat(browser): Add
bfcacheIntegration(#22397) - feat(browser): Add shim for metrics (#23202)
- feat(browser): Emit low cardinality navigation span names (#23550)
- feat(browser): Emit low cardinality resource span names (#23546)
- feat(browser): Report web vitals for bfcache restores (#23750)
- feat(browser): Report web vitals for soft navigations (#23425)
- feat(browser): Run static beforeSendSpan for INP spans (#22877)
- feat(browser): Start a navigation span for bfcache restores (#23748)
- feat(bun): Add
bunHttpServerIntegration(#22870) - feat(bun): Capture Bun.serve request bodies with
maxRequestBodySize(#24233) - feat(bun): Instrument outgoing fetch requests (#22869)
- feat(bundler-plugins): Frameworks use
@sentry/bundler-plugins(#22392) - feat(bundler): Add Node bundler plugins (#22125)
- feat(cloudflare): Add @sentry/cloudflare/vite orchestrion plugin (#21967)
- feat(cloudflare): Add cacheClient to reuse the client across invocations (#23151)
- feat(cloudflare): Add instrumentAgentWithSentry for Cloudflare Agents (#22718)
- feat(cloudflare): Add span ops for rate limit and Durable Object WebSocket spans (#23211)
- feat(cloudflare): Add Spotlight integration for local dev event forwarding (#22490)
- feat(cloudflare): Add wranglerConfigPath to Vite options (#22800)
- feat(cloudflare): Auto-instrument Durable Object classes (#22437)
- feat(cloudflare): Auto-instrument the worker entry with withSentry (#22433)
- feat(cloudflare): Auto-instrument WorkerEntrypoint classes (#22493)
- feat(cloudflare): Auto-instrument Workflow classes (#22442)
- feat(cloudflare): Bootstrap Mastra observability in bundled workers (#24381)
- feat(cloudflare): Derive rpcTracePropagationBindings from the wrangler config (#23491)
- feat(cloudflare): Emit low cardinality
functionspan names and preserve span descriptions (#24246) - feat(cloudflare): Emit low cardinality D1 db span names (#23604)
- feat(cloudflare): Filter framework-internal Durable Object storage spans (#22710)
- feat(cloudflare): Instrument Agents automatically (#22727)
- feat(cloudflare): Instrument module-scope orchestrion channels on workerd (#24386)
- feat(cloudflare): Make vercelAIIntegration the default (#22901)
- feat(cloudflare): Prepare for nodejs_compat entrypoint (#22891)
- feat(cloudflare): Read wrangler config and resolve the Sentry options module (#22421)
- feat(cloudflare): Rotate agent conversation id on chat clear (#22720)
- feat(core): Accept
CollectBehaviorshorthand fordataCollection.httpHeaders(#24336) - feat(core): Add
afterEnvelopeandflushTraceSpansclient hooks (#23136) - feat(core): Add
filterUrlQueryutil (#23060) - feat(core): Add
instrumentStateGraphAPI (#22483) - feat(core): Add
refsfield toScopefor non-serialized references (#23236) - feat(core): Add
safeCallbackhelper for isolating user-provided callbacks (#23760) - feat(core): Add
url.fullattribute to core fetch instrumentation (#22415) - feat(core): Add build-time options for bundler plugin parity (#23348)
- feat(core): Add low cardinality span name fallbacks (#23516)
- feat(core): Add the
dataCollection.queuesoption (#24087) - feat(core): Allow to pass scope to
getActiveSpan(#23222) - feat(core): Always flush streamed span traces after segment end by default (#23714)
- feat(core): Default span status to
okin transaction mode (#22521) - feat(core): Deprecate
beforeSendTransactionandignoreTransactionsand log warnings if used with streaming (#22908) - feat(core): Deprecate
forceTransactionoption inStartSpanOptions(#23821) - feat(core): Emit low cardinality mcp notification span names (#23586)
- feat(core): Emit low cardinality mcp.server span names (#23569)
- feat(core): emit low cardinality request handler span names (#23614)
- feat(core): Emit low cardinality router span names (#23547)
- feat(core): Emit low cardinality supabase db span names (#23606)
- feat(core): Emit low-cardinality
cache.*span names (#23830) - feat(core): Emit low-cardinality gen_ai inference span names when streaming (#23573)
- feat(core): Emit low-cardinality http.server span names when streaming (#23596)
- feat(core): Expose
sentry.opattribute to samplers (#23354) - feat(core): Isolate throwing user callbacks instead of capturing them as events (#23770)
- feat(core): Only check for native fetch in browser (#22893)
- feat(core): Record
callback_errorclient reports for throwing user callbacks (#23903) - feat(core): Streamline tracing channel bindings (#23218)
- feat(core): Support filtering
stackFrameVariablesby variable name (#22494) - feat(core): Support stable MCP SDK v2 (#22883)
- feat(core): Use
getActiveSpaninstead of_getSpanFromScopefor logs & metrics (#23223) - feat(deno): Add
maxRequestBodySizeto capture HTTP bodies (#22912) - feat(deno): add anthropic integration (#22468)
- feat(deno): add aws integration (#22465)
- feat(deno): Add conversationIdIntegration to default integrations (#24299)
- feat(deno): add express integration (#22461)
- feat(deno): add firebase integration (#22466)
- feat(deno): add genericPool integration (#22452)
- feat(deno): add google-genai integration (#22469)
- feat(deno): add graphql integration (#22464)
- feat(deno): add hapi integration (#22462)
- feat(deno): add kafkajs integration (#22463)
- feat(deno): add langchain integration (#22471)
- feat(deno): add langgraph integration (#22472)
- feat(deno): add lruMemoizer integration (#22453)
- feat(deno): add mysql2 integration (#22450)
- feat(deno): add openai integration (#22467)
- feat(deno): add postgresjs integration (#22448)
- feat(deno): add tedious integration (#22451)
- feat(deno): add vercelai integration (#22470)
- feat(deno): instrument outgoing fetch requests (#24121)
- feat(deps): Bump
@sentry/node-cpu-profilerto 2.4.3 (#22983) - feat(effect): Capture errors through the Effect v4 ErrorReporter API (#24151)
- feat(effect): Derive span ops for Effect tracer spans (#23215)
- feat(ember): Give component definition lookups their own span op (#24271)
- feat(google-cloud-serverless): Emit low cardinality
function.gcpspan names (#24060) - feat(hono): Support
.query()handlers (#23283) - feat(nestjs): Add
code.function.nameattribute tofunctionspans for description inference (#24305) - feat(nestjs): Add support for NestJS v12 (#23721)
- feat(nestjs): Support WebSocket errors in SentryGlobalFilter (#22224)
- feat(nextjs): Align build options with BuildTimeOptionsBase (#23563)
- feat(nextjs): Emit low cardinality
functionspan names (#24319) - feat(nextjs): Emit low cardinality
functionspan names for server components (#24333) - feat(nextjs): Record cache spans for
use cachefunctions (#24302) - feat(nextjs): Remove tracing from middleware wrappers (#18456)
- feat(nextjs): remove tracing from pages router API routes (#18394)
- feat(nextjs): Unify reactComponentAnnotation across webpack and Turbopack (#23268)
- feat(node,server-utils): Set
cache.keyon dataloader spans and capture redis delete operations ascache.remove(#22389) - feat(node): Add
eveConversationHook()to link eve sessions as Sentry conversations (#24247) - feat(node): Add
getInstrumentedModuleNames()(#24254) - feat(node): Add build-time instrumentation opt-out to bundler plugins (#22756)
- feat(node): Add build-time opt-out for runtime channel injection (#23475)
- feat(node): Add first-party Mastra integration (#23823)
- feat(node): Add Mistral AI integration (#24243)
- feat(node): Always set up express, fastify, koa, hapi integrations (#23473)
- feat(node): Auto-register Hapi error handler on server start (#23461)
- feat(node): Auto-register Koa error handler on app start (#23463)
- feat(node): Capture Express errors automatically via
expressIntegration(#23464) - feat(node): Deprecate
ignoreStatusCodesin http integrations (#23973) - feat(node): Enable dataloader and knex integrations by default (#24312)
- feat(nuxt): Emit low cardinality db span names (#23605)
- feat(nuxt): Enable server-side Sentry during
nuxt devon Nitro v3 (Nuxt 5) (#23644) - feat(react-router): Auto-wire orchestrion build-time instrumentation (#22809)
- feat(react-router): Capture server build in dev mode for middleware names (#22631)
- feat(react-router): Make instrumentation API the default (#22508)
- feat(react): Add
@sentry/react/react-routerentry with automatic React Router hooks (#24014) - feat(remix): Auto-wire orchestrion build-time instrumentation (#23988)
- feat(remix): Emit low cardinality
functionspan names (#24323) - feat(server-runtime-injection): Split runtime orchestrion injection into a dedicated package (#23685)
- feat(server-utils): Add
dbspan op for generic-pool acquire spans (#23213) - feat(server-utils): Add
otlpIntegrationto connect Sentry to an existing OpenTelemetry setup (#23099) - feat(server-utils): Add cache span ops for DataLoader
prime,clearandclearAll(#23212) - feat(server-utils): Add first-party Flue instrumentation (#24265)
- feat(server-utils): Add more channel integration definitions (#23477)
- feat(server-utils): Allow integrations to be part of marker (#22094)
- feat(server-utils): Emit low cardinality
function.gcpspan names for firebase functions (#24069) - feat(server-utils): Emit low cardinality graphql span names (#23542)
- feat(server-utils): Emit low cardinality knex, tedious and prisma db span names (#23602)
- feat(server-utils): Emit low cardinality mongodb span names (#23603)
- feat(server-utils): Emit low cardinality mongoose db span names (#23782)
- feat(server-utils): Emit low cardinality mysql db span names (#23601)
- feat(server-utils): Emit low cardinality redis span names (#23741)
- feat(server-utils): Emit low-cardinality gen_ai agent span names when streaming (#23582)
- feat(server-utils): Implement
setAsyncLocalStorageAsyncContextStrategy(#22889) - feat(server-utils): Migrate
FirebaseInstrumentationto orchestrion (#22141) - feat(server-utils): Warn when bundler config has instrumented module in external (#22379)
- feat(solid-start): Add
code.function.nameattribute to solid-startfunctionspans (#24316) - feat(solid,solidstart): Support
@solidjs/routerv1 (#23162) - feat(solidstart): Add SolidStart 2 support (#23090)
- feat(solidstart): Auto-wire orchestrion build-time instrumentation (#22827)
- feat(sveltekit): Auto-wire orchestrion build-time instrumentation (#22768)
- feat(sveltekit): Emit low cardinality
functionspans (#24341) - feat(tanstackstart): Auto-wire orchestrion build-time instrumentation (#22902)
- feat(vue): Add Options API detection guard (#23568)
- feat(wasm): patch non-streaming load paths (#23767)
- fix(astro): Fall back to
dataCollection.userInfofortrackClientIp(#24091) - fix(astro): support astro v7 route patterns properly (#23457)
- fix(browser): Default pageload span start time to
timeOrigin(#23502) - fix(browser): End the active idle span on pagehide (#23779)
- fix(browser): Keep the best element name captured for an interaction (#24272)
- fix(browser): Release the XHR
virtualErroronce the request completed (#24277) - fix(browser): Respect
dataCollection.httpHeaders.requestinhttpContextIntegration(#23025) - fix(browser): Set
user_agent.originalon all spans for consistent filtering (#24216) - fix(browser): Source FCP from web-vitals
onFCPand rebase FP againstactivationStart(#23032) - fix(bundler-plugins): do not warn on known sourcemap-less chunks (#22267)
- fix(bundler-plugins): Preserve full file path in component annotation source maps (#23572)
- fix(bundler-plugins): Stamp debug IDs onto emitted source maps when
disable-uploadis set (#23754) - fix(cloudflare,deno,node): Align types of vercelai (#22343)
- fix(cloudflare): Filter
CREATE INDEXspans oncf_-prefixed tables (#22650) - fix(cloudflare): Fork the isolation scope for Durable Object methods (#22969)
- fix(cloudflare): Get original waituntil in workflows (#23017)
- fix(cloudflare): Instrument DO RPC methods on the prototype, not a Proxy (#23057)
- fix(cloudflare): Instrument Durable Object handlers installed as read-only properties (#23759)
- fix(cloudflare): Prevent AI provider skips (#22719)
- fix(cloudflare): Remove conflicting
faas.queueop on queue consumer spans (#22664) - fix(cloudflare): Set agent conversation id on the
onRequestpath (#22846) - fix(cloudflare): Set conversation id independent of session name (#22958)
- fix(cloudflare): Use gen_ai.agent.name for class names (#22911)
- fix(core,browser): Handle errors from other realms (#22926)
- fix(core): Apply
dataCollection.urlQueryParamstourl.fullandurl.query(#23061) - fix(core): Apply capture mechanism to originally captured exception (#23320)
- fix(core): Attribute errors to the span they escaped (#23666)
- fix(core): Avoid
functionToStringIntegrationcausing infinite recursions (#22515) - fix(core): Avoid propagating
baggage: "undefined"when DSC is missing (#22424) - fix(core): Bound child span tracking on long-lived spans (#22916)
- fix(core): Catch
beforeSendSpancallback throws (#22836) - fix(core): Do not activate ignored spans in the tracing-channel binding (#22981)
- fix(core): do not unnecessarily defer offline transport send (#24027)
- fix(core): Filter query params in
url.fullon request data and navigate errors (#23143) - fix(core): Guard
loadModuledefault parameter against ESM scope (#24124) - fix(core): Instrument Anthropic client in place instead of via a deep proxy (#22305)
- fix(core): Match wrapped Facebook Mobile browser errors in
DEFAULT_IGNORE_ERRORS(#23744) - fix(core): Normalize http header attribute keys according to OTel spec (#24222)
- fix(core): Propagate sample_rand when continuing a trace without incoming baggage (#22980)
- fix(core): Read external propagation context from the carrier (#23271)
- fix(core): Read Supabase PostgREST headers from
Headersinstances (#23234) - fix(core): resolve MCP capture policy per operation (#23437)
- fix(core): Sample errors after
beforeSendwhile preserving session updates (#22671) - fix(core): Set http cookie header attributes as string arrays (#24435)
- fix(core): Set http header span attributes as string arrays (#24231)
- fix(core): Stop
supabaseIntegrationfrom ending spans twice (#24126) - fix(core): Store child span timeout handle in _childSpanTimeoutID (#23429)
- fix(core): Summarize SQLite upserts so Durable Object
cf_spans stay filtered (#22649) - fix(core): Track quote state when sanitizing SQL literals (#23659)
- fix(deno): Don't throw in Deno.serve wrapper when no client is bound (#24030)
- fix(deno): Gate tracing integrations on hasSpansEnabled (#24070)
- fix(deno): Propagate stream cancellation (#24054)
- fix(effect): Remove span op fallback to
function(#24263) - fix(effect): Set
sentry.originon logs fromSentryEffectLogger(#22762) - fix(ember): Guard
routerService.recognize()against unrecognizable URLs (#24120) - fix(ember): Stop retaining component render payloads in beforeEntries (#23052)
- fix(feedback): Stop long error messages from resizing the feedback dialog (#23376)
- fix(gatsby): Add React 19 to peer dependency range (#22672)
- fix(google-genai): Map messages to the gen_ai conventions (#24352)
- fix(hono): Include originalException in captured exception hint (#22979)
- fix(hono): Use
captureExceptionfrom scope, not fromClient(#23279) - fix(nextjs): Apply
silentto the SDK's own build logs (#23621) - fix(nextjs): Correct in_app for Turbopack dev server stack frames (#23248)
- fix(nextjs): Don't report Next.js prerender control flow errors (#23691)
- fix(nextjs): Keep router.back/forward navigation type under span streaming (#24074)
- fix(nextjs): Keep the Pages Router runtime out of App Router client bundles (#24188)
- fix(nextjs): Make request data available to
tracesSamplerfor edge middleware root spans (#22232) - fix(nextjs): Only include emitted chunk directories in Turbopack sourcemap upload (#24259)
- fix(nextjs): Parameterize
[lng]locale routes and prefer narrower routes over catch-alls (#23520) - fix(nextjs): Print unsupported Turbopack warning once (#24053)
- fix(nextjs): Stop baking absolute paths into server chunks (#23267)
- fix(nextjs): Treat static route span names as low-cardinality names (#23503)
- fix(nitro): Import from nitro/h3 instead of h3 directly (#24361)
- fix(node): Build-time instrument the ESM build of graphql (#23669)
- fix(node): Don't recurse in logAndExitProcess on a broken stdio pipe (#24351)
- fix(node): Move Async context strategy setup to NodeClient.init() (#23458)
- fix(node): Only end the process session when it is still ok (#23725)
- fix(node): Register diagnostics-channel injection in
NodeClientcon… (#24293) - fix(node): Support @google/genai v2 in auto-instrumentation (#23093)
- fix(node): Unpin
@apm-js-collab/code-transformer-bundler-plugins(#22676) - fix(nuxt): Delete source maps after Nitro finishes building (#23407)
- fix(nuxt): Detect Nitro version via the app's Nuxt dependency chain (#24019)
- fix(nuxt): Import from
#imports/serverinaddMiddlewareImports()(#24150) - fix(nuxt): Remove setting
moduleSideEffectsin Nuxt 5 / Nitro 3 (#24309) - fix(nuxt): Stop flushing the client on every HTTP response (#23312)
- fix(nuxt): Windows file:// for import-in-the-middle hook and isAbsolute for C:\ (#23653)
- fix(profiling-node): Bump @sentry/node-cpu-profiler to 2.4.4 (#24229)
- fix(profiling-node): Respect profileSessionSampleRate in trace profile lifecycle (#22928)
- fix(react-router): Carry multi-byte UTF-8 across SSR stream chunk boundaries (#23307)
- fix(react-router): Key server middleware counter by root span, not OTel context (#22982)
- fix(react-router): Preserve
sourcemaps.disablewhenunstable_sentryVitePluginOptionsis set (#22945) - fix(react-router): Use react-router's own instrumentation types instead of a mirrored copy (#23310)
- fix(react): Don't rename a navigation span with another location's route (#24347)
- fix(react): Match TanStack Router pageload against the router location (#23299)
- fix(react): Remove routes from shared set on
<Routes>unmount (#22792) - fix(remix): Prefer narrower routes over splats when both match (#23567)
- fix(remix): Strip trailing underscore from route segments (#24123)
- fix(remix): Treat static route span names as low-cardinality names (#23504)
- fix(replay): don't rewrite already-emitted nodes when syncing mirror attributes (#23426)
- fix(replay): Set text/javascript MIME type on compression worker Blob (#22377)
- fix(replay): Suppress Worker destroyed error on session expiry (#23409)
- fix(server-utils): Always sanitize inline literals out of
db.query.text(#24089) - fix(server-utils): Don't capture caller-handled LangChain errors (#23593)
- fix(server-utils): Don't capture caller-handled LangGraph errors (#23594)
- fix(server-utils): Forward
resolveIdoptions in the orchestrion Rollup plugin (#24286) - fix(server-utils): Gate
gen_ai.tool.definitionsondataCollection.genAI.inputs(#24088) - fix(server-utils): Include Gemini reasoning tokens in Vercel AI token usage (#24066)
- fix(server-utils): Keep qualified table names in
db.query.summary(#23853) - fix(server-utils): Pass the SQL dialect when summarizing Prisma queries (#23854)
- fix(server-utils): Read AI SDK cache token counts in Vercel AI channel subscriber (#24350)
- fix(server-utils): Restore request config attributes on google-genai chat spans (#23316)
- fix(server-utils): Sanitize PostgreSQL dollar-quoted strings in `db.q… (#24248)
- fix(server-utils): Sanitize SQL Server bracketed identifiers (#24255)
- fix(server-utils): Stop reporting caller-handled errors from the OpenAI, Anthropic & Google GenAI instrumentations (#23024)
- fix(server-utils): Support openai v7 in auto-instrumentation (#23512)
- fix(sveltekit): Adapt frame rewriting for kit 3 (#22407)
- fix(sveltekit): Detect native tracing in flattened SvelteKit 3 config (#23399)
- fix(sveltekit): Export
metricsfrom worker entry point (#23026) - fix(sveltekit): Handle SvelteKit 3 error kinds in handleErrorWithSentry (#23651)
- fix(sveltekit): Read Cloudflare execution context from platform.ctx (#23293)
- fix(sveltekit): Read SvelteKit config from the Vite plugin (#23678)
- fix(sveltekit): Register the OpenTelemetry tracer provider on Cloudflare (#23632)
- fix(sveltekit): Resolve the Cloudflare execution context without
event.platform(#24241) - fix(wasm): Forward compile options and patch frames of all exception values (#23660)
- ref: Align ContextLines fallback with dataCollection default (#24390)
- ref(browser): remove web vital standalone span experiments (#21215)
- ref(browser): Tree-shake span streaming out of error-only bundles (#23362)
- ref(core): Deprecate
includefrom RequestData (#22906) - ref(core): Make
spanStreamingIntegrationtree-shakeable via__SENTRY_TRACING__flag (#22835) - ref(core): Remove experimental flag from
ignoreSentryInternalFrames(#23200) - ref(nextjs): Add deprecation notices to nested reactComponentAnnotation options (#23394)
- ref(node): Remove span status & source inferral (#23209)
- ref(node): Stop inferring op for spans (#23195)
- ref(node): Stop inferring url-attributes for spans (#23187)
- ref(node): Stop tracing
messages.countTokensin Anthropic AI (#23205) - ref(node): Stop tracing
models.retrieve/models.getin Anthropic AI (#23206) - refactor(core): replace public any types with unknown (#21249)
Internal Changes
- build(deps): Bump vitest and @vitest/coverage-v8 to 3.2.7 (#22848)
- build(deps): upgrade oxfmt to 0.60 and reformat (#22563)
- build(oxlint): upgrade oxlint to 1.75 and tsgolint to TS 7 (#22561)
- build(rollup-utils): Skip bare side-effect imports for
sideEffects: falseexternals (#23674) - chore: Add
no-unfiltered-url-attributesrule (#23144) - chore: Correct broken --exclude brace expansion in test scripts (#23204)
- chore: Document the three OpenTelemetry setups in the migration guide (#23149)
- chore: Ensure new tests are not using transactions (#24380)
- chore: Remove lazy loading for hook registration (#22443)
- chore: Retarget
sentry.previous_traceTODOs to v12 (#24392) - chore: Set
attribution.sessionUrlto false for claude code (#24021) - chore: Unpin Node 22 test matrix from 22.12 (#22447)
- chore: Update AGENTS.md to not build and test for every commit (#22638)
- chore: Update migration guide with span op breaking changes (#23137)
- chore(agents): Avoid lazy loading and debug switching in server SDKs (#22559)
- chore(agents): trim rules to save context overhead (#22923)
- chore(browser-utils): Retarget
_trackNavigatorTODO to v12 (#24385) - chore(bugbot): Add rule to flag
getClientusage when avoidable (#23135) - chore(bugbot): Add rule to prefer eagerly set span attributes (#23629)
- chore(ci): Open dependabot triage PRs as ready with reviewers (#23084)
- chore(cloudflare): Remove restricted imports (#22896)
- chore(deps-dev): Bump @sveltejs/kit from 2.60.1 to 2.69.1 (#22656)
- chore(deps-dev): Bump @sveltejs/kit from 2.69.1 to 2.70.2 (#23165)
- chore(deps-dev): Bump @testing-library/jest-dom from 6.6.3 to 6.9.1 (#23264)
- chore(deps-dev): Bump fake-indexeddb from 6.2.4 to 6.2.5 (#23414)
- chore(deps-dev): Bump next from 15.5.21 to 15.5.24 in /packages/nextjs (#24285)
- chore(deps-dev): Bump nx from 22.7.5 to 22.7.7 (#23133)
- chore(deps-dev): Bump oxfmt from 0.60.0 to 0.63.0 (#23466)
- chore(deps-dev): Bump preact from 10.19.4 to 10.29.8 (#23705)
- chore(deps-dev): Bump react-router from 7.17.0 to 7.18.0 (#22569)
- chore(deps-dev): Bump vite from 7.3.2 to 7.3.5 (#22511)
- chore(deps-dev): Bump vite from 7.3.2 to 7.3.5 in /dev-packages/e2e-tests/test-applications/react-router-8-cloudflare (#23179)
- chore(deps): Bump @prisma/adapter-pg from 7.8.0 to 7.9.1 (#23262)
- chore(deps): Bump
@sentry/conventionsto 0.19.0 (#23161) - chore(deps): Bump
@sentry/conventionsto 0.20.0 (#23544) - chore(deps): Bump axios from 1.16.0 to 1.18.0 in /dev-packages/e2e-tests/test-applications/nestjs-basic (#22395)
- chore(deps): Bump body-parser from 2.2.2 to 2.3.0 (#22408)
- chore(deps): Bump fast-uri from 3.1.4 to 3.1.5 (#22977)
- chore(deps): Bump hono from 4.12.34 to 4.13.5 (#24234)
- chore(deps): Bump ip-address from 10.2.0 to 10.4.0 (#22972)
- chore(deps): Bump morgan from 1.10.0 to 1.11.0 (#22187)
- chore(deps): Bump react-router from 7.13.0 to 7.18.0 in /dev-packages/e2e-tests/test-applications/hydrogen-react-router-7 (#22567)
- chore(deps): Bump react-router from 7.18.0 to 7.18.2 in /dev-packages/e2e-tests/test-applications/hydrogen-react-router-7 (#23171)
- chore(deps): Bump socket.io-parser from 4.2.6 to 4.2.7 (#22976)
- chore(dev): Support Claude Code cloud (remote) sessions (#22573)
- chore(e2e): Bump
@solidjs/routerto v1 in solidstart test apps (#23164) - chore(e2e): Link
@sentry/bundler-pluginsinto the aws-serverless lambda test app (#23159) - chore(effect): sentry-conventions dep verison drift (#23249)
- chore(effect): Use oxlint instead of eslint (#22949)
- chore(lint/yarn): Fix CI blocking issues (#23543)
- chore(nextjs): Bump
nextfrom 14.2.35 to 15.5.21 (#22629) - chore(oxlint): Add
lint:typesto packages (#23578) - chore(react): Replace unused eslint plugins with oxlint react rules (#22944)
- chore(repo): Add low cardinality span name setting skill (#23449)
- chore(server-utils): Simplify
injectChannelSubscribers(#23033) - chore(size-limit-action): Resolve baseline by walking git history (#24310)
- chore(size-limit): weekly auto-bump (#22182)
- chore(size-limit): weekly auto-bump (#22587)
- chore(size-limit): weekly auto-bump (#22907)
- chore(size-limit): weekly auto-bump (#23141)
- chore(size-limit): weekly auto-bump (#23431)
- chore(size-limit): weekly auto-bump (#23472)
- chore(size-limit): weekly auto-bump (#23736)
- chore(size-limit): weekly auto-bump (#24068)
- chore(size-limit): weekly auto-bump (#24331)
- chore(skills): Highlight differences in backport-pr skill (#23203)
- chore(skills): Write framework-updates digest to repo-relative path (#22578)
- chore(solidstart): Refresh SolidStart test versions (#23451)
- chore(tanstackstart-react): Remove leftover empty config module (#23483)
- chore(test): mock @sentry/core in ember test (#24406)
- chore(v11): add v11 migration guide (#22364)
- chore(v11): Upgrade to TypeScript 7.0 (#19435)
- ci: Add
v10to build and license-compliance branch filters (#22498) - ci(deps-dev): Bump @sveltejs/kit from 2.52.2 to 2.70.2 in /dev-packages/e2e-tests/test-applications/sveltekit-2-otlp (#24198)
- ci(deps): Bump actions/cache from 5 to 6 (#22935)
- ci(deps): Bump actions/setup-node from 6 to 7 (#23872)
- ci(deps): Bump actions/stale from 10 to 11 (#22933)
- ci(deps): Bump anthropics/claude-code-action from 1.0.161 to 1.0.189 (#23255)
- ci(deps): Bump anthropics/claude-code-action from 1.0.189 to 1.0.210 (#23875)
- ci(deps): Bump aws-actions/setup-sam from 2 to 3 (#23874)
- ci(deps): Bump denoland/setup-deno from 2.0.4 to 2.0.5 (#23256)
- ci(deps): Bump dorny/paths-filter from 4.0.1 to 4.0.2 (#22931)
- ci(deps): Bump dorny/paths-filter from 4.0.2 to 4.0.3 (#23257)
- ci(deps): Bump getsentry/craft from 2.26.14 to 2.28.0 (#22932)
- ci(deps): Bump getsentry/craft from 2.28.0 to 2.30.1 (#23258)
- ci(deps): Bump mshick/add-pr-comment from 3.11.0 to 3.12.0 (#23873)
- ci(deps): Bump pnpm/action-setup from 6.0.9 to 6.0.10 (#23259)
- ci(size-limit): Run size-limit action on node24 (#24308)
- deps(nuxt): Bump
@nuxt/kit(#23303) - docs: Add guide for cutting a maintenance branch for a new major (#22500)
- docs: Add migration guide entry for vercelAi (#23510)
- docs: backfill shared Bugbot review rules (#23764)
- docs: Fix inaccuracies in the v11 migration guide (#24186)
- docs: Fix stale AI integration paths and patterns in AGENTS.md and add-ai-integration skill (#24257)
- docs: Fix v11 migration guide for removed
enableLogsandenableMetrics(#23617) - docs: Highlight that scope tags are not applied to streamed spans (#23904)
- docs: Merge v11 end-state guide into MIGRATION.md (#23623)
- docs: Streamline the span name changes migration section (#23607)
- docs: Tighten PR-description and comment guidance in AGENTS.md (#24329)
- docs: Update self-hosted compatibility for v11 (#24056)
- docs: Use
db.query.textin the v11beforeSendSpanexample (#23957) - docs(astro): Document build-time vs runtime setup in the SDK README (#23430)
- docs(deno): Make --preload not experimental (#24215)
- docs(migration): Document low-cardinality http.server span names (#23598)
- docs(migration): Document the
@sentry/coreentrypoint split (#23990) - docs(migration): Document the AI instrumentation move out of
@sentry/core(#23006) - docs(migration): Fix
httpHeadersshape indataCollectionbaseline (#23169) - docs(migration): Move data collection section up in v11 migration guide (#22924)
- docs(migration): Note raised Fastify minimum version (3.21) (#22709)
- docs(migration): Trim v11 migration guide for the first alpha (#23140)
- docs(react-router): Remove beta label from README (#24300)
- docs(react): Add JSDoc to
withSentryRouting(#24012) - feat(deps-dev): Bump @sveltejs/kit from 2.60.1 to 2.69.1 in /dev-packages/e2e-tests/test-applications/sveltekit-2-svelte-5 (#22657)
- feat(deps-dev): Bump @sveltejs/kit from 2.60.1 to 2.69.1 in /dev-packages/e2e-tests/test-applications/sveltekit-cloudflare-pages (#22652)
- feat(deps-dev): Bump @sveltejs/kit from 2.60.1 to 2.70.2 in /dev-packages/e2e-tests/test-applications/sveltekit-2-static (#24093)
- feat(deps-dev): Bump vite from 7.3.2 to 7.3.5 in /dev-packages/e2e-tests/test-applications/cloudflare-vercelai-v7 (#23489)
- feat(deps): Bump @actions/artifact from 6.1.0 to 6.2.1 (#23413)
- feat(deps): Bump @hono/node-server from 1.19.14 to 2.0.5 (#22455)
- feat(deps): Bump @hono/node-server from 2.0.5 to 2.0.10 (#22476)
- feat(deps): Bump @remix-run/router from 1.23.3 to 1.23.4 in the remix group (#23700)
- feat(deps): Bump
@sentry/conventionsto 0.23.0 (#24321) - feat(deps): Bump and pin @supabase/supabase-js from 2.49.3 to 2.109.0 (#23108)
- feat(deps): Bump axios from 1.16.0 to 1.18.0 (#22396)
- feat(deps): Bump engine.io from 6.6.2 to 6.6.9 (#22410)
- feat(deps): Bump fast-uri from 3.1.3 to 3.1.4 (#22479)
- feat(deps): Bump fast-uri from 3.1.5 to 3.1.7 (#23980)
- feat(deps): Bump fastify from 5.9.0 to 5.12.1 (#23976)
- feat(deps): Bump fflate from 0.8.2 to 0.8.3 (#24029)
- feat(deps): Bump find-my-way from 9.6.0 to 9.7.0 (#22570)
- feat(deps): Bump graphql-tag from 2.12.6 to 2.12.7 (#23419)
- feat(deps): Bump hono from 4.12.25 to 4.12.27 (#22456)
- feat(deps): Bump hono from 4.12.27 to 4.12.34 (#22975)
- feat(deps): Bump immutable from 4.3.8 to 4.3.9 (#22478)
- feat(deps): Bump js-yaml from 3.15.0 to 3.15.1 (#23134)
- feat(deps): Bump mongoose from 6.13.9 to 6.13.10 (#22654)
- feat(deps): Bump mysql2 from 3.19.1 to 3.23.3 (#23263)
- feat(deps): Bump nock from 14.0.16 to 14.0.17 (#23261)
- feat(deps): Bump node-cron from 3.0.3 to 4.6.0 (#23465)
- feat(deps): Bump postcss-selector-parser from 6.1.2 to 6.1.4 (#23880)
- feat(deps): Bump shell-quote from 1.8.4 to 1.10.0 (#22409)
- feat(deps): Bump svgo from 4.0.1 to 4.0.2 (#22477)
- feat(deps): Bump toml from 4.1.1 to 4.3.0 (#24036)
- feat(deps): Bump valibot from 1.2.0 to 1.4.2 (#22655)
- feat(deps): Bump websocket-driver from 0.7.4 to 0.7.5 (#22307)
- feat(deps)!: Bump eslint-plugin-simple-import-sort from 12.1.1 to 14.0.0 (#23110)
- feat(server-utils): Capture errors thrown in Mastra (#24374)
- feat(server-utils): Ensure Mastra tool/model spans are correctly nested (#24368)
- feat(skills): Add backport-pr skill (#22434)
- Fix: spelling of parameterized in port-span-names skill (#23707)
- fix(bundler-plugin-tests): Normalize prerelease versions in telemetry snapshots (#23158)
- fix(ci): update webpack config so size-limit is not zeroed out (#23467)
- fix(cloudflare): Also skip cf: prefixed DOs (#22795)
- fix(cloudflare): Auto-instrument classes re-exported from the worker entry (#23282)
- fix(cloudflare): Import prismaIntegration from server-utils (#22520)
- fix(cloudflare): Reject unknown keys in options callbacks (#23290)
- fix(cloudflare): Restore env type inference for options callbacks (#22963)
- fix(cloudflare): Try/catch on non-configurable prototypes (#23132)
- fix(cloudflare): Use correct types for Vite plugin (#23010)
- fix(deps): Bump brace-expansion to 1.1.18 (#23245)
- fix(e2e): Fix solidstart test assertions (#22859)
- fix(nextjs): Add orchestrion bundling regression tests and import.meta.url shim (#23935)
- fix(node): Bootstrap Mastra observability under ESM (#24177)
- fix(node): Detect + warn when the orchestrion runtime hook is bundled (#23675)
- fix(node): Distinguish isolated transform failures from bundling in the runtime warning (#24242)
- fix(node): Skip registration-only instrumentations in the runtime loader (#24240)
- fix(nuxt): dev dependency security fixes - bump nuxt to 3.21.11 (#23235)
- fix(orchestrion): Stop force-bundling instrumented deps in dev servers (#23835)
- fix(repo): Align nx cache outputs with actual build outputs (#23929)
- fix(repo): fix tsconfig diagnostics surfaced by tsgolint 7 (#22560)
- fix(server-runtime-injection): Resolve the orchestrion ESM hook by path so build tracers follow it (#23687)
- fix(server-utils,nuxt): Update SQL helper imports after move from core (#24122)
- fix(server-utils): Do not inject dc into client bundle (#22668)
- fix(server-utils): Ensure all orchestrion instrumentation lazy registers (#22518)
- fix(server-utils): Keep orchestrion registration out of tree-shaking (#23590)
- fix(server-utils): Stop orchestrion rollup plugin from crashing under Rolldown (#23545)
- ref: Add
sanitizeSqlQueryWithSummaryhelper and DB bugbot rule (#24244) - ref: Drop the
@opentelemetry/coredependency (#23044) - ref: Migrate internal
spanToJSONcallers tospanToStreamedSpanJSON(#23237) - ref: Remove orchestrion references from customer-facing surfaces (#23507)
- ref: Remove redundant
forceTransaction: trueusages (#23756) - ref: Replace UI Span OP with
ui.from@sentry/conventions/op(#23565) - ref: Use op constants from conventions (#23742)
- ref!: Remove
.orchestrion.from span origins (#22722) - ref(ai)!: Drop core's duplicate AI base copy (#22965)
- ref(astro): Remove unused script (#23274)
- ref(aws-serverless): Remove dead vendored aws-sdk OTel instrumentation (#22825)
- ref(browser): Replace vendored web-vitals with web-vitals@6 dependency (#23070)
- ref(browser): Restructure browser-utils by domain (#23071)
- ref(browser): Use conventions constants for browser navigation attributes (#24322)
- ref(bun): Streamline auto-instrumentation integration handling (#23392)
- ref(bundler-plugins): Replace
find-upwith a local package.json lookup (#24112) - ref(cloudflare): Add whitespace in warning (#24209)
- ref(cloudflare): Build context descriptors in one pass (#23131)
- ref(cloudflare): Ensure wrapRequestHandler stays free of node specifcs (#22894)
- ref(cloudflare): Remove outdated v11 todo (#23493)
- ref(cloudflare): Use conventions constants for R2 span ops and attrs (#23677)
- ref(cloudflare)!: Remove wrapRequestHandlerWithInit as export (#23322)
- ref(core): Ensure error span status is always valid (#22522)
- ref(core): Export browser-specific span start APIs (#23361)
- ref(core): Move browser-only types out of core (#23723)
- ref(core): Remove otel-based
suppressTracingimplementation (#22574) - ref(core): Remove unused gen_ai operation constants (#22810)
- ref(core): Streamline how active spans are set in core (#23254)
- ref(core): Type metric units with MetricUnit (#23304)
- ref(core): Use
@sentry/conventionsfor gen_ai attributes (#22552) - ref(core): Use
stringifyhelper for AI span attribute serialization (#22828) - ref(nextjs): Remove next.js tracing escaping code (#22685)
- ref(nextjs): Vendor
isSentryRequestSpanfrom opentelemetry package (#22583) - ref(node): Fix flaky ANR stop-and-restart test with deterministic worker-ready signal (#23514)
- ref(node): Remove
applyOtelComaptibilityAttributes(#23197) - ref(node): Remove
OpenTelemetryServerRuntimeOptionstype (#23228) - ref(node): Remove OTel RPC metadata from http server spans (#23028)
- ref(node): Remove two Node <20 leftovers (hrtime.bigint, undici channel refs) (#24183)
- ref(node): Remove vendored amqplib instrumentation (#22730)
- ref(node): Remove vendored Anthropic AI instrumentation (#22731)
- ref(node): Remove vendored express instrumentation (#22749)
- ref(node): Remove vendored Firebase instrumentation (#22732)
- ref(node): Remove vendored generic-pool instrumentation (#22733)
- ref(node): Remove vendored Google GenAI instrumentation (#22734)
- ref(node): Remove vendored GraphQL instrumentation (#22735)
- ref(node): Remove vendored Hapi instrumentation (#22750)
- ref(node): Remove vendored kafkajs instrumentation (#22736)
- ref(node): Remove vendored Koa instrumentation (#22751)
- ref(node): Remove vendored LangChain instrumentation (#22737)
- ref(node): Remove vendored LangGraph instrumentation (#22738)
- ref(node): Remove vendored lru-memoizer instrumentation (#22739)
- ref(node): Remove vendored MongoDB instrumentation (#22740)
- ref(node): Remove vendored Mongoose instrumentation (#22741)
- ref(node): Remove vendored mysql instrumentation (#22742)
- ref(node): Remove vendored mysql2 instrumentation (#22743)
- ref(node): Remove vendored OpenAI instrumentation (#22744)
- ref(node): Remove vendored postgres (pg) instrumentation (#22745)
- ref(node): Remove vendored postgres.js instrumentation (#22748)
- ref(node): Remove vendored redis/ioredis instrumentation (#22753)
- ref(node): Remove vendored tedious instrumentation (#22746)
- ref(node): Remove vendored Vercel AI instrumentation (#22747)
- ref(opentelemetry): Remove enhanceDscWithOpenTelemetryRootSpanName (#22797)
- ref(opentelemetry): Remove orphaned code (#22705)
- ref(opentelemetry): Remove startSpan overrides from async context strategy (#23198)
- ref(opentelemetry): Remove unused methods (#23286)
- ref(opentelemetry): Remove unused
wrapClient(#22576) - ref(opentelemetry): Use
sentry.graphql.operationfrom conventions (#22582) - ref(opentelemetry): Vendor OTel context suppress helpers (#23030)
- ref(react-router): Clean up comments (#23417)
- ref(react-router): Decouple ServerBuild capture from the OTel patch (#22492)
- ref(react-router): Remove stale @opentelemetry/instrumentation dependency (#22826)
- ref(rollup-utils): Remove legacy makeOtelLoaders (#22867)
- ref(server-utils): Add shared AI instrumentation base (#22952)
- ref(server-utils): Alias AI integration option types to shared
GenAiOptions(#23250) - ref(server-utils): Cleanup mongodb files & exports (#23326)
- ref(server-utils): Export integrations from
@sentry/server-utils& remove/orchestrionentrypoint (#23459) - ref(server-utils): Extract shared safeChannelCallback helper (#22435)
- ref(server-utils): Import
messaging.destination_kindfrom conventions (#24418) - ref(server-utils): make SENTRY_ORCHESTRION.bundler a Set (#23456)
- ref(server-utils): Move integrations from tracing-channel folder up (#23327)
- ref(server-utils): Move postgres.js instrumentation and SQL utils out of core (#23828)
- ref(server-utils): Remove
addVercelAiProcessorsand Vercel AI OTel span processing (#23384) - ref(server-utils): Remove
otelpart from span origins (#23627) - ref(server-utils): Remove array JSON-stringify fallback in Vercel AI integration (#23102)
- ref(server-utils): Remove dead Vercel AI tool-call span-context tracking (#23298)
- ref(server-utils): Remove unneeded orchestrion config (#22384)
- ref(server-utils): Remove unused AI
*InstrumentedMethodtypes (#23284) - ref(server-utils): Remove unused AI client types (#23289)
- ref(server-utils): Remove unused AI integration interface types (#23291)
- ref(server-utils): Remove unused OpenAI response shape types (#23292)
- ref(server-utils): Remove unused public exports (#23382)
- ref(server-utils): Rename
anthropicIntegrationtoanthropicAIIntegration(#23357) - ref(server-utils): Rename
kafkajsIntegrationtokafkaIntegration(#23358) - ref(server-utils): Rename
mongodbIntegrationtomongoIntegration(#23359) - ref(server-utils): Rename
openaiIntegrationtoopenAIIntegration(#23356) - ref(server-utils): Rename
vercelAiIntegrationtovercelAIIntegration(#23360) - ref(server-utils): Share
isReadableStreambetween AI instrumentations (#24417) - ref(server-utils): Small fastify cleanup (#22385)
- ref(server-utils): Streamline
redisIntegration(#23353) - ref(server-utils): Streamline graphql integration (#23329)
- ref(server-utils): Streamline mongoose integration (#23330)
- ref(server-utils): Streamline mysql2 integration (#23331)
- ref(server-utils): Unify orchestrion injection into a single
tracingChannelImporttransform (#23075) - test: Add build-time tests for node & bundler plugins (#23618)
- test: Disable span streaming in remaining test suites (#22716)
- test: Disable span streaming in remaining tests (#22588)
- test: Drop Node v18 tests (#22428)
- test: Fix flaky nuxt-3 test (#24201)
- test: Fix test assertions based on attribute changes (#23339)
- test: Loosen MCP v2 dependency pins in test apps (#23643)
- test: Remove unnecessary test waits (#22383)
- test: Remove unneeded orchestrion test apps (#23349)
- test: Upgrade Playwright to 1.63 and fix the Chromium 153 fallout (#24273)
- test: Verify HTTP QUERY method instrumentation (#23288)
- test(angular, ember): Cover router span name fallbacks (#23548)
- test(browser): Disable span streaming in integration tests (#22591)
- test(browser): Unflake streamed XHR span assertions (#22640)
- test(bun): Fix client leakage between unit test files (#23142)
- test(bun): Fix integration test on Bun 1.4.0 (#23521)
- test(cloudflare): Add Vite-build support to the integration-test runner (#22422)
- test(cloudflare): Cover
enableDedupeoption (#23210) - test(cloudflare): De-flake Workflow auto-instrumentation test (#23829)
- test(cloudflare): Disable span streaming in integration tests (#22594)
- test(cloudflare): Pin ai-chat on cloudflare-agent tests (#24345)
- test(cloudflare): Pin mcp as agent depends on it (#22723)
- test(cloudflare): Set unordered to spans from 2 separate bindings (#23647)
- test(cloudflare): Skip memory tests for now (#23150)
- test(cloudflare): Skip retries for expected failures (#22991)
- test(core): Keeping mechanism on captured error, not on its chained
cause(#23244) - test(dataCollection): Remove all occurences of
sendDefaultPiiin unit tests (#22913) - test(e2e): Add
astro-7-staticE2E app (#24075) - test(e2e): Add
create-remix-app-v2-staticE2E app (#24057) - test(e2e): Add
nestjs-11-staticE2E app (#24095) - test(e2e): Add a Mistral E2E app covering both instrumentation paths (#24378)
- test(e2e): Add a static trace lifecycle Next.js 16 test app (#23834)
- test(e2e): Add a static trace lifecycle Next.js routing test app (#23817)
- test(e2e): Add a static trace lifecycle React E2E app (#23848)
- test(e2e): Add a static trace lifecycle React Router E2E app (#23840)
- test(e2e): Add a static trace lifecycle SolidStart E2E app (#23916)
- test(e2e): Add a sveltekit-2-otlp E2E app (#24184)
- test(e2e): Add bring-your-own-OpenTelemetry test app (#23851)
- test(e2e): Add Fastify v6 e2e app (#24245)
- test(e2e): Add missing
@sentry/coredep to nextjs-16-userfeedback (#22988) - test(e2e): Add Next.js standalone output test app (#23679)
- test(e2e): Add Nuxt source maps test (#23518)
- test(e2e): Add nuxt-4-static app to keep static trace lifecycle coverage (#23952)
- test(e2e): Add optional SolidStart 2 E2E test (#22816)
- test(e2e): Always run create-remix-app-v2 with orchestrion (#23931)
- test(e2e): Assert error events link to their request transaction (#23470)
- test(e2e): Avoid network installs in AWS serverless tests (#24059)
- test(e2e): Bring streaming cacheComponents app to parity with the static one (#23838)
- test(e2e): Bump Next.js to 16.2.11 and 15.5.21 in test apps (#23820)
- test(e2e): Cover error, log and metric trace linking in the nextjs-otlp app (#24175)
- test(e2e): Cover soft navigation web vitals across router instrumentations (#24324)
- test(e2e): Disable span streaming in e2e test applications (#22590)
- test(e2e): Enable nuxt-5 as optional (#22017)
- test(e2e): Expect array header attributes in node-fastify-6 tests (#24436)
- test(e2e): Expect low-cardinality cache span names
- test(e2e): Fix failing e2e tests after db span name adjustments (#23971)
- test(e2e): Fix header attribute keys in node-fastify-6 tests (#24363)
- test(e2e): Fix node-firebase span name expectations for span streaming (#24225)
- test(e2e): Fix react-send-to-sentry and debug-id-sourcemaps tests (#24391)
- test(e2e): Fix scripts for nuxt dev server (#22942)
- test(e2e): Fix stale mysql query-text assertion in tanstackstart-react-static (#24303)
- test(e2e): fix sveltekit-3 test, turn on VOLTA_FEATURE_PNPM (#22647)
- test(e2e): Fix type error in nextjs ai-error tests (#22978)
- test(e2e): Group collectStreamedSpans by trace (#23912)
- test(e2e): Keep a static-lifecycle copy of the TanStack Start React E2E app (#24167)
- test(e2e): Keep a static-lifecycle copy of the Vue 3 E2E app (#24166)
- test(e2e): Look up events via the organization trace endpoint (#23371)
- test(e2e): Look up the symbolicated event via the eventids endpoint (#23387)
- test(e2e): Merge tanstackstart orchestrion app into main test app (#22922)
- test(e2e): Migrate Effect to span streaming (#24161)
- test(e2e): Migrate Elysia to span streaming (#24162)
- test(e2e): Migrate Express 4 and TSX to span streaming (#24156)
- test(e2e): Migrate Express 5 and MCP to span streaming (#24157)
- test(e2e): Migrate Express ESM variants to span streaming (#24158)
- test(e2e): Migrate Fastify to span streaming (#24159)
- test(e2e): Migrate Firebase and Electron fixtures to span streaming (#24164)
- test(e2e): Migrate Hono to span streaming (#24163)
- test(e2e): Migrate Koa and Hapi to span streaming (#24160)
- test(e2e): Migrate nitro-3 to span streaming
- test(e2e): Migrate nuxt-3-dynamic-import to span streaming (#23947)
- test(e2e): Migrate nuxt-3-min to span streaming (#23953)
- test(e2e): Migrate nuxt-3-top-level-import to span streaming (#23948)
- test(e2e): Migrate nuxt-4 to span streaming (#23949)
- test(e2e): Migrate nuxt-4-cloudflare to span streaming (#23950)
- test(e2e): Migrate nuxt-5 to span streaming (#23951)
- test(e2e): Move
collectSpanNamesUntilSegmentinto@sentry-internal/test-utils(#24073) - test(e2e): Pin tanstackstart-react e2e deps to unblock tunnel tests (#23046)
- test(e2e): pin unstorage in nitro-3 e2e (#23474)
- test(e2e): Port
denoE2E test app to span streaming (#24002) - test(e2e): Port Bun E2E test apps to span streaming (#23997)
- test(e2e): Port cloudflare-agent to span streaming (#23862)
- test(e2e): Port cloudflare-autoinstrument to span streaming (#23861)
- test(e2e): Port cloudflare-local-workers to span streaming (#23857)
- test(e2e): Port cloudflare-mcp to span streaming (#23858)
- test(e2e): Port cloudflare-mcp-agent to span streaming (#23859)
- test(e2e): Port cloudflare-orchestrion-mysql to span streaming (#23860)
- test(e2e): Port cloudflare-vercelai-v7 to span streaming (#23863)
- test(e2e): Port cloudflare-workers to span streaming and keep a static copy (#23855)
- test(e2e): Port cloudflare-workers-workflow-legacy to span streaming (#23864)
- test(e2e): Port cloudflare-workersentrypoint to span streaming (#23856)
- test(e2e): Port Deno db E2E test apps to span streaming (#24003)
- test(e2e): Port Ember E2E apps to span streaming (#24168)
- test(e2e): Port Next.js routing test apps to span streaming (#23797)
- test(e2e): Port nextjs-14 to span streaming (#23921)
- test(e2e): Port nextjs-15 to span streaming (#23923)
- test(e2e): Port nextjs-15-t3 to span streaming (#23869)
- test(e2e): Port nextjs-16 to span streaming (#23924)
- test(e2e): Port nextjs-16-bun to span streaming (#23925)
- test(e2e): Port nextjs-16-cf-workers to span streaming (#23926)
- test(e2e): Port nextjs-16-tunnel to span streaming (#23868)
- test(e2e): Port nextjs-16-userfeedback to span streaming (#23867)
- test(e2e): Port nextjs-app-dir to span streaming (#23905)
- test(e2e): Port nextjs-orpc to span streaming (#23870)
- test(e2e): Port nextjs-pages-dir to span streaming (#23914)
- test(e2e): Port plain browser and bundler E2E apps to span streaming (#24111)
- test(e2e): Port React E2E test apps to span streaming (#23849)
- test(e2e): Port React Router data router E2E apps to span streaming (#23842)
- test(e2e): Port React Router framework E2E apps to span streaming (#23844)
- test(e2e): Port React Router v5 and v6 E2E apps to span streaming (#23841)
- test(e2e): Port Solid E2E test apps to span streaming (#23940)
- test(e2e): Port SolidStart SPA and import-variant E2E apps to span streaming (#23919)
- test(e2e): Port Svelte E2E test app to span streaming (#23930)
- test(e2e): Port SvelteKit E2E test apps to span streaming (#23936)
- test(e2e): Port the angular-17 E2E app to span streaming (#23981)
- test(e2e): Port the angular-18 E2E app to span streaming (#23982)
- test(e2e): Port the angular-20 E2E app to span streaming (#23983)
- test(e2e): Port the angular-21 E2E app to span streaming (#23984)
- test(e2e): Port the angular-22 E2E app to span streaming (#23985)
- test(e2e): Port the astro-4 E2E app to span streaming (#24079)
- test(e2e): Port the astro-5 E2E app to span streaming (#24078)
- test(e2e): Port the astro-6 E2E app to span streaming (#24077)
This changelog has been truncated. See the full changelog for all changes.