Repository navigation
Cannot upload Cloudflare worker.js sourcemaps when using OpenNext #19213
Description
Is there an existing issue for this?
- I have checked for existing issues https://github.com/getsentry/sentry-javascript/issues
- I have reviewed the documentation https://docs.sentry.io/
- I am using the latest SDK release https://github.com/getsentry/sentry-javascript/releases
How do you use Sentry?
Sentry Saas (sentry.io)
Which SDK are you using?
@sentry/nextjs
SDK Version
10.34.0
Framework Version
Next 15.5.9 (OpenNext + Cloudflare Workers)
Link to Sentry event
https://dogs-unleashed-ab.sentry.io/issues/93718351/events/f3276ea43fa8497c8d2ff2f00fa645eb/
Reproduction Example/SDK Setup
App is a Next 15.5.9 Pages app deployed via OpenNext to Cloudflare Workers.
Setup summary:
- Build:
opennextjs-cloudflare build - Wrangler build output:
wrangler deploy --outdir .wrangler-sourcemaps --upload-source-maps ... - Debug IDs injected:
sentry-cli sourcemaps inject .wrangler-sourcemaps - Upload:
sentry-cli sourcemaps upload --debug-id-reference --rewrite .wrangler-sourcemaps - Worker deployed using the same bundle (no re-bundling):
wrangler deploy .wrangler-sourcemaps/worker.js --no-bundle ...
Artifacts are uploaded and visible in Sentry, including ~/worker.js and ~/worker.js.map with Debug IDs.
Steps to Reproduce
- Deploy Next 15.5.9 using OpenNext on Cloudflare Workers.
- Generate + upload sourcemaps for
worker.jswith Debug IDs (sentry-cli inject + upload). - Trigger an error in
getServerSideProps.
Expected Result
Readable stack traces mapped to original source (e.g., pages/sentry-server-test.tsx).
Actual Result
Sentry still shows worker.js frames and says:
- “Stack frame doesn’t have Debug IDs”
- “Uploaded files not deployed”
Example (screenshot):
Additional Context
I can confirm:
- Debug IDs exist in
worker.jsandworker.js.map. - The deployed worker file is the same artifact used for upload.
- Sentry release is set and consistent.
Seems like the runtime frames in the event don’t include Debug IDs, even though the bundle contains them. Is @sentry/nextjs (or OpenNext) stripping debug ID metadata in the runtime stack frames for Cloudflare Workers?
Priority
React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it.
Metadata
Metadata
Assignees
Labels
Projects
- StatusShow more project fieldsNo status
Activity
linear commentedon Feb 6, 2026
JS-1655
andreiborza commentedon Feb 6, 2026
Hey @Livijn, thanks for raising this as a follow up.
@logaretm I assigned you since you were looking into it.
jcohenho commentedon Feb 9, 2026
@logaretm I am also experiencing this in my NextJS + SST setup:
If I try to deploy with
withSentryConfig(nextConfig, {...})enabled innext.config.js, I get the following error:logaretm commentedon Feb 9, 2026
@jcohenho could you create a new issue for this to avoid hijacking the original issue here?
12 remaining items
logaretm commentedon Feb 11, 2026
Yep, I created this opennextjs/opennextjs-cloudflare#1124 moments ago
jcohenho commentedon May 17, 2026
@logaretm I created the separate issue here
FriendlyCityJohnstown commentedon Aug 22, 2026
Possible root cause, and it looks like it sits upstream of the SDK.
@opennextjs/cloudflarenever emits a source map from its server bundling pass. In v1.20.2 (current latest),dist/cli/build/bundle-server.jscalls esbuild withbundle,outfile,format,target,minify*,legalComments,metafileandconditions— nosourcemap.grep -rni "sourcemap"over the entire installed package returns nothing, and there is no config option to turn it on.So the chain is already broken before Sentry is involved:
Injecting Debug IDs into the final bundle and uploading its map does produce a valid, self-consistent artifact — which matches the report here that the IDs are demonstrably present in both
worker.jsandworker.js.map, and that the deployed artifact matches the uploaded one. But that map only describes the wrangler pass. There is no map carrying positions back through the OpenNext pass to.next/server/*, so frames cannot resolve to original source regardless of what the SDK does.If that holds, the fix likely needs to land in
opennextjs-cloudflarerather than in@sentry/nextjs. I've filed it there as opennextjs/opennextjs-cloudflare#1352 asking for source-map emission from that pass.Observed on
next16.2.12 /@opennextjs/cloudflare1.20.2 /@sentry/nextjs10.63.0.