Changelog
Unreleased
- "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott
11.0.0
Version 11.0.0 marks a major release of the Sentry JavaScript SDKs containing breaking changes.
The goal of this release is to be better compatible with OpenTelemetry, make our integrations work across Node.js, Cloudflare, Bun and Deno through run-time and build-time instrumentation, and make span streaming and more permissive data collection the default.
How To Upgrade
Please carefully read through the migration guide in the Sentry docs on how to upgrade from version 10 to version 11. Make sure to select your specific platform/framework in the top left corner: https://docs.sentry.io/platforms/javascript/migration/v10-to-v11/
A comprehensive migration guide outlining all changes can be found within the Sentry JavaScript SDK Repository: https://github.com/getsentry/sentry-javascript/blob/develop/MIGRATION.md
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
browser.navigation.type exactly as web-vitals does (#24479)
- 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 the web vital report event attribute (#24511)
- 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)
- ref(bundler-plugins)!: Require webpack 5.1 and remove the
webpack5 entry point (#24455)
@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 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 middleware bypass for tunnel route requests (#24589)
- 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)