@sentry/gatsby
11.10.0 · 28 Oct 2026MIT17.5k / weekRepositoryHomepagenpmAtom feed
In short
16 new33 fixed1 changed52 internal
Release note
Important Changes
Add a managed tunnel that the SDK derives from the DSN (#25199, #25200, #25783)
Set
tunnel: truein your browserSentry.initcall to send events through your own server. This helps when ad blockers block requests to Sentry. The browser derives the tunnel path from the DSN, so older and newer builds of your client and server always agree on the path.To serve the tunnel, add
serveTunnelIntegration()to your server SDK. Astro, Nuxt, Nitro, React Router, Remix 3, SolidStart, SvelteKit and TanStack Start then answer tunnel requests automatically:// browser Sentry.init({ dsn, tunnel: true }); // server Sentry.init({ dsn, integrations: [Sentry.serveTunnelIntegration()] });If the browser uses a different DSN than the server, set
serveTunnelIntegration({ allowedDsns: [browserDsn] }). For other setups, the server SDKs exporthandleTunnelRequestIfMatched,handleTunnelRequest,isTunnelRequestandgetTunnelPath:app.use((req, res, next) => Sentry.handleTunnelRequestIfMatched(req, res) ?? next());
The
requestoption ofhandleTunnelRequestis deprecated and will be removed in v12.Make span origins spec compliant
Some span origins changed their names to follow the trace origin spec:
auto.amqplib.*is nowauto.queue.amqplib.*, andauto.kafkajs.*is nowauto.queue.kafkajs.*.auto.vercelai.channelis nowauto.ai.vercelai.auto.firebase.firestoreis nowauto.db.firebase.firestore, andauto.firebase.functionsis nowauto.function.firebase.auto.aws.aws_sdkis nowauto.{rpc,db,queue,ai}.aws_sdk, with the category from the span op.auto.aws_lambdais nowauto.function.aws_serverless.auto.mcp.notificationis nowauto.function.mcp_server.notification.auto.db.cloudflare.durable_object.sqlis nowauto.db.cloudflare.durable_object_sql.auto.http.browser.{lcp,cls,inp}is nowauto.ui.browser.{lcp,cls,inp}.
If you have
ignoreSpansrules, queries or alerts on the old origins, change them to use the new origins.bun: Add incoming request options and request sessions to
bunServerIntegrationbunServerIntegrationnow accepts the same options asdenoServeIntegration:ignoreRequestBody,ignoreIncomingRequests,ignoreStaticAssets,spans,onSpanCreated,onSpanEnd,sessionsandsessionFlushingDelayMS. The callbacks receive the webRequest.Bun.servenow records a request session for each incoming request. Sessions are sent only when areleaseis set. To turn them off, setbunServerIntegration({ sessions: false }).ignoreStaticAssetsdefaults totrue, soBun.serveno longer creates spans forGETrequests to common static assets such asfavicon.ico,robots.txtor*.jsfiles. To keep these spans, setbunServerIntegration({ ignoreStaticAssets: false }).Bun.servespans also follow the client's tracing configuration by default, so the integration does not start spans when tracing is disabled. Errors thrown forOPTIONSandHEADrequests are now captured.bun: Inject debug IDs and upload source maps in
sentryBunPluginsentryBunPluginfrom@sentry/bun/pluginnow accepts the same options assentryEsbuildPlugin(org,project,authToken,release,sourcemaps, ...). WhenBun.buildwrites source maps tooutdir, the plugin injects the debug ID that Bun writes into each bundle, injects the release, and uploads the source maps at the end of the build. You no longer need to runsentry sourcemap injectandsentry sourcemap uploadafter the build.Like the other bundler plugins,
sentryBunPluginnow sends build telemetry and injects the release it detects (for example, from git). To turn off telemetry, settelemetry: false.cloudflare: Add incoming request span options to
httpServerIntegrationCloudflare's
httpServerIntegrationnow acceptsignoreIncomingRequests,ignoreStaticAssets,spans,onSpanCreatedandonSpanEnd, with the same meaning as in the Node, Deno and Bun integrations. The callbacks receive the webRequest.ignoreStaticAssetsdefaults totrue, so workers no longer create spans forGETrequests to common static assets such asfavicon.ico,robots.txtor*.jsfiles. To keep these spans, sethttpServerIntegration({ ignoreStaticAssets: false }). Request spans also follow the client's tracing configuration by default, so the SDK does not start them when tracing is disabled. IfignoreRequestBodythrows, the request no longer fails, and the SDK skips the body.cloudflare: Let users configure the channel integrations
When the
@sentry/cloudflare/viteplugin bundles an instrumented package (for examplepgoropenai), the SDK adds the matching integration with its default options.@sentry/cloudflarenow exports these integrations, so you can set their options, for example ininstrument.server.ts:export default Sentry.defineCloudflareOptions(env => ({ dsn: env.SENTRY_DSN, integrations: [Sentry.openAIIntegration({ recordInputs: false, recordOutputs: false })], }));These integrations need the vite plugin. Without it, they record nothing, and with
debug: truethe SDK logs a warning.node: Add
onSpanEndtohttpIntegrationhttpIntegrationandhttpServerSpansIntegrationnow acceptonSpanEnd, a hook that runs when the response for an incoming request finishes, before its span ends. Use it to change the span based on the response. Deno and Bun already have this option.node, bun, deno, cloudflare: Align portable exports across server SDKs
Node, Bun, Deno and Cloudflare now export the same helpers from
@sentry/coreand@sentry/server-utilswhere they work on that runtime:Node and Bun now export
moduleMetadataIntegration,instrumentPostgresJsSql,instrumentCreateReactAgent,awsIntegrationand theFlueOptionstype.awsIntegrationwas already in their default integrations.Deno and Cloudflare now export
parameterizeandinstrumentStateGraphCompile.Bun and Cloudflare now export the
LogandLogSeverityLeveltypes.Deno now exports
fastifyIntegration, which was already in its default integrations.
nuxt: Start the server SDK on the Nuxt Vite server (experimental)
Sentry now supports Node.js production builds using Nuxt 4.6's experimental Vite server (
server: { builder: 'vite' }). Yoursentry.server.configloads automatically, enabling request tracing and automatic database spans for supported libraries.Development mode, Cloudflare, automatic capture of server rendering errors, and connecting server and browser traces via HTML meta tags are not yet supported. This experimental support may change in minor releases.
Other Changes
Export the Node bundler plugins from SDKs that wrap @sentry/node
cloudflare: Instrument Workers KV bindings
nextjs: Warn when Next.js production builds miss the instrumentation file
react-router: Support renderToReadableStream in createSentryHandleRequest
server-utils: Emit
execute_toolspans for Anthropic'sbeta.sessions.events.toolRunner()server-utils: Record Workers AI Clairic calls as gen_ai.extract spans
server-utils: Instrument together-ai 1.x
browser: Preserve empty stacks in continuous profiles
browser: Resolve request URLs against location.href in tracing
build: Make CJS re-exports visible to Node ESM imports
bun: Add systemErrorIntegration to default integrations
cloudflare: Bind a default re-export with
varin the Vite transformcloudflare: Do not add back channel integrations the user removed
cloudflare: Skip comments when locating the
defaultkeyword in the Vite transformcore: Allow project arrays in framework build options
core: Drop sampled-out errors before they take a promise buffer slot
core: End node:http client spans when the response is destroyed
core: Preserve AI proxy property references
core: Resolve relative URLs when enhancing fetch error messages
feedback: Wait for frames without the form before capturing the screenshot
hono: Make the Hono middleware types compile on Hono 5
node: Flush buffered streamed spans on process exit
node: Read module versions from the isolated layouts of pnpm and Bun
node: Set the eve conversation id on model.started for eve 0.84+
node: Skip spans for outgoing requests to Sentry via
undicifetch andnode:httpnode: Use the request method for Hapi routes with multiple methods
nuxt,nitro: Accept Nitro 3 betas without narrowing peer support
opentelemetry: Convert OpenTelemetry performance.now() timestamps
react: Avoid double slashes in manifest route names
react: Parameterize React Router transactions with encoded params
remix: Drop Remix 3 release candidates from the peer range
replay: Apply attribute masking to breadcrumb messages
server-utils: Cap the runs the LangChain callback handler keeps open
server-utils: Keep OpenAI streamed tool calls that have no index
server-utils: Keep OpenRouter evaluation confidence and legend on Vercel AI spans
server-utils: Nest Flue runs on Node under the request that dispatched them
server-utils: Record AI SDK tool spans for tools run outside its tool loop
server-utils: Use cumulative input and cache token counts from streamed message_delta
server-utils: Use the stored pi-durable session id as conversation id
tanstackstart-react: Unminify server errors in Nitro builds
Internal Changes
Remove permissions from settings.json
Work in this release was contributed by @4ktLuffy, @faizansaiyed123, @itisrmk, @kunal649, @kyrylolvov, @larcane97, @lfantone, @pcbeingused333, @psh4607, and @seongwon030. Thank you for your contributions!
Bundle size
| Path | Size |
|---|---|
| @sentry/browser | 29.63 KB |
| @sentry/browser - with treeshaking flags | 27.79 KB |
| @sentry/browser - with treeshaking flags tracing without tracing | 27.69 KB |
| @sentry/browser (incl. Tracing) | 51.37 KB |
| @sentry/browser (incl. Tracing + Span Streaming) | 51.38 KB |
| @sentry/browser (incl. Tracing, Profiling) | 54.24 KB |
| @sentry/browser (incl. Tracing, Replay) | 90.64 KB |
| @sentry/browser (incl. Tracing, Replay) - with treeshaking flags | 79.52 KB |
| @sentry/browser (incl. Tracing, Replay with Canvas) | 95.25 KB |
| @sentry/browser (incl. Tracing, Replay, Feedback) | 107.93 KB |
| @sentry/browser (incl. Feedback) | 46.77 KB |
| @sentry/browser (incl. sendFeedback) | 34.59 KB |
| @sentry/browser (incl. FeedbackAsync) | 39.57 KB |
| @sentry/browser (incl. Metrics) | 30.61 KB |
| @sentry/browser (incl. Logs) | 30.89 KB |
| @sentry/browser (incl. Metrics & Logs) | 31.55 KB |
| @sentry/react | 31.4 KB |
| @sentry/react (incl. Tracing) | 53.61 KB |
| @sentry/vue | 37.7 KB |
| @sentry/vue (incl. Tracing) | 54.2 KB |
| @sentry/svelte | 29.66 KB |
| @sentry/remix (Remix 3 client bundle) | 56.3 KB |
| CDN Bundle | 31.32 KB |
| CDN Bundle (incl. Tracing) | 51.86 KB |
| CDN Bundle (incl. Logs, Metrics) | 33.47 KB |
| CDN Bundle (incl. Tracing, Logs, Metrics) | 53.76 KB |
| CDN Bundle (incl. Replay, Logs, Metrics) | 73.92 KB |
| CDN Bundle (incl. Tracing, Replay) | 89.09 KB |
| CDN Bundle (incl. Tracing, Replay, Logs, Metrics) | 90.99 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) | 95.08 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) | 97.02 KB |
| CDN Bundle - uncompressed | 92.1 KB |
| CDN Bundle (incl. Tracing) - uncompressed | 153.62 KB |
| CDN Bundle (incl. Logs, Metrics) - uncompressed | 98.5 KB |
| CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed | 159.45 KB |
| CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed | 226.91 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed | 272.39 KB |
| CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed | 278.21 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed | 285.77 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed | 291.58 KB |
| @sentry/nextjs (client) | 56.39 KB |
| @sentry/sveltekit (client) | 51.82 KB |
| @sentry/core/server | 43.26 KB |
| @sentry/core/browser | 13.62 KB |
| @sentry/node | 151.41 KB |
| @sentry/node/import (ESM hook with diagnostics-channel injection) | 79.75 KB |
| @sentry/node - without tracing | 93.52 KB |
| @sentry/node - without channel injection | 132.48 KB |
| @sentry/aws-serverless | 101.5 KB |
| @sentry/cloudflare (withSentry) - minified | 193.25 KB |
| @sentry/cloudflare (withSentry) | 480.29 KB |
| @sentry/nextjs/cloudflare (withSentry) - minified | 213.35 KB |