Requested by: @chargome
Merge target: 11.0.0-rc
Quick links:
Assign the accepted label to this issue to approve the release.
Targets
Checked targets will be skipped (either already published or user-requested skip). Uncheck to retry a target.
📋 Changelog
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
skipOpenTelemetrySetup with enableOpenTelemetrySetup (#23199)
- feat!: Replace the deprecated
http.target span attribute (#23575)
- feat!: Require Node
>=20.19.0 as minimum supported version (#22558)
- feat!: Use
handler span op for terminal request handlers (#22871)
- feat!: Use
middleware span op for web-server middleware (#22852)
- feat(frameworks)!: Use
function op 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
router span op for frontend routers (#23086)
- feat(angular)!: Use
ui.mount and function span 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
sourceMapsUploadOptions build 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.x from the Lambda layer runtimes (#23155)
- feat(aws-serverless): Remove deprecated
disableAwsContextPropagation option (#23170)
- feat(aws-serverless)!: Emit
faas.invocation_id and cloud.resource_id (#24384)
- feat(aws-serverless)!: Remove unused
startTrace option and tryPatchHandler (#23219)
- feat(aws-serverless)!: Use
function.aws span op for Lambda invocations (#22677)
- feat(aws)!: Use
queue Span 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 new userTimingSpansIntegration (#22554)
- feat(browser)!: Extract interaction spans into new
interactionsIntegration (#23295)
- feat(browser)!: Record console breadcrumbs via consoleIntegration (#24387)
- feat(browser)!: Rename
bfcacheIntegration to bfcacheMetricsIntegration (#23776)
- feat(browser)!: Report web vitals for bfcache restores by default (#24325)
- feat(browser)!: Send session status
unhandled instead of crashed for unhandled errors (#22475)
- feat(browser)!: Switch default browser session lifecycle mode to
page (#21245)
- feat(browser)!: Use
browser.paint span 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
trackFetchStreamPerformance flag (#23172)
- ref(browser)!: Drop Safari 14 support - remove
navigationStart fallback and pagehide listeners (#21293)
- ref(browser)!: Remove
beforeSpanEnd callback in favor of beforeIdleSpanEnd hook (#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
function span op for cron, email and workflow steps (#22703)
- ref(cloudflare)!: Remove deprecated
instrumentD1WithSentry export (#23153)
- ref(cloudflare)!: Remove instrumentPrototypeMethods option (#22961)
- ref(cloudflare)!: Remove wrapRequestHandler from main entrypoint (#22881)
- ref(cloudflare)!: Use shared
SentryTracerProvider for OpenTelemetry interop (#23300)
@sentry/core
- feat(core): Remove
span from ScopeData (#23225)
- feat(core)!: Align request data collection with v11 defaults (#22853)
- feat(core)!: Default
attachStacktrace to 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
genAI defaults to collect it by default (#22706)
- feat(core)!: Gate incoming HTTP body capture on
dataCollection.httpBodies (#22834)
- feat(core)!: Make
beforeSendSpan compatible with streamed spans by default (#22643)
- feat(core)!: Make
tracePropagationTargets matching case-insensitive (#23534)
- feat(core)!: Remove
enableMetrics option (#23321)
- feat(core)!: Remove
enableTruncation flag and all AI integrations truncation logic (#23045)
- feat(core)!: Remove
endTimestamp from SentrySpanArguments (#23269)
- feat(core)!: Remove
kind for spans, move to sentry.kind attribute (#22528)
- feat(core)!: Remove
queryParams in favor of urlQueryParams (#22711)
- feat(core)!: Remove
scope.clear() method (#23230)
- feat(core)!: Remove
sendDefaultPii in favor of dataCollection (#22918)
- feat(core)!: Remove
sentry.sdk_meta.gen_ai.input.messages.original_length attribute (#22516)
- feat(core)!: Remove
streamGenAiSpans flag (#22495)
- feat(core)!: Remove deprecated
_experiments.enableLogs option (#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
StreamedSpanJSON from spanToJSON (#23238)
- feat(core)!: Update all spans to use
url.full, url.fragment and url.query (#22547)
- feat(core)!: Use
rpc span op for tRPC spans (#22914)
- feat(server-utils,core)!: Use
router span op for backend router layers (#23088)
- fix(core)!: Remove
enableLogs option (#23319)
- ref(core)!: Make
attributes in sampling context required (#24153)
- ref(core)!: Align gen_ai cache token attributes with conventions (#22811)
- ref(core)!: Make
attributes required on ScopeData (#23277)
- ref(core)!: Migrate to SENTRY_SEGMENT_NAME_SOURCE (#23368)
- ref(core)!: Move
getComponentName to browser-utils (#23716)
- ref(core)!: Remove
getLocationHref export from core (#23717)
- ref(core)!: Remove
startIdleSpan from server exports (#23420)
- ref(core)!: Remove
supportsDOMError, supportsHistory, supportsReportingObserver exports (#23718)
- ref(core)!: Remove
supportsNativeFetch export (#23719)
- ref(core)!: Remove deprecated
addAutoIpAddressToUser export (#23174)
- ref(core)!: Remove deprecated
htmlTreeAsString from core (#23715)
- ref(core)!: Remove deprecated
patchExpressModule(options) signature (#23175)
- ref(core)!: Remove deprecated positional
spanOrigin argument from instrumentFetchRequest (#23177)
- ref(core)!: Remove experimental
enableMetrics / beforeSendMetric flags (#23276)
- ref(core)!: Remove orphaned deprecated Express patch APIs (#23827)
- ref(core)!: Rename
gen_ai.request.available_tools to gen_ai.tool.definitions (#22820)
- ref(core)!: Rename
gen_ai.system to gen_ai.provider.name (#22814)
- ref(core)!: Rename
gen_ai.tool.input to gen_ai.tool.call.arguments (#22821)
- ref(core)!: Rename
gen_ai.tool.output to gen_ai.tool.call.result (#22822)
- ref(core)!: Rename Vercel AI cache/reasoning token attributes (#22823)
- ref(core)!: Replace deprecated
code.* and fs_error span attributes (#23401)
- ref(core)!: Split browser/server-only exports out of the default entrypoint (#23762)
- ref(core)!: Stop setting deprecated
gen_ai.tool.type span attribute (#22824)
- ref(core)!: Unify
tracePropagation vs propagateTrace option 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
router span op for frontend routers (#23086)
- feat(ember)!: Update to v2 addon format (#23252)
- feat(ember)!: Use
function and ui.task span ops for route hooks and runloop (#22669)
- ref(ember)!: Change
'ui.ember.component.render' to ui.render (#23587)
@sentry/feedback
- fix(feedback)!: always reject sendFeedback with an Error (#20475)
@sentry/google-cloud-serverless
- feat(google-cloud-serverless)!: Use
function.gcp op for GCP functions (#23050)
- feat(google-cloud-serverless)!: Use
grpc span op for GCP gRPC calls (#22666)
- feat(google-cloud-serverless)!: Use
http.client span 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
function span 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
middleware span op for Next.js middleware (#22674)
- ref(nextjs)!: Migrate import hook to makeOrchestrionLoader (#22864)
- ref(nextjs)!: Move
withSentryConfig to @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 (
profilesSampleRate and profilesSampler) (#23216)
- feat(express)!: Remove
shouldHandleError from setupExpressErrorHandler (#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, preload entry points and preloadOpenTelemetry (#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.query and db span 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-core back into @sentry/node (#22418)
- ref(node)!: Consolidate httpIntegration options (#23443)
- ref(node)!: Remove
@opentelemetry/instrumentation dependency (#22843)
- ref(node)!: Remove deprecated
prismaInstrumentation option (#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
sourceMapsUploadOptions module option (#22875)
- feat(nuxt)!: Remove unstable_sentryBundlerPluginOptions (#23351)
@sentry/opentelemetry
- feat(opentelemetry): Remove
setupEventContextTrace (#23226)
- feat(opentelemetry): Remove unused exports (#22581)
- feat(opentelemetry)!: Drop
.prefetch suffix 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-binaries bin 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
router span 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
otlpIntegration to openTelemetryIntegration (#23938)
- feat(server-utils)!: Start Redis spans as
cache spans (#23933)
- fix(server-utils)!: Register channel integrations on versions with native channels (#23405)
- ref(server-utils)!: Replace deprecated
ai.* and gen_ai.prompt attributes (#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.name on Koa spans (#24420)
- ref(server-utils)!: Use
function.gcp op 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
router span op for frontend routers (#23086)
- feat(sveltekit)!: Enable orchestrion instrumentation on Cloudflare (#22967)
- feat(sveltekit)!: Remove deprecated
sourceMapsUploadOptions Vite plugin option (#22874)
- feat(sveltekit)!: Remove unstable_sentryVitePluginOptions (#23366)
- fix(sveltekit)!: Move
sentrySvelteKit off the runtime entry to @sentry/sveltekit/vite (#23247)
@sentry/tanstackstart-react
- chore(tanstackstart)!: Remove deprecated
@sentry/tanstackstart utility 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.route attribute to http.server spans with parameterized routes (#22534)
- feat: Add
url.full and url.path attributes to http.server spans (#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
TraceMethod span name and preserve description (#24239)
- feat(astro): Auto-wire orchestrion build-time instrumentation (#22830)
- feat(aws-serverless): Emit low cardinality
function.aws span 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
function span 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
CollectBehavior shorthand for dataCollection.httpHeaders (#24336)
- feat(core): Add
afterEnvelope and flushTraceSpans client hooks (#23136)
- feat(core): Add
filterUrlQuery util (#23060)
- feat(core): Add
instrumentStateGraph API (#22483)
- feat(core): Add
refs field to Scope for non-serialized references (#23236)
- feat(core): Add
safeCallback helper for isolating user-provided callbacks (#23760)
- feat(core): Add
url.full attribute 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.queues option (#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
ok in transaction mode (#22521)
- feat(core): Deprecate
beforeSendTransaction and ignoreTransactions and log warnings if used with streaming (#22908)
- feat(core): Deprecate
forceTransaction option in StartSpanOptions (#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.op attribute 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_error client reports for throwing user callbacks (#23903)
- feat(core): Streamline tracing channel bindings (#23218)
- feat(core): Support filtering
stackFrameVariables by variable name (#22494)
- feat(core): Support stable MCP SDK v2 (#22883)
- feat(core): Use
getActiveSpan instead of _getSpanFromScope for logs & metrics (#23223)
- feat(deno): Add
maxRequestBodySize to 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-profiler to 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.gcp span names (#24060)
- feat(hono): Support
.query() handlers (#23283)
- feat(nestjs): Add
code.function.name attribute to function spans 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
function span names (#24319)
- feat(nextjs): Emit low cardinality
function span names for server components (#24333)
- feat(nextjs): Record cache spans for
use cache functions (#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.key on dataloader spans and capture redis delete operations as cache.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
ignoreStatusCodes in 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 dev on 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-router entry with automatic React Router hooks (#24014)
- feat(remix): Auto-wire orchestrion build-time instrumentation (#23988)
- feat(remix): Emit low cardinality
function span names (#24323)
- feat(server-runtime-injection): Split runtime orchestrion injection into a dedicated package (#23685)
- feat(server-utils): Add
db span op for generic-pool acquire spans (#23213)
- feat(server-utils): Add
otlpIntegration to connect Sentry to an existing OpenTelemetry setup (#23099)
- feat(server-utils): Add cache span ops for DataLoader
prime, clear and clearAll (#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.gcp span 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
FirebaseInstrumentation to orchestrion (#22141)
- feat(server-utils): Warn when bundler config has instrumented module in external (#22379)
- feat(solid-start): Add
code.function.name attribute to solid-start function spans (#24316)
- feat(solid,solidstart): Support
@solidjs/router v1 (#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
function spans (#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.userInfo for trackClientIp (#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
virtualError once the request completed (#24277)
- fix(browser): Respect
dataCollection.httpHeaders.request in httpContextIntegration (#23025)
- fix(browser): Set
user_agent.original on all spans for consistent filtering (#24216)
- fix(browser): Source FCP from web-vitals
onFCP and rebase FP against activationStart (#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-upload is set (#23754)
- fix(cloudflare,deno,node): Align types of vercelai (#22343)
- fix(cloudflare): Filter
CREATE INDEX spans on cf_-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.queue op on queue consumer spans (#22664)
- fix(cloudflare): Set agent conversation id on the
onRequest path (#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.urlQueryParams to url.full and url.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
functionToStringIntegration causing 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
beforeSendSpan callback 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.full on request data and navigate errors (#23143)
- fix(core): Guard
loadModule default 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
Headers instances (#23234)
- fix(core): resolve MCP capture policy per operation (#23437)
- fix(core): Sample errors after
beforeSend while 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
supabaseIntegration from 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.origin on logs from SentryEffectLogger ([#22762](https://github.com/getsentry/sent
Changelog truncated for issue body.
Requested by: @chargome
Merge target: 11.0.0-rc
Quick links:
Assign the accepted label to this issue to approve the release.
Targets
Checked targets will be skipped (either already published or user-requested skip). Uncheck to retry a target.
📋 Changelog
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
--require(#22513)http.*span attributes (#23574)net.span attributes (#23301)skipOpenTelemetrySetupwithenableOpenTelemetrySetup(#23199)http.targetspan attribute (#23575)>=20.19.0as minimum supported version (#22558)handlerspan op for terminal request handlers (#22871)middlewarespan op for web-server middleware (#22852)functionop for framework functions (#23047)honoIntegration(#22480)AI integrations
@sentry/server-utils(#22954)@sentry/server-utils(#22959)@sentry/server-utils(#22962)@sentry/server-utils(#22953)@sentry/server-utils(#22964)@sentry/server-utils(#22960)@sentry/angular
routerspan op for frontend routers (#23086)ui.mountandfunctionspan ops for tracing decorators (#22667)@sentry/astro
sourceMapsUploadOptionsbuild option (#23630)@sentry/aws-serverless
nodejs18.xfrom the Lambda layer runtimes (#23155)disableAwsContextPropagationoption (#23170)faas.invocation_idandcloud.resource_id(#24384)startTraceoption andtryPatchHandler(#23219)function.awsspan op for Lambda invocations (#22677)queueSpan OP for AWS SQS & SNS messaging (#23757)@sentry/browser
profilesSampleRate(#23220)performance.{mark,measure}spans into newuserTimingSpansIntegration(#22554)interactionsIntegration(#23295)bfcacheIntegrationtobfcacheMetricsIntegration(#23776)unhandledinstead ofcrashedfor unhandled errors (#22475)page(#21245)browser.paintspan op for paint entries (#22673)trackFetchStreamPerformanceflag (#23172)navigationStartfallback andpagehidelisteners (#21293)beforeSpanEndcallback in favor ofbeforeIdleSpanEndhook (#22818)@sentry/bundler-plugins
@sentry/cloudflare
functionspan op for cron, email and workflow steps (#22703)instrumentD1WithSentryexport (#23153)SentryTracerProviderfor OpenTelemetry interop (#23300)@sentry/core
spanfromScopeData(#23225)attachStacktraceto true (#22572)genAIdefaults to collect it by default (#22706)dataCollection.httpBodies(#22834)beforeSendSpancompatible with streamed spans by default (#22643)tracePropagationTargetsmatching case-insensitive (#23534)enableMetricsoption (#23321)enableTruncationflag and all AI integrations truncation logic (#23045)endTimestampfromSentrySpanArguments(#23269)kindfor spans, move tosentry.kindattribute (#22528)queryParamsin favor ofurlQueryParams(#22711)scope.clear()method (#23230)sendDefaultPiiin favor ofdataCollection(#22918)sentry.sdk_meta.gen_ai.input.messages.original_lengthattribute (#22516)streamGenAiSpansflag (#22495)_experiments.enableLogsoption (#22808)inboundFiltersIntegration(#23008)instrumentLangGraph(#22485)StreamedSpanJSONfromspanToJSON(#23238)url.full,url.fragmentandurl.query(#22547)rpcspan op for tRPC spans (#22914)routerspan op for backend router layers (#23088)enableLogsoption (#23319)attributesin sampling context required (#24153)attributesrequired onScopeData(#23277)getComponentNameto browser-utils (#23716)getLocationHrefexport from core (#23717)startIdleSpanfrom server exports (#23420)supportsDOMError,supportsHistory,supportsReportingObserverexports (#23718)supportsNativeFetchexport (#23719)addAutoIpAddressToUserexport (#23174)htmlTreeAsStringfrom core (#23715)patchExpressModule(options)signature (#23175)spanOriginargument frominstrumentFetchRequest(#23177)enableMetrics/beforeSendMetricflags (#23276)gen_ai.request.available_toolstogen_ai.tool.definitions(#22820)gen_ai.systemtogen_ai.provider.name(#22814)gen_ai.tool.inputtogen_ai.tool.call.arguments(#22821)gen_ai.tool.outputtogen_ai.tool.call.result(#22822)code.*andfs_errorspan attributes (#23401)gen_ai.tool.typespan attribute (#22824)tracePropagationvspropagateTraceoption names (#23649)@sentry/deno
@sentry/ember
routerspan op for frontend routers (#23086)functionandui.taskspan ops for route hooks and runloop (#22669)'ui.ember.component.render'toui.render(#23587)@sentry/feedback
@sentry/google-cloud-serverless
function.gcpop for GCP functions (#23050)grpcspan op for GCP gRPC calls (#22666)http.clientspan op for GCP HTTP requests (#22660)@sentry/nestjs
functionspan op for setup & lifecycle handlers (#22897)@sentry/nextjs
vercel-prefix from default environment and deploys (#24197)middlewarespan op for Next.js middleware (#22674)withSentryConfigto@sentry/nextjs/config(#23628)@sentry/nitro
@sentry/node
profilesSampleRateandprofilesSampler) (#23216)shouldHandleErrorfromsetupExpressErrorHandler(#23732)<3.21.0(#22752)init,preloadentry points andpreloadOpenTelemetry(#23074)db.queryanddbspan ops for Redis (#22690)@sentry/node-coreback into@sentry/node(#22418)@opentelemetry/instrumentationdependency (#22843)prismaInstrumentationoption (#22898)setupFastifyErrorHandler(#23460)@sentry/nuxt
sourceMapsUploadOptionsmodule option (#22875)@sentry/opentelemetry
setupEventContextTrace(#23226).prefetchsuffix from inferred HTTP span ops (#23094)faas.trigger(#23053)SentrySpanProcessor&SentrySampler(#22557)contexts.otel.resource(#23013)OpenTelemetrySpanContext(#23285)setOpenTelemetryContextAsyncContextStrategy()(#22586)@sentry/profiling-node
prune-profiler-binariesbin script (#23104)@sentry/react
ui.*ops for component lifecycles (#23085)url.path.params.<key>attribute (#23506)@sentry/react-router
@sentry/react-router/vite(#23509)@sentry/remix
@sentry/remix/vite(#23989)@sentry/server-utils
routerspan op for backend router layers (#23088)queue.*span ops for messaging spans (#23042)otlpIntegrationtoopenTelemetryIntegration(#23938)cachespans (#23933)ai.*andgen_ai.promptattributes (#23410)db.*span attributes (#23408)net.*span attributes on db and messaging spans (#23422)koa.nameon Koa spans (#24420)function.gcpop for firebase function spans (#23022)@sentry/solidstart
@sentry/svelte
ui.*ops for component lifecycles (#23085)@sentry/sveltekit
routerspan op for frontend routers (#23086)sourceMapsUploadOptionsVite plugin option (#22874)sentrySvelteKitoff the runtime entry to@sentry/sveltekit/vite(#23247)@sentry/tanstackstart-react
@sentry/tanstackstartutility package (#22427)@sentry/types
@sentry/types(#23073)@sentry/vercel-edge
@sentry/vue
ui.*ops for component lifecycles (#23085)Other Changes
http.routeattribute tohttp.serverspans with parameterized routes (#22534)url.fullandurl.pathattributes tohttp.serverspans (#22496)TraceMethodspan name and preserve description (#24239)function.awsspan names (#24072)bfcacheIntegration(#22397)bunHttpServerIntegration(#22870)maxRequestBodySize(#24233)@sentry/bundler-plugins(#22392)functionspan names and preserve span descriptions (#24246)CollectBehaviorshorthand fordataCollection.httpHeaders(#24336)afterEnvelopeandflushTraceSpansclient hooks (#23136)filterUrlQueryutil (#23060)instrumentStateGraphAPI (#22483)refsfield toScopefor non-serialized references (#23236)safeCallbackhelper for isolating user-provided callbacks (#23760)url.fullattribute to core fetch instrumentation (#22415)dataCollection.queuesoption (#24087)getActiveSpan(#23222)okin transaction mode (#22521)beforeSendTransactionandignoreTransactionsand log warnings if used with streaming (#22908)forceTransactionoption inStartSpanOptions(#23821)cache.*span names (#23830)sentry.opattribute to samplers (#23354)callback_errorclient reports for throwing user callbacks (#23903)stackFrameVariablesby variable name (#22494)getActiveSpaninstead of_getSpanFromScopefor logs & metrics (#23223)maxRequestBodySizeto capture HTTP bodies (#22912)@sentry/node-cpu-profilerto 2.4.3 (#22983)function.gcpspan names (#24060).query()handlers (#23283)code.function.nameattribute tofunctionspans for description inference (#24305)functionspan names (#24319)functionspan names for server components (#24333)use cachefunctions (#24302)cache.keyon dataloader spans and capture redis delete operations ascache.remove(#22389)eveConversationHook()to link eve sessions as Sentry conversations (#24247)getInstrumentedModuleNames()(#24254)expressIntegration(#23464)ignoreStatusCodesin http integrations (#23973)nuxt devon Nitro v3 (Nuxt 5) (#23644)@sentry/react/react-routerentry with automatic React Router hooks (#24014)functionspan names (#24323)dbspan op for generic-pool acquire spans (#23213)otlpIntegrationto connect Sentry to an existing OpenTelemetry setup (#23099)prime,clearandclearAll(#23212)function.gcpspan names for firebase functions (#24069)setAsyncLocalStorageAsyncContextStrategy(#22889)FirebaseInstrumentationto orchestrion (#22141)code.function.nameattribute to solid-startfunctionspans (#24316)@solidjs/routerv1 (#23162)functionspans (#24341)dataCollection.userInfofortrackClientIp(#24091)timeOrigin(#23502)virtualErroronce the request completed (#24277)dataCollection.httpHeaders.requestinhttpContextIntegration(#23025)user_agent.originalon all spans for consistent filtering (#24216)onFCPand rebase FP againstactivationStart(#23032)disable-uploadis set (#23754)CREATE INDEXspans oncf_-prefixed tables (#22650)faas.queueop on queue consumer spans (#22664)onRequestpath (#22846)dataCollection.urlQueryParamstourl.fullandurl.query(#23061)functionToStringIntegrationcausing infinite recursions (#22515)baggage: "undefined"when DSC is missing (#22424)beforeSendSpancallback throws (#22836)url.fullon request data and navigate errors (#23143)loadModuledefault parameter against ESM scope (#24124)DEFAULT_IGNORE_ERRORS(#23744)Headersinstances (#23234)beforeSendwhile preserving session updates (#22671)supabaseIntegrationfrom ending spans twice (#24126)cf_spans stay filtered (#22649)function(#24263)sentry.originon logs fromSentryEffectLogger([#22762](https://github.com/getsentry/sentChangelog truncated for issue body.