npm / @sentry/vue
@sentry/vue
What changed in @sentry/vue 5 to 11, from its official release notes, upgrade guides and advisories. Also covers @sentry/browser, @sentry/core, @sentry/nextjs, @sentry/node, @sentry/node-native, @sentry/profiling-node, @sentry/react, @sentry/tanstackstart-react, @sentry/types, @sentry/vite-plugin. Sources checked 2026-10-23.
257 breaking6 security15 deprecations95 new APIs and options2 performance116 behavior and defaults8 tooling111 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@sentry/vue 11228 changes
Breaking changes 139
Bundler plugins now require Node.js 20.19.0 or higher.
Vercel deploy environments now use VERCEL_TARGET_ENV values; configure release.deploy.env to retain old names.
The webpack plugin now requires webpack 5.1 or higher.
Next.js forbidden() errors are no longer captured as errors.
Sentry.close() now unbinds the closed client, allowing getClient() and isInitialized() to reflect an uninitialized state before later init().
AI integrations are no longer available in the browser SDK; they remain available in server-side SDKs.
attachStacktrace now defaults to true.
Message events and non-Error values passed to captureException now receive a synthetic stack trace pointing to the call site. Set attachStacktrace to false to restore the previous behavior.
The callback moved from _experiments to the top-level Sentry.init options.
Now runs as each span finishes and receives StreamedSpanJSON with renamed fields; wrap it with withStaticSpan in transaction mode.
No longer does anything in stream mode because transaction events are no longer produced; move span changes to beforeSendSpan.
Sessions affected by an uncaught error are recorded as unhandled instead of crashed, which can shift crash-free session rates.
Collected INP is always sent as a Web Vital span, with its value in this attribute instead of as a span measurement.
The lifecycle option defaults to 'page': a session is created on page load and is not renewed on navigation.
It no longer captures performance.mark() and performance.measure() spans by default and no longer accepts an _experiments object. Interaction timeout options belong on interactionsIntegration.
Deprecated build-time configuration options were removed and can no longer be used.
Replaces the legacy
http.client_ipattribute.AWS Lambda spans use this attribute instead of
faas.idfor the invoked function ARN.Replaces
code.filepathonui.long_animation_framespans.Span-operation details such as framework, library, method, or lifecycle phase are preserved in attributes including this one.
Ember's
initspan is now namedComponent mount; update filters that matched the previous name.The breadcrumbsIntegration console option was removed. Console breadcrumbs now come from the default consoleIntegration.
Data collection is enabled by default.
dataCollection replaces sendDefaultPii.
Incoming HTTP body capture is controlled by dataCollection.httpBodies.
Data collection is enabled by default, and request data collection is aligned with v11 defaults.
Replaces the legacy
db.mongodb.collectionattribute.Redis and ioredis instrumentations no longer emit this attribute; connections are described by
server.addressandserver.portinstead.Replaces the legacy
db.nameattribute.Replaces the legacy
db.operationspan attribute.Replaces
db.statement; SQL query spans also include a sanitized-statement summary indb.query.summary.Replaces
db.systemand carries database-system identity; Mongoose spans reportmongodbrather thanmongoose.The default environment and deploy names no longer use the vercel- prefix.
The option was removed; channel-based instrumentation means the SDK can no longer detect when a framework was imported before Sentry.init().
Events created from a DOMException no longer carry this tag. Switch searches and alert rules using it to error.type.
The enableLogs option is removed.
The enableMetrics option is removed.
Replace skipOpenTelemetrySetup with enableOpenTelemetrySetup for OpenTelemetry setup control.
The enableTruncation flag and AI integration truncation logic are removed.
endTimestamp is removed from SentrySpanArguments.
On
filespans, replacesfs_errorand holds the syscall error code rather than the full message.The integration reports its name as EventFilters instead of InboundFilters. Update references that look it up by name.
The deprecated _experiments.enableLogs option is removed.
AWS Lambda spans use this attribute instead of
faas.executionfor the request ID; LambdaInvokespans fromawsIntegrationalso use it.Span-operation details are preserved in attributes including this one.
Next.js framework-function spans use the consolidated
functionoperation instead offunction.nextjs.Replaces
ai.pipeline.nameandlangchain.chain.name; it is omitted for unnamed chains instead of being set tounknown_chain.The Anthropic integration no longer sets this attribute; legacy Completions prompts are reported as user messages on
gen_ai.input.messages.gen_ai.system is renamed to gen_ai.provider.name.
Replaces the legacy
ai.streamingattribute.gen_ai.tool.input is renamed to gen_ai.tool.call.arguments.
gen_ai.tool.output is renamed to gen_ai.tool.call.result.
gen_ai.request.available_tools is renamed to gen_ai.tool.definitions.
The deprecated gen_ai.tool.type span attribute is no longer set.
No longer set on tool spans.
Replaces the legacy cache-creation token usage attributes.
Replaces the legacy cache-read and cached-input token usage attributes.
Replaces the legacy reasoning output-token attribute.
genAI defaults now collect AI data by default.
Deprecated http.* span attributes are renamed.
Replaces the legacy request content-length attribute and is always reported from the server-side
content-lengthheader.Cookie attributes are no longer split by cookie name; this attribute holds ordered
name=valueentries, with sensitive values filtered.Set-Cookie attributes are no longer split by cookie name; this attribute holds ordered
name=valueentries, with sensitive values filtered and attributes omitted.HTTP header attributes preserve hyphens in header names and report values as string arrays, with one entry per value.
Replaces
http.methodand is now the request-method key inSanitizedRequestDatafor HTTP breadcrumb and client-span data.Replaces the legacy
url.same_originattribute.Replaces the legacy
http.decoded_response_content_lengthattribute.Replaces the legacy response content-length attribute and is always reported from the server-side
content-lengthheader.Replaces the legacy
http.response_transfer_sizeattribute.Replaces the legacy
http.status_codeattribute.Replaces the legacy
http.status_textattribute.The deprecated http.target span attribute is replaced.
Use this option to drop spans in place of ignoreTransactions; filtering a service span also drops its child spans.
No longer does anything in stream mode; use ignoreSpans to drop spans.
The deprecated inboundFiltersIntegration is removed.
The export was removed; the integration now reports itself as EventFilters.
The positional spanOrigin argument was removed. Pass an options object as the last argument instead.
The deprecated instrumentLangGraph API is removed.
Span kind is removed and moved to the sentry.kind attribute.
Koa router and middleware spans no longer set this attribute; use
http.routefor the route andcode.function.namefor the middleware handler.Locale routes such as
[lng]are parameterized, and narrower routes take precedence over catch-alls.AMQP instrumentation no longer emits this attribute.
Web-server middleware spans use the consolidated
middlewareoperation instead of framework-specific operations, including Next.jshttp.server.middleware.Deprecated net. span attributes are renamed.
Replaces the legacy
net.host.ipattribute.Replaces the legacy
net.host.portattribute.Replaces the legacy
net.peer.ipattribute.Replaces the legacy
net.peer.portattribute.Replaces
http.flavor; HTTP instrumentation reports the protocol version here.Replaces
net.transport; transport values change fromip_tcpandip_udptotcpandudp.Support for Next.js 13 was removed, requiring applications to use a newer Next.js version.
The minimum supported Node.js version is now 20.19.0.
The SDK no longer takes over your OpenTelemetry setup, improving interoperability with existing OpenTelemetry configurations.
Tracing is removed from pages router API routes.
SDK initialization via --require is no longer supported.
Vue Router uses this attribute instead of
navigation.route.id, with the same matched route name.tRPC spans now use the rpc span operation.
Safari 14 is no longer supported; the supported Safari and iOS Safari versions start at 15.
attributes are now required in the sampling context.
Scope tags and extra are no longer applied to streamed spans, including the service span; use attributes for data searchable on spans, logs, and metrics.
The scope.clear() method is removed.
attributes are now required on ScopeData.
The re-export was removed; import attribute constants directly from
@sentry/core.Replaced by dataCollection; remove sendDefaultPii: true because the v11 default matches that behavior.
Browser-only exports moved from @sentry/core to this subpath; platform SDKs continue to re-export as before.
Server-only exports moved from @sentry/core to this subpath; platform SDKs continue to re-export as before.
The package was merged back into @sentry/node. Import its contents from @sentry/node.
The package was removed; use @sentry/tanstackstart-react.
The package is no longer published. Import types from @sentry/core.
The Cloudflare-specific attribute is no longer set.
Metrics moved out of the base CDN bundle and are available only in *.logs.metrics bundles. On other bundles, the API is a no-op that warns in debug builds.
AWS Lambda spans set this attribute to
componentin both trace lifecycles.Replaces
sentry.sourceand is set only on the root span.The API now rejects with an Error in all failure cases; read the unchanged, customizable message from error.message.
Replaces legacy host and peer name attributes, including
http.host,net.host.name, andnet.peer.name.Database spans use
server.portinstead of the legacynet.peer.portattribute.Events with a stack trace count as errors, so captureMessage marks the current session as errored. Crash-free session rate is not affected.
Use attributes instead of scope tags for data that should be searchable on spans, logs, and metrics; attributes accept strings, numbers, booleans, and arrays of those.
In stream mode, names follow Sentry conventions and avoid URLs, route parameters, and other client-supplied values; update name-based filters to use attributes such as url.full or http.route.
spanToJSON now returns StreamedSpanJSON.
This helper was removed; replace calls with spanToJSON.
The streamGenAiSpans flag is removed.
tracePropagation and propagateTrace option names are unified.
Set to 'static' to retain the previous transaction-based tracing model; transaction mode is a temporary backwards-compatibility measure.
String and regular expression matching is now case-insensitive, and g and y flags are ignored because they made matching stateful.
Tunnel route requests no longer bypass middleware.
TypeScript 3.8 is no longer supported.
The minimum required TypeScript version is 5.0.4, and the SDK no longer ships down-leveled types.
The unstable_sentryWebpackPluginOptions configuration was removed.
Replaces the legacy
http.fragmentattribute.All spans now use url.full, url.fragment and url.query.
TanStack Router reports path parameters here instead of under
url.path.params.<key>.Replaces
http.queryand is used withurl.pathin place ofhttp.target.Replaces the legacy
http.schemeattribute.urlQueryParams replaces queryParams.
Replaces the legacy
http.user_agentattribute.Use this integration instead of the removed addVercelAiProcessors helper.
Vue's
Application Renderspan is now namedRoot; update filters that matched the previous name.withSentryConfig moved to the @sentry/nextjs/config subpath.
Security 1
Query parameters are filtered in request error context to avoid sending sensitive values to Sentry.
Deprecations 4
The webpack.treeshake option is deprecated because bundleSizeOptimizations takes precedence when both are set.
This option is deprecated. To disable INP, use browserTracingIntegration({ webVitals: { ignore: ["inp"] } }).
Nested reactComponentAnnotation options now emit deprecation notices.
The wrapper is now a no-op because streamed payloads are the default, and it is deprecated.
New APIs and options 15
OpenAI decisions.create calls now produce gen_ai.decide spans for tracing.
Adds a Cloudflare Workers entry point exporting withSentry for Next.js Worker handlers, providing the same spans as on Node.js.
Next.js route provider registration enables route provider handling for Next.js applications.
Runtimes without auto-instrumentation can manually instrument TypeSafe clients.
A default integration now automatically wraps MCP server instances, so manual wrapping is no longer required.
showReportDialog now accepts an onError callback.
A default integration creates evaluation spans for TypeSafe calls through the TypeSafe SDK.
BrowserOptions now supports the TransportOptions generic.
SQL query spans now include the summary of the sanitized statement in both trace lifecycles.
GraphQL processing type is retained as an attribute when span names no longer include the processing phase.
AMQP instrumentation reports the message conversation ID using this attribute.
AMQP instrumentation reports the messaging operation name using this attribute.
AMQP instrumentation reports the RabbitMQ destination routing key using this attribute.
In Node.js, Bun, Vercel Edge, and Cloudflare, set this environment variable to static to retain transaction mode.
Restore vitals are collected by default in stream mode when instrumentBfcacheRestore is enabled. Set this option to false to disable collection.
Performance 1
Webpack and Turbopack use faster component annotation, improving bundler performance.
Behavior and default changes 51
The LinkedErrors integration now supports SuppressedError instances.
The top-level option now removes unused SDK code in webpack and Turbopack builds.
use cache fill spans now include the code.file.path attribute, providing the source file path for these spans.
Repeated Sentry.init() calls now warn; @sentry/nextjs returns the active client instead of undefined.
The server instrumentation now supports amqplib v2.
Vercel AI evaluation calls now create gen_ai.evaluate spans containing evaluation inputs and outputs.
Prisma 8 ORM calls now produce nested database query spans without requiring code changes.
The Turbopack orchestrion loader now runs only for instrumented packages.
AWS Lambda spans fall back to
Serverless function executionwhen neither invocation context nor this environment variable provides a name.beforeSendSpan is compatible with streamed spans by default.
Event Timing and INP spans keep the DOM path on this attribute in both trace lifecycles; match it instead of filtering by DOM path elsewhere.
BrowserTracing now automatically adds the WebVitals integration. Configure Web Vitals through webVitals options or register webVitalsIntegration explicitly.
Next.js build options are aligned with BuildTimeOptionsBase.
Cache spans now carry this attribute with the cache operation (get, put, or remove); cache keys are no longer part of span names.
Default environment and deploy names no longer include the vercel- prefix.
GCP and Firebase function names come from
FUNCTION_TARGETorK_SERVICE; the function name remains onfaas.name.Next.js function spans emit low-cardinality names.
Framework functions now use the function span operation.
GCP and Firebase trigger details are reported on
gcp.function.context.*.The legacy Anthropic Completions API prompt is reported as a user message on this attribute.
Terminal request handlers now use the handler span operation.
Click idle spans copy this attribute from the route span.
Runs when a span starts, before its final name may be available; match span attributes instead of relying on names.
BrowserTracing now starts a navigation span after a back/forward-cache restore by default. Set this option to false to disable it.
Locale routes using [lng] are parameterized, and narrower routes are preferred over catch-alls.
Long task and long animation frame span names remain unchanged.
AMQP instrumentation reports the destination name using this attribute.
AMQP instrumentation reports the message ID using this attribute.
Next.js middleware spans now use the middleware span operation.
Web-server middleware now uses the middleware span operation.
Build-time instrumentation is automatically wired for Next.js projects.
Next.js prerender control flow errors are no longer reported to Sentry.
reactComponentAnnotation behavior is unified across webpack and Turbopack.
Its include options remain integration-level overrides: explicit false excludes a category and explicit true attaches it, subject to allow or deny filtering.
Backend router layers now use the router span operation.
Click idle spans copy this route attribute from the route span.
Component spans retain their original names on this attribute when their span names change.
Span-operation details that previously lived in the op are preserved in attributes including this one.
Function spans for server components emit low-cardinality names.
The silent option now also suppresses the SDK's own build logs.
Span streaming is enabled by default.
Static route span names are now treated as low-cardinality names.
tracePropagationTargets matching is now case-insensitive.
Request data is now available to tracesSampler for edge middleware root spans.
Runs when a span starts, before its final name may be available; match span attributes instead of relying on names.
Unsupported Turbopack warnings are now printed only once.
Click idle spans copy this attribute from the route span.
Click idle spans copy this attribute from the route span; use it for route-path matching in sampling filters.
Click idle spans copy this attribute from the route span.
Cache spans are recorded for use cache functions.
Soft-navigation vitals are enabled by default in stream mode on browsers supporting the Soft Navigations API. Set this option to false to keep one set of vitals for the page lifetime.
Tooling 1
Bundler plugins now use the sentry CLI SDK instead of @sentry/cli.
Fixes and other changes 16
Corrects telemetry timestamps after device sleep by detecting performance clock drift and recalculating span end times.
Pages Router error request URLs now include the configured basePath.
Requests using @sentry/cloudflare no longer initialize Sentry inside the request.
Next.js unauthorized() errors are no longer captured as errors.
Absolute router navigation URLs are no longer incorrectly prefixed with basePath.
The server instrumentation now supports tedious v20.
Turbopack loaders no longer load the Sentry CLI.
Server chunks no longer embed absolute filesystem paths.
CLS DOM paths remain on this attribute.
LCP DOM paths remain on this attribute.
Adds an import.meta.url shim to address an Orchestrion bundling regression in Next.js.
Turbopack development-server stack frames now receive correct in_app attribution.
Tunnel route requests are no longer bypassed by middleware.
Back and forward navigation types are preserved during span streaming.
SourceMappingURL stripping no longer truncates minified chunks.
Event Timing and INP spans keep the annotated component on this attribute in both trace lifecycles.
@sentry/vue 10256 changes
Breaking changes 27
Errors propagated to application code are no longer reported as unhandled before application error handling runs; uncaught errors remain captured globally.
Removes the optional vite peer dependency from server-utils.
dataCollection.userInfo now defaults to true when dataCollection is provided, collecting auto-populated user fields by default.
Request data is migrated to dataCollection, changing how request data collection is configured.
Log-event inference of user data is now gated by sendDefaultPii instead of being enabled by default.
The provider-specific response timestamp attribute was removed without a replacement.
The flags context is now attached only to error events.
The provider-specific attribute was removed; use gen_ai.response.id instead.
The provider-specific attribute was removed; use gen_ai.response.model instead.
The provider-specific response timestamp attribute was removed without a replacement.
The provider-specific attribute was removed; use gen_ai.usage.output_tokens instead.
The provider-specific attribute was removed; use gen_ai.usage.input_tokens instead.
Pino version 9.10 or newer is required to continue receiving Pino logs.
Tracing is removed from the Next.js generation function template.
Always redacts sensitive header content, including when sendDefaultPii is enabled.
The default value of maxValueLength: 250 was removed.
BaseClient was removed; use Client as a direct replacement.
The experimental beforeSendLog option is removed.
The experimental enableLogs option is removed.
The option was removed because its behavior is now the default.
The option was removed; use the top-level beforeSendLog option instead.
The SDK no longer reports the First Input Delay web vital; remove event-processing logic and alerts that depend on FID or switch them to INP.
hasTracingEnabled was removed; use hasSpansEnabled as a direct replacement.
The internal logger export in @sentry/core was removed; use debug instead. The Sentry Logging logger export is unaffected.
The Logger type export in @sentry/core was removed; use SentryDebugLogger instead.
The deprecated logger is removed.
OpenTelemetry dependencies and instrumentations were upgraded, changing the Node.js compatibility range; use SDK v9 or @sentry/node-core if you cannot run OpenTelemetry v2.
Security 5
Aligned tunnel request matching in middleware with the tunnel rewrite behavior.
Lone surrogates are sanitized in log bodies and attributes before processing or transmission.
Data URLs in http.client spans are sanitized.
Allows sensitive routes to be excluded from injection into the client bundle.
Sentry's sensitive headers are leaked when
sendDefaultPiiis set totrue
Deprecations 8
Importing withSentryConfig from the existing entry point still works but logs a warning once, encouraging migration to the new path.
The scope.clear() method is deprecated.
sendDefaultPii is deprecated in favor of dataCollection and will be removed in v11.
The streamed fetch performance option is deprecated and replaced by fetchStreamPerformanceIntegration.
The Next.js integration now prints a Turbopack note when deprecated webpack options are used.
Webpack top-level options are deprecated in the Next.js integration; developers should avoid configuring Sentry through these options.
Deprecates transaction-based profiling through profilesSampleRate in favor of UI profiling sessions.
Metric options under _experiments are deprecated but continue working until the next major SDK version.
New APIs and options 70
Accepts a CollectBehavior shorthand for configuring HTTP header data collection.
Adds a new entry point exporting withSentryConfig, allowing next.config imports to remain compatible with the v11 path.
HTTP server spans now include parameterized routes through the http.route attribute.
HTTP server spans now include the complete request URL.
HTTP server spans now include the request URL path.
A new instrumentStateGraph API is available for instrumenting state graphs.
Stack frame variables can now be filtered by variable name.
@sentry/nextjs adds an opt-in for orchestrion instrumentation.
Set this Sentry.init option to opt out of the minimal provider and use OpenTelemetry's full BasicTracerProvider.
A new method lets developers extend integrations.
The async context strategy exposes whether tracing is suppressed.
Resource spans now include the url.full attribute for fuller URL details.
Adds functionality for recording database query summaries.
Adds a top-level API for setting Sentry attributes.
Adds a top-level API for setting multiple Sentry attributes.
Adds an API to bind a Sentry scope to an event emitter.
The dataCollection option lets you control each category of collected data.
Adds a client option for centrally controlling what data SDK features collect and send to Sentry.
Adds an integration for measuring time-to-first-byte and streaming duration of streamed fetch responses.
Adds a top-level applicationKey option to Next.js configuration.
Adds an option to send gen_ai spans separately when transaction payload size limits would otherwise drop them.
A client lifecycle hook now lets applications react when a replay session ends.
A client lifecycle hook now lets applications react when a replay session starts.
A tracing utility was added to propagate context across operations.
AI integrations can control whether large AI inputs and outputs are truncated.
Exposes rewriteSources as a top-level configuration option.
Adds an integration that captures the DOM structure when an error occurs for debugging.
Adds instrumentation for LangChain embeddings, creating gen_ai.embeddings spans; use this API in runtimes without automatic instrumentation.
The MCP integration now supports registerPrompt.
The MCP integration now supports registerResource.
The MCP integration now supports registerTool.
Adds instrumentation for Vercel queues in Next.js applications.
Adds experimental Turbopack React component name annotation for Next.js 16+, enabling component names in Replays, breadcrumbs, and performance monitoring.
Adds an experimental application key for enabling third-party error filtering in Turbopack builds.
A top-level option now controls which source map files are deleted after upload.
Enables automatic creation of Sentry cron monitors for Vercel Cron Jobs.
Adds an API to set a conversation ID that is automatically applied to spans, linking traces from the same multi-turn AI conversation.
Database spans support the db.system.name attribute.
Prisma v7 is supported by the Sentry integration.
Client reports can now identify ignored events with the ignored drop reason.
Enables additional context in fetch error messages to help with debugging.
OpenAI and LangChain instrumentation now adds the gen_ai.conversation.id attribute.
Tracing now adds gen_ai.request.messages.original_length attributes.
thirdPartyErrorFilterIntegration now supports ignoring Sentry internal frames during third-party error filtering.
WASM stack frames can receive an application key for first-party detection by thirdPartyErrorFilterIntegration.
Replay can attach raw request bodies from Request objects passed as the first fetch argument.
SDK scope attributes are applied to logs while their respective scopes are active.
Webpack tree-shaking flags can now be configured for the Next.js SDK.
Exports parameter types for captureException and captureMessage for use by TypeScript consumers.
Postgres.js instrumentation now supports ESM usage.
Adds the propagateTraceparent option for Node integrations.
Adds tracing support for AzureOpenAI.
Adds gibibyte and pebibyte values to the InformationUnit type.
Adds the manual UI profiling lifecycle mode, which is now the default and enables explicit profile control.
Introduces profileSessionSampleRate as the replacement for deprecated transaction-based profiling.
Adds APIs for working with scope attributes.
Adds an API to manually start UI profiling.
Adds support for universal random tunnel paths in Next.js.
Adds support for instrumenting LangGraph StateGraph operations in Node.
The Node instrumentation supports OpenAI SDK v6 integrations.
Adds beforeSendMetric as a top-level option for metric processing.
Adds enableMetrics as a top-level option for controlling metric sending.
Added automatic instrumentation for Firebase v2 Cloud Functions when tracing is enabled, providing performance tracking and error monitoring.
Added LangChain instrumentation support for Cloudflare and Vercel Edge environments.
Proxy files can now use the Node runtime, expanding runtime choices for Next.js proxy implementations.
Added LangChain AI instrumentation configurable through Sentry.langChainIntegration.
Added recordInputs to control whether prompts and messages are recorded by LangChain instrumentation.
Added recordOutputs to control whether LangChain responses are recorded.
Next.js proxy files are now supported by the integration.
Adds strictTraceContinuation.
Behavior and default changes 56
Attachments are excluded from internal exception events, preventing them from being included in those events.
Token usage is normalized while cache breakdowns are preserved for more consistent AI telemetry.
The SDK no longer instruments its own envelope requests, avoiding self-instrumentation.
The Pages Router runtime is excluded from App Router client bundles, reducing unintended client bundle content.
Vercel AI span processors are registered on Next.js for proper AI span processing.
The enableLogs client option now defaults to true, enabling Sentry Logs when logging APIs or integrations are actively used; set it to false to opt out.
Anthropic client instrumentation now instruments the client in place instead of using a deep proxy.
Dataloader spans now include a cache.key attribute for identifying the associated cache key.
Redis delete operations are captured as cache.remove operations.
Core fetch instrumentation now records the complete request URL.
Pageload and navigation spans now include url attributes, improving URL context in Next.js tracing data.
The Node SDK now uses Sentry's minimal tracer provider by default, reducing overhead when the full OpenTelemetry tracing stack is unnecessary.
Root-span sampling contexts now receive normalizedRequest for sampling decisions.
vercelAiIntegration now supports v7 of the ai package, though v7 is not yet supported on Cloudflare.
AI message data is no longer truncated by default because streamed gen AI spans are not constrained by transaction size limits.
Gen AI spans are streamed by default, preventing them from being dropped when transaction payloads exceed size limits.
Gen AI message truncation is disabled by default when streamed Gen AI spans are enabled.
Streamed spans now use production as the default sentry.environment attribute value.
TwP sampling is deferred by reading trace state from the scope.
The ContextLines integration now uses dataCollection.frameContextLines.
dataCollection.httpBodies now defaults to all valid body types.
Primitive arrays are accepted as attribute values, while arrays with non-primitive elements are dropped; log and metric arrays are sent as actual arrays.
The Next.js project option type now accepts either a string or an array of strings.
Unwanted segments are filtered when span streaming is enabled.
Sentry now sets a global attribute indicating whether Turbopack is being used.
Discarded spans requiring a parent now emit a
no_parent_spanclient outcome.The google-genai integration no longer emits spans for chats.create.
Aligns Turbopack module metadata injection with webpack behavior, improving consistency for Next.js builds.
The Consola integration extracts the first-parameter object as searchable attributes.
A new page session lifecycle keeps the initial session across soft navigations until a hard refresh.
Capturing an exception with captureUnderscoreErrorException now exposes an event ID.
The Next.js integration now sets the Cloudflare runtime.
DebugID injection is turned off when sourcemaps are explicitly disabled, preventing unwanted instrumentation in that configuration.
Updates the default ignore list used for sourcemaps in Next.js projects.
DSNs can now use IPv6 hosts.
Scope attributes are now applied to metrics while the respective scopes are active; string, number, and boolean values are supported.
The Next.js integration now emits a warning when treeshaking and debug settings conflict.
Tracing and error monitoring now work automatically with Vercel AI SDK v6.
Cookie headers are now parsed into individual cookies.
The span attribute now contains only the GraphQL query string instead of the full JSON request payload.
Now supports GraphQL persisted operations by capturing the operation hash and protocol version as span attributes.
Inline media is stripped from tracing messages.
cacheComponents is now supported on Turbopack builds.
Next.js integrations add detection for Cloudflare's waitUntil capability.
Adds buffering for incoming client events.
Server-side transaction events now include the request URL, providing additional transaction context.
Request string inputs are truncated in the OpenAI integration to limit captured request data.
Spotlight is now included in development bundles, making development-time Spotlight functionality available by default.
The Next.js integration now deletes CSS map files.
Metrics are now enabled by default, although integrations do not automatically emit metrics.
The browser transport buffer is now limited in size.
Server SDK envelope requests now send a user-agent header.
AI integrations now truncate request messages, limiting the size of recorded request data.
Passes requestHook through to OpenTelemetry instrumentation.
Passes responseHook through to OpenTelemetry instrumentation.
Preparation for the Next.js 16 bundler default may affect bundler-related project decisions.
Tooling 5
Immutable browser chunks are now included in uploaded assets, improving source map or asset upload coverage for Next.js builds.
Published packages now include subpath type shims, improving type resolution for subpath imports.
Turbopack loaders now use the not: foreign condition.
Experimental support was added for using thirdPartyErrorFilterIntegration with Turbopack builds in Next.js 16+.
Next.js applications using Turbopack can use native Debug IDs for improved source map resolution and error tracking.
Fixes and other changes 85
HTTP spans named after the request method are detected correctly, improving HTTP span instrumentation.
Resolves the Next.js version relative to the SDK when the current working directory differs.
Sourcemap upload now includes only emitted chunk directories, preventing unrelated directories from being uploaded.
SDK imports no longer crash under jsdom or happy-dom environments.
Auto-instrumentation now supports OpenAI v7, allowing applications using that package version to be instrumented correctly.
Child span tracking is bounded on long-lived spans, preventing unbounded tracking over their lifetime.
Tracing is no longer added to middleware wrappers, preventing unintended tracing behavior.
Fixed a meriyah issue affecting standalone builds in Next.js.
Baggage with the string value undefined is no longer propagated when dynamic sampling context is missing.
The integration no longer causes infinite recursions.
Internal chunk frames are now marked as not in_app, improving frame classification in Next.js events.
Root spans created by Middleware.execute are now handled correctly when Next.js middleware runs on the Node.js runtime.
Inferred fragment attributes no longer retain a leading hash.
Inferred query attributes no longer retain a leading question mark.
Streamed span status messages are serialized to the sentry.status.message attribute.
Browser session envelopes are deferred until the browser is idle.
Trace meta tags are no longer injected when Next.js Cache Components is enabled.
Node runtime no longer fails when tracingChannel is unavailable.
Ensures url.full and http.url have identical values on client HTTP spans.
Avoids directly importing tracingChannel to maintain compatibility with Node v18.
Outgoing HTTP instrumentation no longer crashes when requests use
//paths.Safe random ID context is registered at module load to ensure it is available when needed.
Redirect server actions are marked as ok instead of internal_error.
pinoIntegration is now shimmed on the edge runtime, preventing edge-runtime integration issues.
__SENTRY_SERVER_MODULES__ is read lazily so Turbopack injection is honored.
Correctly parses sampleRate when consistent trace sampling is enabled.
DOMException instances with empty stack traces now receive a synthetic stack trace when attachStacktrace is enabled.
Internal frame detection is corrected for minified browser bundles, improving stack trace processing.
User data is no longer gated when streamed spans are read from scope.
Next.js build modification is skipped when SRI is enabled, preventing incompatible build changes.
Tunnel endpoint matching is narrowed to avoid matching endpoints too broadly.
GraphQL client spans are now enriched correctly when requests use relative URLs.
Outgoing request span attributes are now protected against null
httpVersionvalues.Implausible Largest Contentful Paint values are now filtered.
Promise rejection handling now records the rejection reason instead of the Promise as
originalException.Correlation handling now works correctly for stateless MCP wrapper transports.
Custom browser tracing setup is skipped for bot user agents.
Turbopack loaders now preserve directive prologues during processing.
MCP tool spans now receive error status when a tool returns a JSON-RPC error response.
Tracing now skips tunnel requests, preventing tunnel traffic from being included in application traces.
Logs the correct lastEventId when an error is thrown during component rendering.
Removes sourceMappingURL comments after source maps are deleted in Turbopack builds.
promiseBuffer is no longer removed entirely.
Trailing slashes are normalized in App Router route parameterization.
The environment from options is now applied when set.
SSR pages now return the correct last event ID.
Session user IDs are now consistently set, and the first soft navigation starts a new session correctly.
When enabled, spans no longer receive the sentry.drop_transaction attribute.
Non-transaction events now receive the parameterized transaction name.
The SENTRY_SERVER_MODULES value is now populated when using Turbopack.
Serverless environments receive fallback ALS runners.
Profiling debug ID matching is corrected.
Fetch options are shallow-cloned to prevent mutation.
IP address detection now finds the correct address regardless of case.
Vercel AI spans are detected by checking for the AI operation id.
Failed client reports no longer produce outcomes.
Client option types now allow explicitly passing undefined.
AI spans now receive operations when only a model ID is available.
Node-cron context is now passed through correctly.
Google GenAI tracing now includes the system prompt and model.
Anthropic AI message spans now include the system message.
Pino integration now supports the msg field, improving log capture for applications using Pino.
Vercel AI spans now include previously missing attributes.
Corrects the return type of beforeSendMetric.
Re-adds the _experiments.enableLogs option.
Fixes local-variable capture for out-of-app stack frames.
Applies maxValueLength when processing error messages.
The ISR route cache now uses an LRU map to manage cached routes.
Meta trace tags are dropped when the rendered page uses ISR.
Middleware files are no longer wrapped when Next.js runs in standalone mode.
Development error symbolication now respects the PORT environment variable.
Session status updates from events with exceptions now consider only the exception mechanism.
Replay ignores background-image when blockAllMedia is enabled.
Exception objects now include all keys instead of truncating them.
The Next.js integration stops accessing synchronous props in its template.
The Next.js proxy template wrapping was updated.
Corrected async types when instrumenting Anthropic's streaming API.
Removed chalk usage in Next.js integration to prevent runtime errors.
Bundler detection in the Next.js integration was updated.
The integration no longer sets the experimental instrumentation hook flag for Next.js 16.
Transaction naming for internationalized routing is now consistent.
Fixes route manifest creation when a basePath is configured.
URL extraction handles async params.
Stackframe calls are updated for Next.js 15.5.
Route handlers now flush events.
@sentry/vue 943 changes
Breaking changes 34
The method was removed; use the openTelemetryInstrumentations option in Sentry.init or a custom Sentry Client instead.
The option was removed. Session tracking is handled by browserSessionIntegration or httpIntegration, and processSessionIntegration replaces automatic per-process sessions in Node.js.
Client classes now have to extend BaseClient.
The hook can no longer drop spans by returning null; use integrations to control which spans are recorded.
The hook now receives root spans as well as child spans, so existing hooks may need to account for the additional input.
Use this integration to enable browser session tracking; remove it to disable session tracking in browser environments.
With attachStacktrace: true in Sentry.init, console messages are now marked handled; set handled: false on the integration to keep sending them as unhandled.
Use captureFeedback instead of captureUserFeedback, and provide the feedback text in the message field rather than comments.
The method was removed; use captureFeedback and change the comments field to message.
Client usages now require BaseClient instances; the abstract Client class was removed and client classes must extend BaseClient.
The integration was removed; use hook options such as beforeSend or beforeSendTransaction to log outgoing events.
SDK code may now use ES2020 features. Runtimes that do not support them may require SDK transpilation.
The option was removed; set tracesSampleRate to 1 or 0 instead.
The experimental_captureRequestError option was removed.
The getCurrentHub API was removed from the SDK.
The getCurrentHubShim API was removed from the SDK.
Use httpIntegration for server session tracking; set trackIncomingRequestsAsSessions to false to disable it.
The Hub API was removed from the SDK.
The previous metrics beta API has been removed; a new Metrics feature is available in the latest SDK versions.
The minimum supported browser versions now include Chrome 80, Edge 80, Safari 14, iOS Safari 14.4, Firefox 74, Opera 67, and Samsung Internet 13.0.
Node.js >=18 is now the minimum supported version.
Use this Sentry.init option or a custom Sentry Client to provide OpenTelemetry instrumentations.
This integration replaces automatic session creation for every Node.js process when autoSessionTracking was true, and is configured by default.
Use this property instead of samplingContext.request; its type differs from request.
The request property was removed from the samplingContext argument to tracesSampler and profilesSampler; use samplingContext.normalizedRequest instead.
The property was removed; object attributes are now available at the top level of samplingContext.
Scope usages now require Scope instances rather than structurally similar values.
The SDK no longer instructs the Sentry backend to automatically infer IP addresses by default; set sendDefaultPii: true to request IP inference.
The package is no longer published on the deno.land registry; import it from npm instead.
The package is no longer published; its exports and APIs have moved to @sentry/core, except for APIs explicitly removed in the migration guide.
The integration was removed; use Sentry.setContext() to capture session durations alongside events.
A custom scope passed to startSpan is cloned in v9, so scope changes made through the active scope remain within the callback; modify the custom scope directly to persist changes outside it.
Passing undefined is treated the same as leaving the option undefined, so negative sampling decisions are no longer propagated in this case.
The minimum required TypeScript version is increased to 5.0.4.
Deprecations 1
The package remains published but is deprecated, its API will not be extended, and it will not be published in future major versions.
New APIs and options 1
An option was added to skip requestAnimationFrame for canvas snapshots.
Behavior and default changes 1
Release names no longer rely on the Next.js Build ID.
Tooling 1
The SDK uses the batched devserver symbolication endpoint.
Fixes and other changes 5
Logs no longer suffer flush timeout starvation during continuous logging.
Logs beyond MAX_LOG_BUFFER_SIZE are no longer swallowed.
captureRequestError flushes with waitUntil.
The SDK respects user-provided source map generation settings.
The sourcemaps.disable setting is forwarded directly to the webpack plugin.
@sentry/vue 846 changes
Breaking changes 35
The function was removed in favor of adding an event processor to the global scope.
Use the function-based browser tracing integration instead of constructing BrowserTracing.
Integrations are functions rather than classes; class construction and access through the Integrations.XXX hash are replaced by functional integrations.
Deprecations from the v7 cycle were removed, except for getCurrentHub(), and can no longer be used in v8.
The SDK now requires ES2018 compatibility and support for globalThis; older environments may need transpilation and polyfills.
Metrics APIs no longer require enabling the metrics aggregator through this experimental option.
The SDK requires the fetch API because makeFetchTransport is the only available transport.
The property now removes the specified number of frames from the parsed stack, rather than lines from the stack string.
Use this function in place of the removed spanStatusfromHttpCode function.
The XHR transport was removed; only makeFetchTransport is available, so the environment must provide fetch.
The @sentry/migr8 migration codemod requires Node 18 or later.
The minimum supported Node.js version is 14.8.0.
Full support for ESM-based Node.js apps requires Node.js 18.19.0 or higher.
The Offline integration was removed in favor of the offline transport wrapper.
Import and initialize the SDK before any other import so auto-instrumentation works.
The package was removed and will no longer be published; pluggable integrations moved to @sentry/browser as functions.
The package is no longer required; import Replay methods directly from the SDK and use its functional integration.
The top-level function was removed; use Sentry.getCurrentScope() to access and mutate the current scope.
Add an event processor to the global scope using this API in place of addGlobalEventProcessor.
Replay integration is now functional instead of class-based.
The export was removed and has no replacement API.
The Severity enum was removed; use the SeverityLevel type directly.
SDK packages no longer export the Span class, which is not intended for direct user use.
The revamped custom tracing instrumentation API removes span.startChild.
The function was removed in favor of getSpanStatusFromHttpCode.
The revamped custom tracing instrumentation API removes startTransaction.
In browsers, when unset, tracing headers are attached to same-origin outgoing requests rather than targets matching the previous localhost and relative-URL defaults.
Configured entries are now matched against the full outgoing request URL instead of only the request argument.
The callback receives name and attributes directly instead of transactionContext; attributes reflect span-creation time and may omit later-set values.
The option was removed in favor of tracePropagationTargets, which is set in Sentry.init() or custom Client options.
The Transaction integration was removed from @sentry/integrations and has no replacement API.
The Next.js SDK no longer supports this option; configure Webpack and Next.js to down-compile the SDK if older browsers must be supported.
The send method must return a promise of TransportMakeRequestResponse; void is no longer allowed.
The Replay option now defaults to an empty array, so set it explicitly to use it.
The Replay option now defaults to an empty array, so set it explicitly to use it.
Deprecations 2
getCurrentHub remains available for now but is deprecated and will be removed in the next major version in favor of the new Scope API.
Hub remains available for now but is deprecated and will be removed in the next major version in favor of the new Scope API.
New APIs and options 1
Use this utility to check whether Sentry was initialized, rather than relying on getClient().
Behavior and default changes 4
The SDK now filters gmo errors and Facebook mobile errors.
The integration now examines error.cause by default.
After Sentry.init() has been called, getClient() always returns a client; use Sentry.isInitialized() to check initialization.
Browser metrics APIs no longer require adding this integration to the integrations array.
Tooling 1
Run the migration codemod to automatically update many deprecated SDK usages; it requires Node 18 or later.
Fixes and other changes 3
The install script again builds binaries from source, restoring successful installation behavior for profiling-related packages.
Performance measure spans now always have a positive duration.
The performance monitoring and tracing API has been streamlined.
@sentry/vue 72 changes
Breaking changes 1
The Integrations.BrowserTracing export was removed from @sentry/nextjs; import BrowserTracing from @sentry/nextjs directly.
Performance 1
The webpack plugin and CLI binary detection were changed, which should reduce bundle size of NextJS applications.
@sentry/vue 63 changes
Breaking changes 1
Session tracking is enabled by default for SDKs that support sending session data; set autoSessionTracking to false during SDK initialization to opt out.
New APIs and options 1
Set autoSessionTracking to false during SDK initialization to opt out of session tracking.
Behavior and default changes 1
A session is created when history changes.
@sentry/vue 532 changes
Breaking changes 20
The utility is removed in favor of Object.assign.
The browser beacon transport is removed.
BrowserBackend is removed from the default export.
The Dedupe integration becomes optional and is no longer enabled by default.
Mechanism is moved to Exception.
Events created from exceptions no longer have a top-level message attribute.
The utility is removed in favor of native includes.
The install function is removed from the integration interface.
The utility is removed in favor of Array.isArray.
The utility is removed in favor of checking typeof === 'function'.
The utility is removed in favor of Number.isNaN.
The utility is removed in favor of checking === void 0.
The utility is renamed from serializeKeysToEventMessage.
Default client fingerprinting for messages is removed.
The utility is renamed from safeNormalize and its internals are rewritten.
The utility is renamed from limitObjectDepthToSize and its internals are rewritten.
The SDK information integration is removed.
The transport function is renamed from captureEvent to sendEvent and receives an Event instead of stringified data.
Pluggable integrations, including extraErrorData, are extracted into a separate package.
The serialize, deserialize, clone, and serializeObject functions are removed.
New APIs and options 7
A new hub method is introduced to clear breadcrumbs.
A utility to identify synthetic events is introduced.
This option adjusts the maximum string length for values; its default is 250.
A package is introduced with functions to attach opentracing data to Sentry Events.
A new hub method is introduced to set extras.
A new hub method is introduced to set tags.
A synthetic field is added to Mechanism in exception.
Behavior and default changes 3
The close method disables the client once it has been flushed.
ESM builds use the es6 target instead of esnext.
The module field is exposed as the entry point for ESM builds.
Fixes and other changes 2
PromiseBuffer is moved to utils.
SentryError is moved to utils.