Version 11.10.0 of the Sentry JavaScript SDKs instruments Cloudflare Clairic, and adds a managed tunnel that keeps your events away from ad blockers.
Cloudflare Clairic instrumentation
Calls to the Cloudflare Clairic model (@cf/cloudflare/clairic) through Workers AI now create gen_ai.extract spans. Each span records the input and output, the response model, and token usage. In the trace view, the Extraction tab highlights each extracted value in the source text. Hover a value to see the field it belongs to.

@sentry/cloudflare instruments the Workers AI binding automatically, so you do not need to change your code.
Send events through your own server with tunnel: true
Ad blockers often block requests to Sentry, so you lose errors and traces from some of your users. A tunnel sends the events through your own server first.
Set tunnel: true in the browser SDK. The SDK derives the tunnel path from your DSN, so your browser and server builds always agree on the path, also during a deploy.
// browser
Sentry.init({ dsn, tunnel: true });
// server
Sentry.init({ dsn, integrations: [Sentry.serveTunnelIntegration()] });
With serveTunnelIntegration(), Astro, Nuxt, Nitro, React Router, Remix 3, SolidStart, SvelteKit and TanStack Start answer tunnel requests automatically. For other servers, use handleTunnelRequestIfMatched from your server SDK:
app.use((req, res, next) => Sentry.handleTunnelRequestIfMatched(req, res) ?? next());
If your browser uses a different DSN than your server, add it with serveTunnelIntegration({ allowedDsns: [browserDsn] }).
This release also instruments Cloudflare Workers KV bindings and together-ai, makes sentryBunPlugin upload source maps, adds experimental support for the Nuxt Vite server, and fixes AI SDK, OpenAI, Anthropic and LangChain spans. See the release notes for all changes.