Skip to content

fix(nextjs): Skip init inside a request of @sentry/cloudflare - #24996

Draft
JPeer264 wants to merge 1 commit into
jp/cloudflare-keep-otel-async-context-strategyfrom
jp/nextjs-skip-init-in-cloudflare-request
Draft

JPeer264 wants to merge 1 commit into
jp/cloudflare-keep-otel-async-context-strategyfrom
jp/nextjs-skip-init-in-cloudflare-request

Conversation

@JPeer264

@JPeer264 JPeer264 commented Oct 2, 2026

Copy link
Copy Markdown
Member

Next.js calls register() inside the first request. When the Worker is wrapped with withSentry from @sentry/cloudflare, the server and edge init installed the OpenTelemetry async context strategy on the storage of that running request, and every later request failed with context.getValue is not a function (#24603).

On Workers, init now creates no client while a request of withSentry runs, because that client already handles the request. The SDK detects this from the installed strategy (AsyncLocalStorage, a store is set, Cloudflare-Workers user agent) instead of a new option, so existing setups need no change. The server init still adds its global event processors and the turbopack tag, which also apply to the events of the Cloudflare client.

🤖 Generated with Claude Code

Next.js calls `register()` inside the first request. When the Worker is
wrapped with `withSentry` from `@sentry/cloudflare`, the server and edge
`init` then installed the OpenTelemetry async context strategy on the storage
of that request, and every later request failed with
`context.getValue is not a function`.

On Cloudflare Workers, `init` now creates no client while a request of
`withSentry` from `@sentry/cloudflare` runs, because that client already
handles the request. The server `init` still adds the global event
processors and the turbopack tag.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

⚠️ Warning: Base artifact is not the latest one, because the latest workflow run is not done yet. This may lead to incorrect results. Try to re-run all tests to get up to date results.

Path Size % Change Change
@sentry/browser 29.52 kB - -
@sentry/browser - with treeshaking flags 27.68 kB - -
@sentry/browser - with treeshaking flags tracing without tracing 27.57 kB - -
@sentry/browser (incl. Tracing) 51.45 kB - -
@sentry/browser (incl. Tracing + Span Streaming) 51.46 kB - -
@sentry/browser (incl. Tracing, Profiling) 54.46 kB - -
@sentry/browser (incl. Tracing, Replay) 91.04 kB - -
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 80.03 kB - -
@sentry/browser (incl. Tracing, Replay with Canvas) 95.74 kB - -
@sentry/browser (incl. Tracing, Replay, Feedback) 108.71 kB - -
@sentry/browser (incl. Feedback) 47.04 kB - -
@sentry/browser (incl. sendFeedback) 34.57 kB - -
@sentry/browser (incl. FeedbackAsync) 39.68 kB - -
@sentry/browser (incl. Metrics) 30.54 kB - -
@sentry/browser (incl. Logs) 30.82 kB - -
@sentry/browser (incl. Metrics & Logs) 31.48 kB - -
@sentry/react 31.36 kB - -
@sentry/react (incl. Tracing) 53.8 kB - -
@sentry/vue 37.51 kB - -
@sentry/vue (incl. Tracing) 54.33 kB - -
@sentry/svelte 29.55 kB - -
@sentry/remix (Remix 3 client bundle) 55.77 kB - -
CDN Bundle 31.22 kB - -
CDN Bundle (incl. Tracing) 51.98 kB - -
CDN Bundle (incl. Logs, Metrics) 33.46 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) 53.91 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) 74.2 kB - -
CDN Bundle (incl. Tracing, Replay) 89.56 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) 91.53 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) 95.72 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) 97.71 kB - -
CDN Bundle - uncompressed 92.14 kB - -
CDN Bundle (incl. Tracing) - uncompressed 154.49 kB - -
CDN Bundle (incl. Logs, Metrics) - uncompressed 98.71 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed 160.45 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed 228.28 kB - -
CDN Bundle (incl. Tracing, Replay) - uncompressed 274.22 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed 280.16 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 287.93 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed 293.86 kB - -
@sentry/nextjs (client) 56.32 kB - -
@sentry/sveltekit (client) 51.87 kB - -
@sentry/core/server 40.59 kB - -
@sentry/core/browser 13.63 kB - -
@sentry/node 144.68 kB +0.01% +9 B 🔺
@sentry/node/import (ESM hook with diagnostics-channel injection) 83.2 kB - -
@sentry/node - without tracing 93.24 kB +0.02% +10 B 🔺
@sentry/node - without channel injection 122.95 kB +0.01% +8 B 🔺
@sentry/aws-serverless 101.51 kB +0.01% +5 B 🔺
@sentry/cloudflare (withSentry) - minified 208.72 kB +0.06% +106 B 🔺
@sentry/cloudflare (withSentry) 518.61 kB +0.08% +401 B 🔺

View base workflow run

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant