@sentry/node
11.9.0 · 23 Oct 2026MIT36.1M / weekRepositoryHomepagenpmAtom feed
578 stable releases, newest first, by release line. Notes are quoted as the maintainers published them.
- 10.x
10.43.0
10 Mar 2026nextjs: Add Turbopack support for React component name annotation
We added experimental support for React component name annotation in Turbopack builds. When enabled, JSX elements are annotated with
data-sentry-component,data-sentry-element, anddata-sentry-source-fileattributes at build time. This enables searching Replays by component name, seeing component names in breadcrumbs, and performance monitoring — previously only available with webpack builds.This feature requires Next.js 16+ and is currently behind an experimental flag:
// next.config.ts import { withSentryConfig } from '@sentry/nextjs'; export default withSentryConfig(nextConfig, { _experimental: { turbopackReactComponentAnnotation: { enabled: true, ignoredComponents: ['Header', 'Footer'], // optional }, }, });hono: Instrument middlewares
app.use()Hono middleware registered via
app.use()is now automatically instrumented, creating spans for each middleware invocation.node-core,node: Add
tracePropagationoption to http and fetch integrations
Important Changes
nextjs: Add Turbopack support for React component name annotation
We added experimental support for React component name annotation in Turbopack builds. When enabled, JSX elements are annotated with
data-sentry-component,data-sentry-element, anddata-sentry-source-fileattributes at build time. This enables searching Replays by component name, seeing component names in breadcrumbs, and performance monitoring — previously only available with webpack builds.This feature requires Next.js 16+ and is currently behind an experimental flag:
// next.config.ts import { withSentryConfig } from '@sentry/nextjs'; export default withSentryConfig(nextConfig, { _experimental: { turbopackReactComponentAnnotation: { enabled: true, ignoredComponents: ['Header', 'Footer'], // optional }, }, });hono: Instrument middlewares
app.use()Hono middleware registered via
app.use()is now automatically instrumented, creating spans for each middleware invocation.
Other Changes
node-core,node: Add
tracePropagationoption to http and fetch integrationshono: Use parametrized names for errors
browser: Fix missing traces for user feedback
cloudflare: Use correct Proxy receiver in
instrumentDurableObjectStoragecore: Standardize Vercel AI span descriptions to align with GenAI semantic conventions
nextjs: Align Turbopack module metadata injection with webpack behavior
node: Prevent duplicate LangChain spans from double module patching
node-core,vercel-edge: Use HEROKU_BUILD_COMMIT env var for default release
sveltekit: Fix file system race condition in source map cleaning
tanstackstart-react: Add workerd and worker export conditions
vercel-ai: Prevent tool call span map memory leak
Internal Changes
Work in this release was contributed by @dmmulroy, @lithdew, and @smorimoto. Thank you for your contributions!
10.42.0
3 Mar 2026consola: Enhance Consola integration to extract first-param object as searchable attributes
astro: Do not inject withSentry into Cloudflare Pages
core: Do not remove promiseBuffer entirely
consola: Enhance Consola integration to extract first-param object as searchable attributes
astro: Do not inject withSentry into Cloudflare Pages
core: Do not remove promiseBuffer entirely
react-router: Set correct transaction name when navigating with object argument
Internal Changes
10.41.0
2 Mar 2026core,cloudflare,deno: Add
instrumentPostgresJsSqlinstrumentationAdded a new instrumentation helper for the
postgres(postgres.js) library, designed for SDKs that are not based on OpenTelemetry (e.g. Cloudflare, Deno). This wraps a postgres.jssqltagged template instance so that all queries automatically create Sentry spans.import postgres from 'postgres'; import * as Sentry from '@sentry/cloudflare'; // or '@sentry/deno' export default Sentry.withSentry(env => ({ dsn: '__DSN__' }), { async fetch(request, env, ctx) { const sql = Sentry.instrumentPostgresJsSql(postgres(env.DATABASE_URL)); // All queries now create Sentry spans const users = await sql`SELECT * FROM users WHERE id = ${userId}`; return Response.json(users); }, });The instrumentation is available in
@sentry/core,@sentry/cloudflare, and@sentry/deno.nextjs: Add Turbopack support for
thirdPartyErrorFilterIntegrationWe added experimental support for the
thirdPartyErrorFilterIntegrationwith Turbopack builds.This feature requires Next.js 16+ and is currently behind an experimental flag:
// next.config.ts import { withSentryConfig } from '@sentry/nextjs'; export default withSentryConfig(nextConfig, { _experimental: { turbopackApplicationKey: 'my-app-key', }, });Then configure the integration in your client instrumentation file with a matching key:
// instrumentation-client.ts import * as Sentry from '@sentry/nextjs'; Sentry.init({ integrations: [ Sentry.thirdPartyErrorFilterIntegration({ filterKeys: ['my-app-key'], behaviour: 'apply-tag-if-exclusively-contains-third-party-frames', }), ], });core,cloudflare: Add dispose to the client for proper cleanup
Important Changes
core,cloudflare,deno: Add
instrumentPostgresJsSqlinstrumentationAdded a new instrumentation helper for the
postgres(postgres.js) library, designed for SDKs that are not based on OpenTelemetry (e.g. Cloudflare, Deno). This wraps a postgres.jssqltagged template instance so that all queries automatically create Sentry spans.import postgres from 'postgres'; import * as Sentry from '@sentry/cloudflare'; // or '@sentry/deno' export default Sentry.withSentry(env => ({ dsn: '__DSN__' }), { async fetch(request, env, ctx) { const sql = Sentry.instrumentPostgresJsSql(postgres(env.DATABASE_URL)); // All queries now create Sentry spans const users = await sql`SELECT * FROM users WHERE id = ${userId}`; return Response.json(users); }, });The instrumentation is available in
@sentry/core,@sentry/cloudflare, and@sentry/deno.nextjs: Add Turbopack support for
thirdPartyErrorFilterIntegrationWe added experimental support for the
thirdPartyErrorFilterIntegrationwith Turbopack builds.This feature requires Next.js 16+ and is currently behind an experimental flag:
// next.config.ts import { withSentryConfig } from '@sentry/nextjs'; export default withSentryConfig(nextConfig, { _experimental: { turbopackApplicationKey: 'my-app-key', }, });Then configure the integration in your client instrumentation file with a matching key:
// instrumentation-client.ts import * as Sentry from '@sentry/nextjs'; Sentry.init({ integrations: [ Sentry.thirdPartyErrorFilterIntegration({ filterKeys: ['my-app-key'], behaviour: 'apply-tag-if-exclusively-contains-third-party-frames', }), ], });
Other Changes
core,cloudflare: Add dispose to the client for proper cleanup
nextjs: Use
not: foreigncondition in turbopack loadersreact-router: Include middleware function names and indices
consola: Normalize extra keys from consola
core: Improve message truncation for multimodal content and normalize streaming span names
core: Strip inline media from multimodal content before stringification
langchain: Use runName argument in handleChainStart to fix unknown_chain spans
nestjs: Improve control flow exception filtering
tanstackstart-react: Flush events in server entry point for serverless environments
vue: Avoid triggering deprecated next callback from router instrumentation
Internal Changes
Work in this release was contributed by @YevheniiKotyrlo. Thank you for your contribution!
10.40.0
24 Feb 2026- breaking
tanstackstart-react: Export Vite plugin from
@sentry/tanstackstart-react/vitesubpathThe
sentryTanstackStartVite plugin is now exported from a dedicated subpath. Update your import:- import { sentryTanstackStart } from '@sentry/tanstackstart-react'; + import { sentryTanstackStart } from '@sentry/tanstackstart-react/vite'; tanstackstart-react: Add global sentry exception middlewares
The
sentryGlobalRequestMiddlewareandsentryGlobalFunctionMiddlewareglobal middlewares capture unhandled exceptions thrown in TanStack Start API routes and server functions. Add them as the first entries in therequestMiddlewareandfunctionMiddlewarearrays ofcreateStart():import { createStart } from '@tanstack/react-start/server'; import { sentryGlobalRequestMiddleware, sentryGlobalFunctionMiddleware } from '@sentry/tanstackstart-react/server'; export default createStart({ requestMiddleware: [sentryGlobalRequestMiddleware, myRequestMiddleware], functionMiddleware: [sentryGlobalFunctionMiddleware, myFunctionMiddleware], });node-core: Reduce bundle size by removing apm-js-collab and requiring pino >= 9.10
In order to keep receiving pino logs, you need to update your pino version to >= 9.10, the reason for the support bump is to reduce the bundle size of the node-core SDK in frameworks that cannot tree-shake the apm-js-collab dependency.
Important Changes
tanstackstart-react: Add global sentry exception middlewares
The
sentryGlobalRequestMiddlewareandsentryGlobalFunctionMiddlewareglobal middlewares capture unhandled exceptions thrown in TanStack Start API routes and server functions. Add them as the first entries in therequestMiddlewareandfunctionMiddlewarearrays ofcreateStart():import { createStart } from '@tanstack/react-start/server'; import { sentryGlobalRequestMiddleware, sentryGlobalFunctionMiddleware } from '@sentry/tanstackstart-react/server'; export default createStart({ requestMiddleware: [sentryGlobalRequestMiddleware, myRequestMiddleware], functionMiddleware: [sentryGlobalFunctionMiddleware, myFunctionMiddleware], });- breaking
tanstackstart-react: Export Vite plugin from
@sentry/tanstackstart-react/vitesubpathThe
sentryTanstackStartVite plugin is now exported from a dedicated subpath. Update your import:- import { sentryTanstackStart } from '@sentry/tanstackstart-react'; + import { sentryTanstackStart } from '@sentry/tanstackstart-react/vite'; node-core: Reduce bundle size by removing apm-js-collab and requiring pino >= 9.10
In order to keep receiving pino logs, you need to update your pino version to >= 9.10, the reason for the support bump is to reduce the bundle size of the node-core SDK in frameworks that cannot tree-shake the apm-js-collab dependency.
browser: Ensure user id is consistently added to sessions
Previously, the SDK inconsistently set the user id on sessions, meaning sessions were often lacking proper coupling to the user set for example via
Sentry.setUser(). Additionally, the SDK incorrectly skipped starting a new session for the first soft navigation after the pageload. This patch fixes these issues. As a result, metrics around sessions, like "Crash Free Sessions" or "Crash Free Users" might change. This could also trigger alerts, depending on your set thresholds and conditions. We apologize for any inconvenience caused!While we're at it, if you're using Sentry in a Single Page App or meta framework, you might want to give the new
'page'session lifecycle a try! This new mode no longer creates a session per soft navigation but continues the initial session until the next hard page refresh. Check out the docs to learn more!Ref!(gatsby): Drop Gatsby v2 support
We drop support for Gatsby v2 (which still relies on webpack 4) for a critical security update in github.com/getsentry/sentry-javascript-bundler-…
Other Changes
astro: Add support for Astro on CF Workers
cloudflare: Instrument async KV API
core: Add framework-agnostic tunnel handler
deno: Export logs API from Deno SDK
deno: Export metrics API from Deno SDK
deno: Instrument Deno.serve with async context support
feedback: Add
setTheme()to dynamically update feedback widget color schemenextjs: Add
sourcemaps.filesToDeleteAfterUploadas a top-level optionnode: Add
ignoreConnectSpansoption topostgresIntegrationnode: Bump to latest @fastify/otel
Bump bundler plugins to v5
Updated the codecov config
aws-serverless: Prevent crash in
isPromiseAllSettledResultwith null/undefined array elementsfix(bun) Export pinoIntegration from @sentry/node
core,browser: Delete SentryNonRecordingSpan from fetch/xhr map
core: Explicitly flush log buffer in
client.close()core: Langgraph state graph invoke accepts null to resume
core: Wrap decodeURI in node stack trace parser to handle malformed URIs
nextjs: Apply environment from
optionsif setnextjs: Don't set
sentry.drop_transactionattribute on spans whenskipOpenTelemetrySetupis enablednextjs: Normalize trailing slashes in App Router route parameterization
nextjs: Return correct lastEventId for SSR pages
nextjs: Set parameterized transaction name for non-transaction events
node-core: Align pino mechanism type with spec conventions
nuxt: Use
options.rootDirinstead ofoptions.srcDir
Internal Changes - test(nextjs): Add bun e2e test app - test(nextjs): Deactivate canary test for cf-workers - tests(langchain): Fix langchain v1 internal error tests - ref(nuxt): Remove `defineNitroPlugin` wrapper - ref(cloudflare): Move internal files and functions around - chore: Add external contributor to CHANGELOG.md - chore: Add github action to notify stale PRs - chore: add oxfmt changes to blame ignore rev list - chore: Enhance AI integration guidelines with runtime-specific placem… - chore: Ignore `lerna.json` for prettier - chore: migrate to oxfmt - chore: Revert to lerna v8 - chore: Unignore HTML files and reformat with oxfmt - chore(ci): Adapt max turns of triage issue agent - chore(ci): Add `environment` to triage action - chore(ci): Add `id-token: write` permission to triage workflow - chore(ci): Move monorepo to nx - chore(cursor): Add rules for fetching develop docs - chore(deps-dev): Bump @sveltejs/kit from 2.49.5 to 2.52.2 in /dev-packages/e2e-tests/test-applications/sveltekit-2 - chore(deps-dev): Bump @sveltejs/kit from 2.49.5 to 2.52.2 in /dev-packages/e2e-tests/test-applications/sveltekit-2-kit-tracing - chore(deps-dev): Bump @sveltejs/kit from 2.49.5 to 2.52.2 in /dev-packages/e2e-tests/test-applications/sveltekit-cloudflare-pages - chore(deps-dev): Bump @sveltejs/kit from 2.50.1 to 2.52.2 - chore(deps-dev): bump @testing-library/react from 13.0.0 to 15.0.5 - chore(deps-dev): bump @types/ember__debug from 3.16.5 to 4.0.8 - chore(deps-dev): bump ember-resolver from 13.0.2 to 13.1.1 - chore(deps): Bump @actions/glob from 0.4.0 to 0.6.1 - chore(deps): bump agents from 0.2.32 to 0.3.10 in /dev-packages/e2e-tests/test-applications/cloudflare-mcp - chore(deps): Bump hono from 4.11.7 to 4.11.10 in /dev-packages/e2e-tests/test-applications/cloudflare-hono - chore(deps): Bump Sentry CLI to latest v2 - chore(deps): Bump transitive dep `fast-xml-parser` - chore(deps): upgrade tar to 7.5.9 to fix CVE-2026-26960 - chore(github): Add `allowedTools` to Claude GitHub action - chore(github): Add workflow to trigger `triage-issue` skill - chore(github): Add write tool for markdown report - chore(github): Change tool permission path - chore(llm): Add `triage-issue` skill - chore(llm): Better defense against prompt injection in triage skill - chore(llm): Make cross-repo search optional and remove file cleanup - chore(node-core): Make @sentry/opentelemetry not a peer dep in node… - chore(repo): Allow WebFetch for Sentry docs in Claude settings - chore(repo): Increase number of concurrently running nx tasks - chore(skills): Add security notes for injection defense - chore(triage-action): Fix JSON parsing - chore(triage-issue): Improve triage prompt for accuracy - chore(triage-skill): Add GitHub parsing python util script - chore(triage-skill): Increase `num_turns` and add script to post summary - ci(fix-security-vulnerability): Add id token write permission - ci(fix-security-vulnerability): Be specific about how to fetch the alert page - ci(fix-security-vulnerability): Run fetch alert first before executing skill - ci(fix-security-vulnerability): Use opus 4.6 - ci(github): Add tilde to file path to not exact-match - ci(triage-skill): Allow `Write` and remove `rm` permission - ci(triage-skill): Run on opened issues - docs(nuxt): Remove duplicated setup instructions - feat(ci): Add security vulnerability skill action
Work in this release was contributed by @LudvigHz and @jadengis. Thank you for your contributions!
10.39.0
16 Feb 2026tanstackstart-react: Auto-instrument server function middleware
The
sentryTanstackStartVite plugin now automatically instruments middleware increateServerFn().middleware([...])calls. This captures performance data without requiring manual wrapping withwrapMiddlewaresWithSentry().nextjs: New experimental automatic vercel cron monitoring
Setting
_experimental.vercelCronMonitoringtotruein your Sentry configuration will automatically create Sentry cron monitors for your Vercel Cron Jobs.Please note that this is an experimental unstable feature and subject to change.
// next.config.ts export default withSentryConfig(nextConfig, { _experimental: { vercelCronMonitoring: true, }, });node-core: Add node-core/light
This release adds a new light-weight
@sentry/node-core/lightexport to@sentry/node-core. The export acts as a light-weight SDK that does not depend on OpenTelemetry and emits no spans.Use this SDK when:
It supports error tracking and reporting, logs, metrics, automatic request isolation (requires Node.js 22+) and basic tracing via our
Sentry.startSpan*APIs.Install the SDK by running
npm install @sentry/node-core
and add Sentry at the top of your application's entry file:
import * as Sentry from '@sentry/node-core/light'; Sentry.init({ dsn: '__DSN__', });
Important Changes
tanstackstart-react: Auto-instrument server function middleware
The
sentryTanstackStartVite plugin now automatically instruments middleware increateServerFn().middleware([...])calls. This captures performance data without requiring manual wrapping withwrapMiddlewaresWithSentry().nextjs: New experimental automatic vercel cron monitoring
Setting
_experimental.vercelCronMonitoringtotruein your Sentry configuration will automatically create Sentry cron monitors for your Vercel Cron Jobs.Please note that this is an experimental unstable feature and subject to change.
// next.config.ts export default withSentryConfig(nextConfig, { _experimental: { vercelCronMonitoring: true, }, });node-core: Add node-core/light
This release adds a new light-weight
@sentry/node-core/lightexport to@sentry/node-core. The export acts as a light-weight SDK that does not depend on OpenTelemetry and emits no spans.Use this SDK when:
You only need error tracking, logs or metrics without tracing data (no spans)
You want to minimize bundle size and runtime overhead
You don't need spans emitted by OpenTelemetry instrumentation
It supports error tracking and reporting, logs, metrics, automatic request isolation (requires Node.js 22+) and basic tracing via our
Sentry.startSpan*APIs.Install the SDK by running
npm install @sentry/node-core
and add Sentry at the top of your application's entry file:
import * as Sentry from '@sentry/node-core/light'; Sentry.init({ dsn: '__DSN__', });
Other Changes
browser: Add mode option for the browser session integration
browser: Include culture context with events
browser: Trace continuation from server-timing headers
core,cloudflare: Enable certain fields with env variables
hono: Add base for Sentry Hono middleware (Cloudflare)
nextjs: Set cloudflare runtime
node-core: Add outgoing fetch trace propagation to light mode
react: Add
lazyRouteManifestoption to resolve lazy-route namesvercel-ai: Add rerank support and fix token attribute mapping
core: Avoid blocking the process for weightBasedFlushing
core: Avoid blocking the process when calling
flushon empty buffercore: Ensure partially set SDK metadata options are preserved
core: Fix truncation to only keep last message in vercel
core: Intercept .withResponse() to preserve OpenAI stream instrumentation
core: Prevent infinite recursion when event processor throws
core: Record client report with reason for HTTP 413 responses
core: Remove outdated
_experiments.enableMetricsreferences from metrics JSDoccore: Respect event.event_id in scope.captureEvent return value
core: Use sessionId for MCP transport correlation
nextjs: Expose an event id when
captureUnderscoreErrorExceptioncaptures an exceptionnextjs: Populate SENTRY_SERVER_MODULES in Turbopack
node: Use snake_case for Fastify's
request-handlerop.nuxt: Avoid logging database skip warning when
debugis disablednuxt: Respect configured environment settings
profiling-node: 137 ABI should not be pruned for node 24
replay: Improve error messages when compression worker fails to load
svelte: Bump svelte dev dependency to
3.59.2sveltekit: Detect used adapter via
svelte.config.jstanstackstart-react: Use
auto.middleware.tanstackstartas middleware trace origin
Internal Changes
Work in this release was contributed by @limbonaut and @rfoel. Thank you for your contributions!
10.38.0
29 Jan 2026tanstackstart-react: Auto-instrument request middleware
The
sentryTanstackStartVite plugin now automatically instrumentsmiddlewarearrays increateFileRoute(). This captures performance data without requiring manual wrapping withwrapMiddlewaresWithSentry().Use v4.8.0 bundler plugins
browser: Add
logs.metricsbundle
Important Changes
tanstackstart-react: Auto-instrument request middleware
The
sentryTanstackStartVite plugin now automatically instrumentsmiddlewarearrays increateFileRoute(). This captures performance data without requiring manual wrapping withwrapMiddlewaresWithSentry().
Other Changes
Use v4.8.0 bundler plugins
browser: Add
logs.metricsbundlebrowser: Add
replay.logs.metricsbundlebrowser: Add
tracing.replay.logs.metricsbundlenode: Add AI manual instrumentation exports to Node
wasm: Initialised sentryWasmImages for webworkers
core: Classify custom
AggregateErrors as exception groupsnextjs: Turn off debugID injection if sourcemaps are explicitly disabled
react: Avoid
String(key)to fix Symbol conversion errorreact: Prevent lazy route handlers from updating wrong navigation span
Internal Changes - feat(deps-dev): bump @types/rsvp from 4.0.4 to 4.0.9 - ci(build): Run full test suite on new bundle with logs+metrics - ci(deps): bump actions/create-github-app-token from 1 to 2 - ci(deps): bump peter-evans/create-pull-request from 8.0.0 to 8.1.0 - chore: Add external contributor to CHANGELOG.md - chore(aws-serverless): Fix local cache issues - chore(dependabot): Allow all packages to update - chore(dependabot): Update ignore patterns and add more groups - chore(dependabot): Update ignore patterns and add more groups - chore(deps-dev): bump @edge-runtime/types from 3.0.1 to 4.0.0 - chore(deps-dev): bump @vercel/nft from 0.29.4 to 1.3.0 - chore(deps): bump @actions/artifact from 2.1.11 to 5.0.3 - chore(deps): bump hono from 4.11.4 to 4.11.7 in /dev-packages/e2e-tests/test-applications/cloudflare-hono - chore(deps): bump next from 16.0.9 to 16.1.5 in /dev-packages/e2e-tests/test-applications/nextjs-16-cacheComponents - chore(deps): Bump trpc v11 dependency in e2e test - chore(deps): Bump wrangler to 4.61.0 - chore(deps): Upgrade @remix-run deps to 2.17.4 - chore(deps): Upgrade `next` versions 15 and 16 - chore(deps): Upgrade Lerna to v8 - chore(deps): Upgrade next to 14.2.35 - chore(deps): Upgrade react-router, @react-router/node, @react-router/serve, @react-router/dev to 7.13.0 - chore(llm): Add claude skill + cursor command for adding new cdn bundles - chore(llm): Ignore local Claude settings - chore(react): Update react-router-5 dev dependency to another than 5.0.0 - chore(release): Add generate-changelog script - chore(remix): Upgrade @remix-run/router to ^1.23.2 - chore(solidstart): Bump peer dependencies of @solidjs/start - chore(solidstart): Upgrade Vinxi to update h3 peer dependency - chore(tests): Reject messages from unknown origins in integration tests
Work in this release was contributed by @harshit078. Thank you for your contribution!
10.37.0
27 Jan 2026core: Introduces a new
Sentry.setConversationId()API to track multi turn AI conversations across API calls.You can now set a conversation ID that will be automatically applied to spans within that scope. This allows you to link traces from the same conversation together.
import * as Sentry from '@sentry/node'; // Set conversation ID for all subsequent spans Sentry.setConversationId('conv_abc123'); // All AI spans will now include the gen_ai.conversation.id attribute await openai.chat.completions.create({...});This is particularly useful for tracking multiple AI API calls that are part of the same conversation, allowing you to analyze entire conversation flows in Sentry. The conversation ID is stored on the isolation scope and automatically applied to spans via the new
conversationIdIntegration.tanstackstart-react: Auto-instrument global middleware in
sentryTanstackStartVite pluginThe
sentryTanstackStartVite plugin now automatically instrumentsrequestMiddlewareandfunctionMiddlewarearrays increateStart(). This captures performance data without requiring manual wrapping.Auto-instrumentation is enabled by default. To disable it:
// vite.config.ts sentryTanstackStart({ authToken: process.env.SENTRY_AUTH_TOKEN, org: 'your-org', project: 'your-project', autoInstrumentMiddleware: false, });core: Simplify truncation logic to only keep the newest message
Important Changes
core: Introduces a new
Sentry.setConversationId()API to track multi turn AI conversations across API calls.You can now set a conversation ID that will be automatically applied to spans within that scope. This allows you to link traces from the same conversation together.
import * as Sentry from '@sentry/node'; // Set conversation ID for all subsequent spans Sentry.setConversationId('conv_abc123'); // All AI spans will now include the gen_ai.conversation.id attribute await openai.chat.completions.create({...});This is particularly useful for tracking multiple AI API calls that are part of the same conversation, allowing you to analyze entire conversation flows in Sentry. The conversation ID is stored on the isolation scope and automatically applied to spans via the new
conversationIdIntegration.tanstackstart-react: Auto-instrument global middleware in
sentryTanstackStartVite pluginThe
sentryTanstackStartVite plugin now automatically instrumentsrequestMiddlewareandfunctionMiddlewarearrays increateStart(). This captures performance data without requiring manual wrapping.Auto-instrumentation is enabled by default. To disable it:
// vite.config.ts sentryTanstackStart({ authToken: process.env.SENTRY_AUTH_TOKEN, org: 'your-org', project: 'your-project', autoInstrumentMiddleware: false, });
Other Changes
core: Simplify truncation logic to only keep the newest message
core: Support new client discard reason
invalidnextjs: Update default ignore list for sourcemaps
node: Pass prisma instrumentation options through
nuxt: Don't run source maps related code on Nuxt "prepare"
replay: Update client report discard reason for invalid sessions
winston: Add customLevelMap for winston transport
react-router: Add support for React Router instrumentation API
astro: Do not show warnings for valid options
core: Report well known values in gen_ai.operation.name attribute
node-core: Ignore vercel
AbortErrorby default on unhandled rejectionnuxt: Include sentry.config.server.ts in nuxt app types
profiling: Add
platformto envelope item headerreact: Defer React Router span finalization until lazy routes load
Internal Changes
Work in this release was contributed by @sebws, @harshit078, and @fedetorre. Thank you for your contributions!
10.36.0
21 Jan 2026node: Add Prisma v7 support
opentelemetry: Support
db.system.nameattribute for database spanscore: Sanitize data URLs in
http.clientspans
node: Add Prisma v7 support
opentelemetry: Support
db.system.nameattribute for database spanscore: Sanitize data URLs in
http.clientspansnextjs: Add ALS runner fallbacks for serverless environments
node: Profiling debug ID matching
Internal Changes
10.35.0
19 Jan 2026tanstackstart-react: Add
sentryTanstackStartvite plugin to manage automatic source map uploadsYou can now configure source maps upload for TanStack Start using the
sentryTanstackStartVite plugin:// vite.config.ts import { defineConfig } from 'vite'; import { sentryTanstackStart } from '@sentry/tanstackstart-react'; import { tanstackStart } from '@tanstack/react-start/plugin/vite'; export default defineConfig({ plugins: [ sentryTanstackStart({ authToken: process.env.SENTRY_AUTH_TOKEN, org: 'your-org', project: 'your-project', }), tanstackStart(), ], });browser: Add CDN bundle for
tracing.replay.feedback.logs.metricsbrowser: Add shim package for logs
Important Changes
tanstackstart-react: Add
sentryTanstackStartvite plugin to manage automatic source map uploadsYou can now configure source maps upload for TanStack Start using the
sentryTanstackStartVite plugin:// vite.config.ts import { defineConfig } from 'vite'; import { sentryTanstackStart } from '@sentry/tanstackstart-react'; import { tanstackStart } from '@tanstack/react-start/plugin/vite'; export default defineConfig({ plugins: [ sentryTanstackStart({ authToken: process.env.SENTRY_AUTH_TOKEN, org: 'your-org', project: 'your-project', }), tanstackStart(), ], });
Other Changes
browser: Add CDN bundle for
tracing.replay.feedback.logs.metricsbrowser: Add shim package for logs
cloudflare: Automatically set the release id when CF_VERSION_METADATA is enabled
core: Add
ignoredclient report event drop reasonlogs: Add
Logexports to browser and node packagesnode-core,bun: Export processSessionIntegration from node-core and add it to bun
core: Find the correct IP address regardless their case
core: Check for AI operation id to detect a vercelai span
ember: Use ES5 syntax in inline vendor scripts
fetch: Shallow-clone fetch options to prevent mutation
Internal Changes
meta(changelog): Fix entry for tanstack start vite plugin
Work in this release was contributed by @rreckonerr. Thank you for your contribution!
10.34.0
14 Jan 2026core: Add option to enhance the fetch error message
You can now enable enhanced fetch error messages by setting the
enhancedFetchErrorMessageoption. When enabled, the SDK will include additional context in fetch error messages to help with debugging.nextjs: Add routeManifestInjection option to exclude routes from client bundle
A new
routeManifestInjectionoption allows you to exclude sensitive routes from being injected into the client bundle.tanstackstart-react: Add
wrapMiddlewaresWithSentryfor manual middleware instrumentationYou can now wrap your middlewares using
wrapMiddlewaresWithSentry, allowing you to trace middleware execution in your TanStack Start application.import { createMiddleware } from '@tanstack/react-start'; import { wrapMiddlewaresWithSentry } from '@sentry/tanstackstart-react'; const loggingMiddleware = createMiddleware({ type: 'function' }).server(async ({ next }) => { console.log('Request started'); return next(); }); export const [wrappedLoggingMiddleware] = wrapMiddlewaresWithSentry({ loggingMiddleware });
Important Changes
core: Add option to enhance the fetch error message
You can now enable enhanced fetch error messages by setting the
enhancedFetchErrorMessageoption. When enabled, the SDK will include additional context in fetch error messages to help with debugging.nextjs: Add routeManifestInjection option to exclude routes from client bundle
A new
routeManifestInjectionoption allows you to exclude sensitive routes from being injected into the client bundle.tanstackstart-react: Add
wrapMiddlewaresWithSentryfor manual middleware instrumentationYou can now wrap your middlewares using
wrapMiddlewaresWithSentry, allowing you to trace middleware execution in your TanStack Start application.import { createMiddleware } from '@tanstack/react-start'; import { wrapMiddlewaresWithSentry } from '@sentry/tanstackstart-react'; const loggingMiddleware = createMiddleware({ type: 'function' }).server(async ({ next }) => { console.log('Request started'); return next(); }); export const [wrappedLoggingMiddleware] = wrapMiddlewaresWithSentry({ loggingMiddleware });
Other Changes
browser: Add CDN bundle for
tracing.logs.metricscore,node-core: Consolidate bun and node types with ServerRuntimeOptions
nextjs: Remove tracing from generation function template
core: Don't record outcomes for failed client reports
deno,cloudflare: Prioritize name from params over name from options
web-vitals: Add error handling for invalid object keys in
WeakMap
Internal Changes
10.33.0
12 Jan 2026core: Apply scope attributes to metrics
You can now set attributes on the SDK's scopes which will be applied to all metrics as long as the respective scopes are active. For the time being, only
string,numberandbooleanattribute values are supported.Sentry.getGlobalScope().setAttributes({ is_admin: true, auth_provider: 'google' }); Sentry.withScope(scope => { scope.setAttribute('step', 'authentication'); // scope attributes `is_admin`, `auth_provider` and `step` are added Sentry.metrics.count('clicks', 1, { attributes: { activeSince: 100 } }); Sentry.metrics.gauge('timeSinceRefresh', 4, { unit: 'hour' }); }); // scope attributes `is_admin` and `auth_provider` are added Sentry.metrics.count('response_time', 283.33, { unit: 'millisecond' });tracing: Add Vercel AI SDK v6 support
The Sentry SDK now supports the Vercel AI SDK v6. Tracing and error monitoring will work automatically with the new version.
wasm: Add applicationKey option for third-party error filtering
Adds support for applying an application key to WASM stack frames that can be then used in the
thirdPartyErrorFilterIntegrationfor detection of first-party code.Usage:
Sentry.init({ integrations: [ // Integration order matters: wasmIntegration needs to be before thirdPartyErrorFilterIntegration wasmIntegration({ applicationKey: 'your-custom-application-key' }), ←───┐ thirdPartyErrorFilterIntegration({ │ behaviour: 'drop-error-if-exclusively-contains-third-party-frames', ├─ matching keys filterKeys: ['your-custom-application-key'] ←─────────────────────────┘ }), ], });
Important Changes
core: Apply scope attributes to metrics
You can now set attributes on the SDK's scopes which will be applied to all metrics as long as the respective scopes are active. For the time being, only
string,numberandbooleanattribute values are supported.Sentry.getGlobalScope().setAttributes({ is_admin: true, auth_provider: 'google' }); Sentry.withScope(scope => { scope.setAttribute('step', 'authentication'); // scope attributes `is_admin`, `auth_provider` and `step` are added Sentry.metrics.count('clicks', 1, { attributes: { activeSince: 100 } }); Sentry.metrics.gauge('timeSinceRefresh', 4, { unit: 'hour' }); }); // scope attributes `is_admin` and `auth_provider` are added Sentry.metrics.count('response_time', 283.33, { unit: 'millisecond' });tracing: Add Vercel AI SDK v6 support
The Sentry SDK now supports the Vercel AI SDK v6. Tracing and error monitoring will work automatically with the new version.
wasm: Add applicationKey option for third-party error filtering
Adds support for applying an application key to WASM stack frames that can be then used in the
thirdPartyErrorFilterIntegrationfor detection of first-party code.Usage:
Sentry.init({ integrations: [ // Integration order matters: wasmIntegration needs to be before thirdPartyErrorFilterIntegration wasmIntegration({ applicationKey: 'your-custom-application-key' }), ←───┐ thirdPartyErrorFilterIntegration({ │ behaviour: 'drop-error-if-exclusively-contains-third-party-frames', ├─ matching keys filterKeys: ['your-custom-application-key'] ←─────────────────────────┘ }), ], });
Other Changes
cloudflare: Support
propagateTraceparentcore: Add
ignoreSentryInternalFramesoption tothirdPartyErrorFilterIntegrationcore: Add gen_ai.conversation.id attribute to OpenAI and LangGr…
core: Add recordInputs/recordOutputs options to MCP server wrapper
core: Support IPv6 hosts in the DSN
nextjs: Emit warning for conflicting treeshaking / debug settings
nextjs: Print Turbopack note for deprecated webpack options
node-core: Add
isolateTraceoption tonode-croninstrumentationnode: Use
process.on('SIGTERM')for flushing in Vercel functionsbrowser: Forward worker metadata for third-party error filtering
browser: Reduce number of
visibilitystateandpagehidelistenersbrowser: Respect
tunnelindiagnoseSdkConnectivitycloudflare: Consume body of fetch in the Cloudflare transport
core: Set op on ended Vercel AI spans
core: Subtract
performance.now()frombrowserPerformanceTimeOriginfallbackcore: Update client options to allow explicit
undefinedfeedback: Fix cases where the outline of inputs were wrong
next: Ensure inline sourcemaps are generated for wrapped modules in Dev
next: Wrap all Random APIs with a safe runner
nextjs: Avoid Edge build warning from OpenTelemetry
process.argv0nextjs: Remove polynomial regular expression
node-core: Ignore worker threads in OnUncaughtException
node: Relax Fastify's
setupFastifyErrorHandlerargument typenuxt: Allow overwriting server-side
defaultIntegrationspino: Allow custom namespaces for
msganderrreact,solid,vue: Fix parametrization behavior for non-matched routes
replay: Ensure replays contain canvas rendering when resumed after inactivity
tracing: Add gen_ai.request.messages.original_length attributes
Internal Changes
Work in this release was contributed by @G-Rath, @gianpaj, @maximepvrt, @Mohataseem89, @sebws, and @xgedev. Thank you for your contributions!
10.32.1
19 Dec 2025Reading the note…
10.32.0
18 Dec 2025core: Apply scope attributes to logs
You can now set attributes on the SDK's scopes which will be applied to all logs as long as the respective scopes are active. For the time being, only
string,numberandbooleanattribute values are supported.Sentry.getGlobalScope().setAttributes({ is_admin: true, auth_provider: 'google' }); Sentry.withScope(scope => { scope.setAttribute('step', 'authentication'); // scope attributes `is_admin`, `auth_provider` and `step` are added Sentry.logger.info(`user ${user.id} logged in`, { activeSince: 100 }); Sentry.logger.info(`updated ${user.id} last activity`); }); // scope attributes `is_admin` and `auth_provider` are added Sentry.logger.warn('stale website version, reloading page');replay: Add Request body with
attachRawBodyFromRequestoptionTo attach the raw request body (from
Requestobjects passed as the firstfetchargument) to replay events, you can now use theattachRawBodyFromRequestoption in the Replay integration:Sentry.init({ integrations: [ Sentry.replayIntegration({ attachRawBodyFromRequest: true, }), ], });tanstackstart-react: Trace server functions
To enable tracing for server-side requests, you can now explicitly define a server entry point in your application and wrap your request handler with
wrapFetchWithSentry.// src/server.ts import { wrapFetchWithSentry } from '@sentry/tanstackstart-react'; import handler, { createServerEntry } from '@tanstack/react-start/server-entry'; export default createServerEntry( wrapFetchWithSentry({ fetch(request: Request) { return handler.fetch(request); }, }), );
Important Changes
core: Apply scope attributes to logs
You can now set attributes on the SDK's scopes which will be applied to all logs as long as the respective scopes are active. For the time being, only
string,numberandbooleanattribute values are supported.Sentry.getGlobalScope().setAttributes({ is_admin: true, auth_provider: 'google' }); Sentry.withScope(scope => { scope.setAttribute('step', 'authentication'); // scope attributes `is_admin`, `auth_provider` and `step` are added Sentry.logger.info(`user ${user.id} logged in`, { activeSince: 100 }); Sentry.logger.info(`updated ${user.id} last activity`); }); // scope attributes `is_admin` and `auth_provider` are added Sentry.logger.warn('stale website version, reloading page');replay: Add Request body with
attachRawBodyFromRequestoptionTo attach the raw request body (from
Requestobjects passed as the firstfetchargument) to replay events, you can now use theattachRawBodyFromRequestoption in the Replay integration:Sentry.init({ integrations: [ Sentry.replayIntegration({ attachRawBodyFromRequest: true, }), ], });tanstackstart-react: Trace server functions
To enable tracing for server-side requests, you can now explicitly define a server entry point in your application and wrap your request handler with
wrapFetchWithSentry.// src/server.ts import { wrapFetchWithSentry } from '@sentry/tanstackstart-react'; import handler, { createServerEntry } from '@tanstack/react-start/server-entry'; export default createServerEntry( wrapFetchWithSentry({ fetch(request: Request) { return handler.fetch(request); }, }), );vue: Add TanStack Router integration
The
@sentry/vuepackage now includes support for TanStack Router. UsetanstackRouterBrowserTracingIntegrationto automatically instrument pageload and navigation transactions with parameterized routes:import { createApp } from 'vue'; import { createRouter } from '@tanstack/vue-router'; import * as Sentry from '@sentry/vue'; import { tanstackRouterBrowserTracingIntegration } from '@sentry/vue/tanstackrouter'; const router = createRouter({ // your router config }); Sentry.init({ app, dsn: '__PUBLIC_DSN__', integrations: [tanstackRouterBrowserTracingIntegration(router)], tracesSampleRate: 1.0, });
Other Changes
core: Capture initialize attributes on MCP servers
nextjs: Extract tracing logic from server component wrapper templates
nextjs: Added webpack treeshaking flags as config
solid/tanstackrouter: Ensure web vitals are sent on pageload
Internal Changes
10.31.0
16 Dec 2025browser: Add support for GraphQL persisted operations
graphql.persisted_query.hash.sha256- The SHA-256 hash of the persisted querygraphql.persisted_query.version- The version of the persisted query protocol
Important Changes
browser: Add support for GraphQL persisted operations
The
graphqlClientIntegrationnow supports GraphQL persisted operations (queries). When a persisted query is detected, the integration will capture the operation hash and version as span attributes:graphql.persisted_query.hash.sha256- The SHA-256 hash of the persisted querygraphql.persisted_query.version- The version of the persisted query protocol
Additionally, the
graphql.documentattribute format has changed to align with OpenTelemetry semantic conventions. It now contains only the GraphQL query string instead of the full JSON request payload.Before:
"graphql.document": "{\"query\":\"query Test { user { id } }\"}"After:
"graphql.document": "query Test { user { id } }"Other Changes
node: Support
propagateTraceparentoptionbun: Expose spotlight option in TypeScript
core: Add additional exports for
captureExceptionandcaptureMessageparameter typescore: Export
captureExceptionandcaptureMessageparameter typescore: Parse individual cookies from cookie header
node: Add instrument OpenAI export to node
profiling: Add support for Node v24 in the prune script
tracing: Strip inline media from messages
node: Add ESM support for postgres.js instrumentation
browser: Stringify span context in linked traces log statement
google-cloud-serverless: Move @types/express to optional peerDeps
node-core: Passthrough node-cron context
tanstack-router: Check for
fromLocationexistence before reporting pageloadtracing: Add system prompt, model to google genai
tracing: Set span operations for AI spans with model ID only
Internal Changes
Work in this release was contributed by @sebws and @TBeeren. Thank you for your contributions!
10.30.0
11 Dec 2025- deprecated
nextjs: Deprecate Webpack top-level options
node: Capture scope when event loop blocked
aws-serverless: Remove hyphens from AWS-lambda origins
- deprecated
nextjs: Deprecate Webpack top-level options
node: Capture scope when event loop blocked
aws-serverless: Remove hyphens from AWS-lambda origins
core: Parse method from Request object in fetch
react: Add transaction name guards for rapid lazy-route navigations
Internal Changes
10.29.0
4 Dec 2025solid|solidstart: Bump accepted @solidjs/router range
logs: Add support for
msgin pino integrationnode: Include system message in anthropic-ai messages span
Important Changes
solid|solidstart: Bump accepted @solidjs/router range
We expanded the supported version range for
@solidjs/routerto include0.14.xand0.15.xversions.Other Changes
logs: Add support for
msgin pino integrationnode: Include system message in anthropic-ai messages span
tracing: Add missing attributes in vercel-ai spans
Internal Changes
10.28.0
2 Dec 2025- breaking
tanstackstart-react: Remove empty placeholder implementations
core: Make
matcherparameter optional inmakeMultiplexedTransportnextjs: Support cacheComponents on turbopack
Important Changes
core: Make
matcherparameter optional inmakeMultiplexedTransport
The
matcherparameter inmakeMultiplexedTransportis now optional with a sensible default. This makes it much easier to use the multiplexed transport for sending events to multiple DSNs based on runtime configuration.Before:
import { makeFetchTransport, makeMultiplexedTransport } from '@sentry/browser'; const EXTRA_KEY = 'ROUTE_TO'; const transport = makeMultiplexedTransport(makeFetchTransport, args => { const event = args.getEvent(); if (event?.extra?.[EXTRA_KEY] && Array.isArray(event.extra[EXTRA_KEY])) { return event.extra[EXTRA_KEY]; } return []; }); Sentry.init({ transport, // ... other options }); // Capture events with routing info Sentry.captureException(error, { extra: { [EXTRA_KEY]: [ { dsn: 'https://key1@sentry.io/project1', release: 'v1.0.0' }, { dsn: 'https://key2@sentry.io/project2' }, ], }, });After:
import { makeFetchTransport, makeMultiplexedTransport, MULTIPLEXED_TRANSPORT_EXTRA_KEY } from '@sentry/browser'; // Just pass the transport generator - the default matcher handles the rest! Sentry.init({ transport: makeMultiplexedTransport(makeFetchTransport), // ... other options }); // Capture events with routing info using the exported constant Sentry.captureException(error, { extra: { [MULTIPLEXED_TRANSPORT_EXTRA_KEY]: [ { dsn: 'https://key1@sentry.io/project1', release: 'v1.0.0' }, { dsn: 'https://key2@sentry.io/project2' }, ], }, });The default matcher looks for routing information in
event.extra[MULTIPLEXED_TRANSPORT_EXTRA_KEY]. You can still provide a custom matcher function for advanced use cases.nextjs: Support cacheComponents on turbopack
This release adds support for
cacheComponentson turbopack builds. We are working on adding support for this feature in webpack builds as well.Other Changes
Publish AWS Lambda Layer for Node 24
browser: Expose langchain instrumentation
browser: Expose langgraph instrumentation
cloudflare: Allow specifying a custom fetch in Cloudflare transport options
core: Add
isolateTraceoption toSentry.withMonitor()nextjs: Add cloudflare
waitUntildetectionnode: Add LangChain v1 support
remix: Add parameterized transaction naming for routes
cloudflare: Keep http root span alive until streaming responses are consumed
cloudflare: Wait for async events to finish
core:
continueTracedoesn't propagate given trace ID if active span existsnode-core: Handle custom scope in log messages without parameters
opentelemetry: Ensure Sentry spans don't leak when tracing is disabled
react-router: Use underscores in trace origin values
- breaking
tanstackstart-react: Remove empty placeholder implementations
Internal Changes
10.27.0
24 Nov 2025- deprecated
browserprofiling: Add
manualmode and deprecate old profilingAdds the
manuallifecycle mode for UI profiling (the default mode), allowing profiles to be captured manually withSentry.uiProfiler.startProfiler()andSentry.uiProfiler.stopProfiler(). The previous transaction-based profiling is withprofilesSampleRateis now deprecated in favor of the new UI Profiling withprofileSessionSampleRate. core: Add
gibibyteandpebibytetoInformationUnittypecore: Add scope attribute APIs
Important Changes
- deprecated
browserprofiling: Add
manualmode and deprecate old profilingAdds the
manuallifecycle mode for UI profiling (the default mode), allowing profiles to be captured manually withSentry.uiProfiler.startProfiler()andSentry.uiProfiler.stopProfiler(). The previous transaction-based profiling is withprofilesSampleRateis now deprecated in favor of the new UI Profiling withprofileSessionSampleRate.
Other Changes
core: Add
gibibyteandpebibytetoInformationUnittypecore: Add scope attribute APIs
core: Re-add
_experiments.enableLogsoptioncore: Use
maxValueLengthon error messagesnode: Add tracing support for AzureOpenAI
node: Fix local variables capturing for out-of-app frames
core: Add a PromiseBuffer for incoming events on the client
core: Always redact content of sensitive headers regardless of
sendDefaultPiimetrics: Update return type of
beforeSendMetricnextjs: Universal random tunnel path support
Internal Changes - build(deps): bump hono from 4.9.7 to 4.10.3 in /dev-packages/e2e-tests/test-applications/cloudflare-hono - chore: Add `bump_otel_instrumentations` cursor command - chore: Add external contributor to CHANGELOG.md - chore: Add external contributor to CHANGELOG.md - chore: Do not update opentelemetry - chore(angular): Add Angular 21 Support - chore(deps): bump astro from 4.16.18 to 5.15.9 in /dev-packages/e2e-tests/test-applications/cloudflare-astro - chore(dev-deps): Update some dev dependencies - ci(deps): Bump actions/create-github-app-token from 2.1.1 to 2.1.4 - ci(deps): bump actions/setup-node from 4 to 6 - ci(deps): bump actions/upload-artifact from 4 to 5 - ci(deps): bump github/codeql-action from 3 to 4 - doc(sveltekit): Update documentation link for SvelteKit guide - test(e2e): Fix astro config in test app - test(nextjs): Remove debug logs from e2e test
Work in this release was contributed by @bignoncedric and @adam-kov. Thank you for your contributions!
10.26.0
19 Nov 2025- deprecated
react-router: Deprecate ErrorBoundary exports
core: Instrument LangGraph Agent
cloudflare/vercel-edge: Add manual instrumentation for LangGraph
Important Changes
core: Instrument LangGraph Agent
Adds support for instrumenting LangGraph StateGraph operations in Node. The LangGraph integration can be configured as follows:
Sentry.init({ dsn: '__DSN__', sendDefaultPii: false, // Even with PII disabled globally integrations: [ Sentry.langGraphIntegration({ recordInputs: true, // Force recording input messages recordOutputs: true, // Force recording response text }), ], });cloudflare/vercel-edge: Add manual instrumentation for LangGraph
Instrumentation for LangGraph in Cloudflare Workers and Vercel Edge environments is supported by manually calling
instrumentLangGraph:import * as Sentry from '@sentry/cloudflare'; // or '@sentry/vercel-edge' import { StateGraph, START, END, MessagesAnnotation } from '@langchain/langgraph'; // Create and instrument the graph const graph = new StateGraph(MessagesAnnotation) .addNode('agent', agentFn) .addEdge(START, 'agent') .addEdge('agent', END); Sentry.instrumentLangGraph(graph, { recordInputs: true, recordOutputs: true, }); const compiled = graph.compile({ name: 'weather_assistant' }); await compiled.invoke({ messages: [{ role: 'user', content: 'What is the weather in SF?' }], });node: Add OpenAI SDK v6 support
Other Changes
core: Support OpenAI embeddings API
core: Support truncation for LangChain integration request messages
metrics: Add default
server.addressattribute on server runtimesnextjs: Add URL to server-side transaction events
node-core: Add mechanism to prevent wrapping ai providers multiple times
replay: Bump limit for minReplayDuration
browser: Add
okstatus to successfulidleSpanscore: Check
fetchsupport with data URLcore: Decrease number of Sentry stack frames for messages from
captureConsoleIntegrationcore: Emit processed metric
core: Ensure logs past
MAX_LOG_BUFFER_SIZEare not swallowedcore: Ensure metrics past
MAX_METRIC_BUFFER_SIZEare not swallowedcore: Fix logs and metrics flush timeout starvation with continuous logging
core: Flatten gen_ai.request.available_tools in google-genai
core: Stringify available tools sent from vercelai
core/vue: Detect and skip normalizing Vue
VNodeobjects with highnormalizeDepthnextjs: Avoid wrapping middleware files when in standalone mode
nextjs: Drop meta trace tags if rendered page is ISR
nextjs: Respect PORT variable for dev error symbolication
nextjs: Use LRU map instead of map for ISR route cache
node:
tracingChannelexport missing in older node versionsnode: Fix Spotlight configuration precedence to match specification
react: Prevent navigation span leaks for consecutive navigations
- deprecated
react-router: Deprecate ErrorBoundary exports
Internal Changes
10.25.0
11 Nov 2025browser: Include Spotlight in development bundles
cloudflare: Add metrics exports
core: Truncate request string inputs in OpenAI integration
browser: Include Spotlight in development bundles
cloudflare: Add metrics exports
core: Truncate request string inputs in OpenAI integration
metrics: Add missing metric node exports
node: Add
maxCacheKeyLengthto Redis integration (remove truncation)vercel-edge: Add metrics export
core: Only consider exception mechanism when updating session status from event with exceptions
Internal Changes
10.24.0
10 Nov 2025- breaking
metrics: Update types
metrics: Add top level option
enableMetricsandbeforeSendMetricThis PR moves
enableMetricsandbeforeSendMetricout of the_experimentsoptions. The metrics feature will now be enabled by default (none of our integrations will auto-emit metrics as of now), but you can disable sending metrics viaenableMetrics: false. Metric options within_experimentsgot deprecated but will still work as of now, they will be removed with the next major version of our SDKs.aws: Add
SENTRY_LAYER_EXTENSIONto configure using the lambda layer extension via env variables
Important Changes
metrics: Add top level option
enableMetricsandbeforeSendMetricThis PR moves
enableMetricsandbeforeSendMetricout of the_experimentsoptions. The metrics feature will now be enabled by default (none of our integrations will auto-emit metrics as of now), but you can disable sending metrics viaenableMetrics: false. Metric options within_experimentsgot deprecated but will still work as of now, they will be removed with the next major version of our SDKs.
Other Changes
aws: Add
SENTRY_LAYER_EXTENSIONto configure using the lambda layer extension via env variablescore: Include all exception object keys instead of truncating
- breaking
metrics: Update types
replay: Ignore
background-imagewhenblockAllMediais enablednextjs: Delete css map files
nextjs: Stop accessing sync props in template
Internal Changes
10.23.0
5 Nov 2025core: Send
user-agentheader with envelope requests in server SDKsbrowser: Limit transport buffer size
core: Remove default value of
maxValueLength: 250
core: Send
user-agentheader with envelope requests in server SDKsbrowser: Limit transport buffer size
core: Remove default value of
maxValueLength: 250react-router: Align options with shared build time options type
browser-utils: Cache element names for INP
browser: Capture unhandled rejection errors for web worker integration
cloudflare: Ensure types for cloudflare handlers
nextjs: Update proxy template wrapping
nuxt: Added top-level fallback exports
nuxt: Check for H3 error cause before re-capturing
replay: Linked errors not resetting session id
tracemetrics: Bump metrics buffer to 1k
vue: Make
optionsparameter optional onattachErrorHandler
Internal Changes
Add a note to save changes before starting
Work in this release was contributed by @hanseo0507. Thank you for your contribution!
10.22.0
24 Oct 2025node: Instrument cloud functions for firebase v2
We added instrumentation for Cloud Functions for Firebase v2, enabling automatic performance tracking and error monitoring. This will be added automatically if you have enabled tracing.
core: Instrument LangChain AI
Instrumentation was added for LangChain AI operations. You can configure what is recorded like this:
Sentry.init({ integrations: [ Sentry.langChainIntegration({ recordInputs: true, // Record prompts/messages recordOutputs: true, // Record responses }), ], });cloudflare,vercel-edge: Add support for LangChain instrumentation
Important Changes
node: Instrument cloud functions for firebase v2
We added instrumentation for Cloud Functions for Firebase v2, enabling automatic performance tracking and error monitoring. This will be added automatically if you have enabled tracing.
core: Instrument LangChain AI
Instrumentation was added for LangChain AI operations. You can configure what is recorded like this:
Sentry.init({ integrations: [ Sentry.langChainIntegration({ recordInputs: true, // Record prompts/messages recordOutputs: true, // Record responses }), ], });
Other Changes
cloudflare,vercel-edge: Add support for LangChain instrumentation
Align sentry origin with documentation
core: Truncate request messages in AI integrations
nextjs: Support node runtime on proxy files
node: Pass requestHook and responseHook option to OTel
core: Fix wrong async types when instrumenting anthropic's stream api
nextjs: Remove usage of chalk to avoid runtime errors
node: Pino capture serialized
errnode: Pino child loggers
react: Don't trim index route
/when getting pathnamereact: Patch
spanEndfor potentially cancelled lazy-route transactions
Internal Changes
10.21.0
21 Oct 2025browserProfiling: Add
tracelifecycle mode for UI profilingAdds a new
tracelifecycle mode for UI profiling, allowing profiles to be captured for the duration of a trace. Amanualmode will be added in a future release.nuxt: Instrument Database
Adds instrumentation for Nuxt database operations, enabling better performance tracking of database queries.
nuxt: Instrument server cache API
Adds instrumentation for Nuxt's server cache API, providing visibility into cache operations.
Important Changes
browserProfiling: Add
tracelifecycle mode for UI profilingAdds a new
tracelifecycle mode for UI profiling, allowing profiles to be captured for the duration of a trace. Amanualmode will be added in a future release.nuxt: Instrument Database
Adds instrumentation for Nuxt database operations, enabling better performance tracking of database queries.
nuxt: Instrument server cache API
Adds instrumentation for Nuxt's server cache API, providing visibility into cache operations.
nuxt: Instrument storage API
Adds instrumentation for Nuxt's storage API, enabling tracking of storage operations.
Other Changes
browser: Add
onRequestSpanEndhook to browser tracing integrationnextjs: Support Next.js proxy files
replay: Record outcome when event buffer size exceeded
cloudflare: Copy execution context in durable objects and handlers
core: Fix and add missing cache attributes in Vercel AI
core: Improve uuid performance
ember: Use updated version for
clean-cssnextjs: Don't set experimental instrumentation hook flag for next 16
nextjs: Inconsistent transaction naming for i18n routing
nextjs: Update bundler detection
Internal Changes
Work in this release was contributed by @0xbad0c0d3. Thank you for your contribution!
10.20.0
15 Oct 2025flags: Add Growthbook integration
Adds a new Growthbook integration for feature flag support.
solid: Add support for TanStack Router Solid
Adds support for TanStack Router in the Solid SDK, enabling better routing instrumentation for Solid applications.
nextjs: Support native debugIds in turbopack
Adds support for native Debug IDs in Turbopack, improving source map resolution and error tracking for Next.js applications using Turbopack. Native Debug ID generation will be enabled automatically for compatible versions.
Important Changes
flags: Add Growthbook integration
Adds a new Growthbook integration for feature flag support.
solid: Add support for TanStack Router Solid
Adds support for TanStack Router in the Solid SDK, enabling better routing instrumentation for Solid applications.
nextjs: Support native debugIds in turbopack
Adds support for native Debug IDs in Turbopack, improving source map resolution and error tracking for Next.js applications using Turbopack. Native Debug ID generation will be enabled automatically for compatible versions.
Other Changes
nextjs: Prepare for next 16 bundler default
node: Capture
pinologger namebrowser: Ignore React 19.2+ component render measure entries
nextjs: Fix createRouteManifest with basePath
react: Add
POPguard for long-runningpageloadspanstracemetrics: Send boolean for internal replay attribute
Internal Changes - chore(nextjs): Add Next.js 16 peer dependency - chore(ci): Update Next.js canary testing - chore: Bump size limit - test(nextjs): Add next@16 e2e test - test(nextjs): Update next 15 tests - chore: Add external contributor to CHANGELOG.md - chore: Add external contributor to CHANGELOG.md - chore: Add external contributor to CHANGELOG.md
Work in this release was contributed by @seoyeon9888, @madhuchavva and @thedanchez. Thank you for your contributions!
10.19.0
9 Oct 2025tracemetrics: Add trace metrics behind an experiments flag
tracemetrics: Add trace metrics behind an experiments flag
Internal Changes
10.18.0
7 Oct 2025node:
pinointegrationThis release adds a new
pinointegration for Node.js, enabling Sentry to capture logs from the Pino logging library.Remove @sentry/pino-transport package
The
@sentry/pino-transportpackage has been removed. Please use the newpinointegration in@sentry/nodeinstead.node-core: Extend onnhandledrejection with ignore errors option
Added support for selectively suppressing specific errors with configurable logging control in onnhandledrejection integration.
Important Changes
node:
pinointegrationThis release adds a new
pinointegration for Node.js, enabling Sentry to capture logs from the Pino logging library.Remove @sentry/pino-transport package
The
@sentry/pino-transportpackage has been removed. Please use the newpinointegration in@sentry/nodeinstead.node-core: Extend onnhandledrejection with ignore errors option
Added support for selectively suppressing specific errors with configurable logging control in onnhandledrejection integration.
Other Changes
core: Rename vercelai.schema to gen_ai.request.schema
core: Support stream responses and tool calls for Google GenAI
nextjs: Attach headers using client hook
core: Keep all property values in baggage header
nestjs: Add support for Symbol as event name
nuxt: Include
sentry.client.config.tsin nuxt app typesreact-router: Fix type for
OriginalHandleRequestwith middleware
Internal Changes
Work in this release was contributed by @stefanvanderwolf. Thank you for your contribution!
10.17.0
30 Sep 2025nuxt: Implement server middleware instrumentation
This release introduces instrumentation for Nuxt middleware, ensuring that all middleware handlers are automatically wrapped with tracing and error reporting functionality.
fix(aws-serverless): Take
http_proxyinto account when choosinguseLayerExtensiondefault (#17817)The default setting for
useLayerExtensionnow considers thehttp_proxyenvironment variable. Whenhttp_proxyis set,useLayerExtensionwill be off by default. If you use ahttp_proxybut would still like to make use of the Sentry Lambda extension, exemptlocalhostin ano_proxyenvironment variable.node: Split up http integration into composable parts
Important Changes
nuxt: Implement server middleware instrumentation
This release introduces instrumentation for Nuxt middleware, ensuring that all middleware handlers are automatically wrapped with tracing and error reporting functionality.
fix(aws-serverless): Take
http_proxyinto account when choosinguseLayerExtensiondefault (#17817)The default setting for
useLayerExtensionnow considers thehttp_proxyenvironment variable. Whenhttp_proxyis set,useLayerExtensionwill be off by default. If you use ahttp_proxybut would still like to make use of the Sentry Lambda extension, exemptlocalhostin ano_proxyenvironment variable.
Other Changes
node: Split up http integration into composable parts
core: Remove check and always respect ai.telemetry.functionId for Vercel AI gen spans
Internal Changes
10.16.0
29 Sep 2025logs: Add internal
replay_is_bufferingflagreact-router: Update loadContext type to be compatible with middleware
replay/logs: Only attach sampled replay Ids to logs
logs: Add internal
replay_is_bufferingflagreact-router: Update loadContext type to be compatible with middleware
replay/logs: Only attach sampled replay Ids to logs
browser: Use current start timestamp for CLS span when CLS is 0
core: Prevent
instrumentAnthropicAiClientbreaking MessageStream apinextjs: Don't use chalk in turbopack config file
react: Do not send additional navigation span on pageload
Internal Changes
10.15.0
24 Sep 2025cloudflare: Add honoIntegration with error-filtering function
This release adds a
honoIntegrationto@sentry/cloudflare, which exposes ashouldHandleErrorfunction that lets you define which errors inonErrorshould be captured. By default, Sentry captures exceptions witherror.status >= 500 || error.status <= 299.The integration is added by default, and it's possible to modify this behavior like this:
integrations: [ honoIntegration({ shouldHandleError: (err) => true; // always capture exceptions in onError }) ]node: Add instrumentation for hono handler
aws: Enable Lambda extension by default when using the Lamba layer
Important Changes
cloudflare: Add honoIntegration with error-filtering function
This release adds a
honoIntegrationto@sentry/cloudflare, which exposes ashouldHandleErrorfunction that lets you define which errors inonErrorshould be captured. By default, Sentry captures exceptions witherror.status >= 500 || error.status <= 299.The integration is added by default, and it's possible to modify this behavior like this:
integrations: [ honoIntegration({ shouldHandleError: (err) => true; // always capture exceptions in onError }) ]node: Add instrumentation for hono handler
This PR enhances the Hono integration by adding comprehensive handler instrumentation, error handling capabilities.
aws: Enable Lambda extension by default when using the Lamba layer
browser: Add
setActiveSpanInBrowserto set an active span in the browser
This PR adds a feature to the browser SDKs only: Making an inactive span active. We do this to enable use cases where having a span only being active in the callback is not practical.
Other Changes
browser: Improve handling of
0andundefinedresource timing values
Internal Changes
Work in this release was contributed by @Karibash. Thank you for your contribution!
10.14.0
23 Sep 2025cloudflare,vercel-edge: Add support for Google Gen AI instrumentation
The SDK now supports manually instrumenting Google's Gen AI operations in Cloudflare Workers and Vercel Edge Runtime environments, providing insights into your AI operations. You can use
const wrappedClient = Sentry.instrumentGoogleGenAIClient(genAiClient)to get an instrumented client.nextjs: Display updated turbopack warnings
Important Changes
cloudflare,vercel-edge: Add support for Google Gen AI instrumentation
The SDK now supports manually instrumenting Google's Gen AI operations in Cloudflare Workers and Vercel Edge Runtime environments, providing insights into your AI operations. You can use
const wrappedClient = Sentry.instrumentGoogleGenAIClient(genAiClient)to get an instrumented client.
Other Changes
nextjs: Display updated turbopack warnings
Internal Changes
10.13.0
22 Sep 2025browser: Add option to explicitly end pageload span via
reportPageLoaded()With this release you can take manual control of ending the pageload span. Usually this span is ended automatically by the SDK, based on a period of inactivity after the initial page was loaded in the browser. If you want full control over the pageload duration, you can tell Sentry, when your page was fully loaded:
Sentry.init({ //... integrations: [ // 1. Enable manual pageload reporting Sentry.browserTracingIntegration({ enableReportPageLoaded: true }), ], }); // 2. Whenever you decide the page is loaded, call: Sentry.reportPageLoaded();Note that if
Sentry.reportPageLoaded()is not called within 30 seconds of the initial pageload (or whatever value thefinalTimeoutoption is set to), the pageload span will be ended automatically.core,node: Add instrumentation for
GoogleGenAIThe SDK now automatically instruments the
@google/genaipackage to provide insights into your AI operations.nextjs: Promote
useRunAfterProductionCompileHookto non-experimental build optionThe
useRunAfterProductionCompileHookoption is no longer experimental and is now a stable build option for Next.js projects.
Important Changes
browser: Add option to explicitly end pageload span via
reportPageLoaded()With this release you can take manual control of ending the pageload span. Usually this span is ended automatically by the SDK, based on a period of inactivity after the initial page was loaded in the browser. If you want full control over the pageload duration, you can tell Sentry, when your page was fully loaded:
Sentry.init({ //... integrations: [ // 1. Enable manual pageload reporting Sentry.browserTracingIntegration({ enableReportPageLoaded: true }), ], }); // 2. Whenever you decide the page is loaded, call: Sentry.reportPageLoaded();Note that if
Sentry.reportPageLoaded()is not called within 30 seconds of the initial pageload (or whatever value thefinalTimeoutoption is set to), the pageload span will be ended automatically.core,node: Add instrumentation for
GoogleGenAIThe SDK now automatically instruments the
@google/genaipackage to provide insights into your AI operations.nextjs: Promote
useRunAfterProductionCompileHookto non-experimental build optionThe
useRunAfterProductionCompileHookoption is no longer experimental and is now a stable build option for Next.js projects.nextjs: Use
afterProductionCompilehook for webpack buildsNext.js projects using webpack can opt-in to use the
useRunAfterProductionCompileHookhook for source map uploads.nextjs: Flip default value for
useRunAfterProductionCompileHookfor Turbopack buildsThe
useRunAfterProductionCompileHookoption is now enabled by default for Turbopack builds, enabling automated source map uploads.node: Do not drop 300 and 304 status codes by default
HTTP transactions with 300 and 304 status codes are now captured by default, providing better visibility into redirect and caching behavior.
Other Changes
core: Add logger to core and allow scope to be passed log methods
core: Allow to pass
onSuccesstohandleCallbackErrorscore: Create template attributes in
consoleLoggingIntegrationnode: Add extra platforms to
oscontextbrowser: Ensure idle span duration is adjusted when child spans are ignored
core: Ensure builtin stack frames don't affect
thirdPartyErrorFilterIntegrationcore: Fix client hook edge cases around multiple callbacks
nextjs: Enable fetch span when OTel setup is skipped
node: Fix
thiscontext for vercel AI instrumentation
Internal Changes
Revert "[Gitflow] Merge master into develop"
Work in this release was contributed by @Olexandr88. Thank you for your contribution!
10.12.0
16 Sep 2025- removed
node-core: Remove experimental note from winston api
feat(node) Ensure
prismaIntegrationworks with Prisma 5browser: Add timing and status atttributes to resource spans
Important Changes
feat(node) Ensure
prismaIntegrationworks with Prisma 5
We used to require to pass in the v5 version of
@prisma/instrumentationintoprismaIntegration({ prismaInstrumentation: new PrismaInstrumentation() }), if you wanted to get full instrumentation for Prisma v5. However, it turns out this does not work on v10 of the SDK anymore, because@prisma/instrumentation@5requires OTEL v1.With this release, we dropped the requirement to configure anything to get v5 support of Prisma. You do not need to configure anything in the integration anymore, and can remove the dependency on
@prisma/instrumentation@5if you had it in your application. You only need to configure thetracingpreview feature according to our docs.Other Changes
browser: Add timing and status atttributes to resource spans
cloudflare,vercel-edge: Add support for Anthropic AI instrumentation
core: Add Consola integration
core: Export
TracesSamplerSamplingContexttypedeno: Add OpenTelemetry support and vercelAI integration
- removed
node-core: Remove experimental note from winston api
node: Ensure
prismaIntegrationworks with Prisma v5node: Tidy existing ESM loader hook
sveltekit: Align build time options with shared type
core: Fix error handling when sending envelopes
browser: Always start navigation as root span
browser: Ensure propagated
parentSpanIdstays consistent during trace in TwP modecloudflare: Initialize once per workflow run and preserve scope for
step.donextjs: Add edge polyfills for nextjs-13 in dev mode
nitro: Support nested
_platformproperties in Nitro 2.11.7+node: Preserve synchronous return behavior for streamText and other methods for AI
Internal Changes
10.11.0
9 Sep 2025aws: Add experimental AWS Lambda extension for tunnelling events
This release adds an experimental Sentry Lambda extension to the existing Sentry Lambda layer. Sentry events are now tunneled through the extension and then forwarded to Sentry. This has the benefit of reducing the request processing time.
To enable it, set
_experiments.enableLambdaExtensionin your Sentry config like this:Sentry.init({ dsn: '<YOUR_DSN>', _experiments: { enableLambdaExtension: true, }, });core: Add replay id to logs
core: Improve error handling for Anthropic AI instrumentation
Important Changes
aws: Add experimental AWS Lambda extension for tunnelling events
This release adds an experimental Sentry Lambda extension to the existing Sentry Lambda layer. Sentry events are now tunneled through the extension and then forwarded to Sentry. This has the benefit of reducing the request processing time.
To enable it, set
_experiments.enableLambdaExtensionin your Sentry config like this:Sentry.init({ dsn: '<YOUR_DSN>', _experiments: { enableLambdaExtension: true, }, });
Other Changes
core: Add replay id to logs
core: Improve error handling for Anthropic AI instrumentation
node: Add incoming request headers as OTel span attributes
astro: Ensure traces are correctly propagated for static routes
react: Remove
handleExistingNavigation
Internal Changes
10.10.0
4 Sep 2025browser: Add support for
propagateTraceparentSDK optioncore: Add tool calls attributes for Anthropic AI
nextjs: Use compiler hook for uploading turbopack sourcemaps
Important Changes
browser: Add support for
propagateTraceparentSDK option
Adds support for a new browser SDK init option,
propagateTraceparentfor attaching a W3C compliant traceparent header to outgoing fetch and XHR requests, in addition to sentry-trace and baggage headers. More details can be found here.core: Add tool calls attributes for Anthropic AI
Adds missing tool call attributes, we add gen_ai.response.tool_calls attribute for Anthropic AI, supporting both streaming and non-streaming requests.
nextjs: Use compiler hook for uploading turbopack sourcemaps
Adds a new experimental flag
_experimental.useRunAfterProductionCompileHooktowithSentryConfigfor automatic source maps uploads when building a Next.js app withnext build --turbopack. When set we:Automatically enable source map generation for turbopack client files (if not explicitly disabled)
Upload generated source maps to Sentry at the end of the build by leveraging a Next.js compiler hook.
Other Changes
feedback: Add more labels so people can configure Highlight and Hide labels
node: Add
originfor OpenAI spans & test auto instrumentation
10.9.0
3 Sep 2025node: Update
httpIntegrationhandling of incoming requestsbrowser: Add replay.feedback CDN bundle
browser: Export
sendFeedbackfrom CDN bundles
Important Changes
node: Update
httpIntegrationhandling of incoming requests
This version updates the handling of the Node SDK of incoming requests. Instead of relying on @opentelemetry/instrumentation-http, we now handle incoming request instrumentation internally, ensuring that we can optimize performance as much as possible and avoid interop problems.
This change should not affect you, unless you're relying on very in-depth implementation details. Importantly, this also drops the
_experimentalConfigoption of the integration - this will no longer do anything. Finally, you can still passinstrumentation.{requestHook,responseHook,applyCustomAttributesOnSpan}options, but they are deprecated and will be removed in v11. Instead, you can use the newincomingRequestSpanHookconfiguration option if you want to adjust the incoming request span.Other Changes
browser: Add replay.feedback CDN bundle
browser: Export
sendFeedbackfrom CDN bundlesastro: Ensure span name from
beforeStartSpanisn't overwrittenbrowser: Ensure source is set correctly when updating span name in-place in
beforeStartSpancore: Only set template attributes on logs if parameters exist
nextjs: Fix parameterization for root catchall routes
node-core: Shut down OTel TraceProvider when calling
Sentry.close()
Internal Changes
10.8.0
29 Aug 2025sveltekit: Add Compatibility for builtin SvelteKit Tracing
This release makes the
@sentry/sveltekitSDK compatible with SvelteKit's native observability support introduced in SvelteKit version2.31.0. If you enable both, instrumentation and tracing, the SDK will now initialize early enough to set up additional instrumentation like database queries and it will pick up spans emitted from SvelteKit.We will follow up with docs how to set up the SDK soon. For now, If you're on SvelteKit version
2.31.0or newer, you can easily opt into the new feature:If you prefer to stay on the hooks-file based config for now, the SDK will continue to work as previously.
react: Avoid multiple name updates on navigation spans
Important Changes
sveltekit: Add Compatibility for builtin SvelteKit Tracing
This release makes the
@sentry/sveltekitSDK compatible with SvelteKit's native observability support introduced in SvelteKit version2.31.0. If you enable both, instrumentation and tracing, the SDK will now initialize early enough to set up additional instrumentation like database queries and it will pick up spans emitted from SvelteKit.We will follow up with docs how to set up the SDK soon. For now, If you're on SvelteKit version
2.31.0or newer, you can easily opt into the new feature:Enable experimental tracing and instrumentation support in
svelte.config.js:Move your
Sentry.init()call fromsrc/hooks.server.(js|ts)to the newinstrumentation.server.(js|ts)file:// instrumentation.server.ts import * as Sentry from '@sentry/sveltekit'; Sentry.init({ dsn: '...', // rest of your config });The rest of your Sentry config in
hooks.server.ts(sentryHandleandhandleErrorWithSentry) should stay the same.
If you prefer to stay on the hooks-file based config for now, the SDK will continue to work as previously.
Other Changes
react: Avoid multiple name updates on navigation spans
Internal Changes
10.7.0
27 Aug 2025cloudflare: Add
instrumentPrototypeMethodsoption to instrument RPC methods for DurableObjects
Important Changes
cloudflare: Add
instrumentPrototypeMethodsoption to instrument RPC methods for DurableObjects
By default,
Sentry.instrumentDurableObjectWithSentrywill not wrap any RPC methods on the prototype. To enable wrapping for RPC methods, setinstrumentPrototypeMethodstotrueor, if performance is a concern, a list of only the methods you want to instrument:class MyDurableObjectBase extends DurableObject<Env> { method1() { // ... } method2() { // ... } method3() { // ... } } // Export your named class as defined in your wrangler config export const MyDurableObject = Sentry.instrumentDurableObjectWithSentry( (env: Env) => ({ dsn: "https://ac49b7af3017c458bd12dab9b3328bfc@o4508482761982032.ingest.de.sentry.io/4508482780987481", tracesSampleRate: 1.0, instrumentPrototypeMethods: ['method1', 'method3'], }), MyDurableObjectBase, );10.6.0
26 Aug 2025node: Add Anthropic AI integration
core: Instrument invoke_agent root span, and support Vercel
aiv5astro: Align options with shared build time options type
Important Changes
node: Add Anthropic AI integration
This release adds support for automatically tracing Anthropic AI SDK requests, providing better observability for AI-powered applications.
core: Instrument invoke_agent root span, and support Vercel
aiv5
This release makes the Sentry
vercelAiIntegrationcompatible with version 5 of Vercelai.The Sentry Nuxt SDK is now considered stable and no longer in beta!
Other Changes
astro: Align options with shared build time options type
aws: Add support for automatic wrapping in ESM
node: Add an instrumentation interface for Hono
browser: Use
DedicatedWorkerGlobalScopeglobal object type inregisterWebWorkercore: Only consider ingest endpoint requests when checking
isSentryRequestUrlnode: Fix preloading of instrumentation
Internal Changes
10.5.0
12 Aug 2025core: Better cause data extraction
node: Capture
SystemErrorcontext and remove paths from messagenextjs: Inject Next.js version for dev symbolication
core: Better cause data extraction
node: Capture
SystemErrorcontext and remove paths from messagenextjs: Inject Next.js version for dev symbolication
mcp-server: Add defensive patches for Transport edge cases
Internal Changes
Work in this release was contributed by @ha1fstack. Thank you for your contribution!
10.4.0
11 Aug 2025browser: Ensure IP address is only inferred by Relay if
sendDefaultPiiistruenode: Add
ignoreStaticAssetsnuxt: Do not drop parametrized routes
Important Changes
browser: Ensure IP address is only inferred by Relay if
sendDefaultPiiistrue
This release includes a fix for a behaviour change that was originally introduced with v9 of the SDK: User IP Addresses should only be added to Sentry events automatically, if
sendDefaultPiiwas set totrue.However, the change in v9 required further internal adjustment, which should have been included in v10 of the SDK. Unfortunately, the change did not make it into the initial v10 version but is now applied with
10.4.0. There is no API breakage involved and hence it is safe to update. However, after updating the SDK, events (errors, traces, replays, etc.) sent from the browser, will only include user IP addresses, if you setsendDefaultPii: truein yourSentry.initoptions.We apologize for any inconvenience caused!
node: Add
ignoreStaticAssets
This release adds a new option to
httpIntegrationto ignore requests for static assets (e.g.favicon.xmlorrobots.txt). The option defaults totrue, meaning that going forward, such requests will not be traced by default. You can still enable tracing for these requests by setting the option tofalse:Sentry.init({ integrations: [ Sentry.httpIntegration({ // defaults to true, set to false to enable traces for static assets ignoreStaticAssets: false, }), ], });Other Changes
nuxt: Do not drop parametrized routes
Internal Changes
10.3.0
8 Aug 2025core: MCP Server - Capture prompt results from prompt function calls
bun: Export
skipOpenTelemetrySetupoptionsveltekit: Streamline build logs
core: MCP Server - Capture prompt results from prompt function calls
bun: Export
skipOpenTelemetrySetupoptionsveltekit: Streamline build logs
browser: Handle data urls in errors caught by
globalHandlersIntegrationbrowser: Improve navigation vs. redirect detection
react-router: Ensure source map upload fails silently if Sentry CLI fails
react: Add support for React Router sub-routes from
handle
10.2.0
6 Aug 2025core: Add
ignoreSpansoptioncloudflare,vercel-edge: Add support for OpenAI instrumentation
astro: Streamline build logs
Important Changes
core: Add
ignoreSpansoption
This release adds a new top-level
Sentry.initoption,ignoreSpans, that can be used as follows:Sentry.init({ ignoreSpans: [ 'partial match', // string matching on the span name /regex/, // regex matching on the span name { name: 'span name', op: /http.client/, }, ], });Spans matching the filter criteria will not be recorded. Potential child spans of filtered spans will be re-parented, if possible.
cloudflare,vercel-edge: Add support for OpenAI instrumentation
Adds support for OpenAI manual instrumentation in
@sentry/cloudflareand@sentry/vercel-edge.To instrument the OpenAI client, wrap it with
Sentry.instrumentOpenAiClientand set recording settings.import * as Sentry from '@sentry/cloudflare'; import OpenAI from 'openai'; const openai = new OpenAI(); const client = Sentry.instrumentOpenAiClient(openai, { recordInputs: true, recordOutputs: true }); // use the wrapped clientThe
startTraceoption is deprecated and will be removed in a future major version. If you want to disable tracing, setSENTRY_TRACES_SAMPLE_RATEto0.0. instead. As of today, the flag does not affect traces anymore.Other Changes
astro: Streamline build logs
browser: Handles data URIs in chrome stack frames
core: Accumulate tokens for
gen_ai.invoke_agentspans from child LLM callsnuxt: Do not inject trace meta-tags on cached HTML pages
nuxt: Streamline build logs
react-router: Add support for Hydrogen with RR7
react-router: Streamline build logs
solidstart: Streamline build logs
nestjs: Add missing
sentry.originspan attribute toSentryTraceddecoratornode: Assign default export of
openaito the instrumented fnreplay: Call
sendBufferedReplayOrFlushwhen opening/sending feedback
10.1.0
4 Aug 2025nuxt: Align build-time options to follow bundler plugins structure
browser-utils: Ensure web vital client hooks unsubscribe correctly
browser: Ensure request from
diagnoseSdkConnectivitydoesn't create span
10.0.0
31 Jul 2025- breaking
Bump to OpenTelemetry v2
- breaking
browser: Remove FID web vital collection
- breaking
core: Remove
BaseClient
Version
10.0.0marks a release of the Sentry JavaScript SDKs that contains breaking changes. The goal of this release is to primarily upgrade the underlying OpenTelemetry dependencies to v2 with minimal breaking changes.How To Upgrade
Please carefully read through the migration guide in the Sentry docs on how to upgrade from version 9 to version 10. Make sure to select your specific platform/framework in the top left corner: docs.sentry.io/platforms/javascript/migration/v…
A comprehensive migration guide outlining all changes can be found within the Sentry JavaScript SDK Repository: github.com/getsentry/sentry-javascript/blob/dev…
Breaking Changes
- breaking
Bump to OpenTelemetry v2
- breaking
browser: Remove FID web vital collection
- breaking
core: Remove
BaseClient - breaking
core: Remove
enableLogsandbeforeSendLogexperimental options - breaking
core: Remove
hasTracingEnabled - breaking
core: Remove deprecated logger
- breaking
replay: Promote
_experiments.autoFlushOnFeedbackoption as default - breaking
deps: Bump bundler plugins to v4
Other Changes
astro: Implement Request Route Parametrization for Astro 5
astro: Parametrize routes on client-side
aws: Add
SentryNodeServerlessSDKv10v10 AWS Lambda Layeraws: Create unified lambda layer for ESM and CJS
aws: Detect SDK source for AWS Lambda layer
core: Add missing openai tool calls attributes
core: Add shared
flushIfServerlessfunctioncore: Implement
strictTraceContinuationcore: MCP server instrumentation without breaking Miniflare
meta: Unify detection of serverless environments and add Cloud Run
nestjs: Switch to OTel core instrumentation
node: Add
shouldHandleErroroption tofastifyIntegrationnode: Add firebase integration
node: Instrument stream responses for openai
react-router: Add
createSentryHandleErrorreact-router: Automatically flush on serverless for loaders/actions
react-router: Automatically flush on Vercel for request handlers
astro: Construct parametrized route during runtime
aws: Add layer build output to nx cache
aws: Fix path to packages directory
aws: Resolve all Sentry packages to local versions in layer build
aws: Use file link in dependency version
cloudflare: Allow non uuid workflow instance IDs
cloudflare: Avoid turning DurableObject sync methods into async
core: Fix OpenAI SDK private field access by binding non-instrumented fns
core: Fix operation name for openai responses API
core: Update ai.response.object to gen_ai.response.object
nextjs: Flush in route handlers
nextjs: Handle async params in url extraction
nextjs: Update stackframe calls for next v15.5
node: Add mechanism to
fastifyIntegrationerror handlernode: Ensure tool errors for
vercelAiIntegrationhave correct trace connectednode: Fix exports for openai instrumentation
node: Handle stack traces with data URI filenames
react: Memoize wrapped component to prevent rerenders
remix: Ensure source maps upload fails silently if Sentry CLI fails
replay: Fix re-sampled sessions after a click
svelte: Do not insert preprocess code in script module in Svelte 5
sveltekit: Align error status filtering and mechanism in
handleErrorWithSentry
Work in this release was contributed by @richardjelinek-fastest. Thank you for your contribution!
- 9.x
9.47.2
29 Sep 2026Reading the note…
9.47.1
17 Nov 2025Reading the note…
9.47.0
17 Nov 2025Reading the note…
9.46.0
13 Aug 2025Reading the note…
9.45.0
8 Aug 2025Reading the note…