Skip to content

fix(nextjs): Add orchestrion bundling regression tests and import.meta.url shim - #23935

Merged
s1gr1d merged 4 commits into
developfrom
sig/nextjs-orchestion-tests
Sep 3, 2026
Merged

fix(nextjs): Add orchestrion bundling regression tests and import.meta.url shim#23935
s1gr1d merged 4 commits into
developfrom
sig/nextjs-orchestion-tests

Conversation

@s1gr1d

@s1gr1d s1gr1d commented Sep 2, 2026

Copy link
Copy Markdown
Member

This is just adding the tests of the v10 PRs to make sure we don't have a regression.

Ported tests of two v10 PRs:

One test caught a real problem: the @sentry/server-utils CJS build still replaced import.meta.url with a snippet that assumes "a document global means a browser", crashing under jsdom.

"AssertionError: expected [Function] to not throw an error but 'TypeError [ERR_INVALID_URL_SCHEME]: T…' was thrown"

The v10 lazy-loading fix needs no porting: on v11, withSentryConfig lives in the separate @sentry/nextjs/config export, so importing the SDK never reaches the bundler plugins.

Fixes #23789

@s1gr1d
s1gr1d requested review from a team as code owners September 2, 2026 12:19
@s1gr1d
s1gr1d requested review from chargome, mydea and nicohrubec and removed request for a team and nicohrubec September 2, 2026 12:19
Comment thread packages/server-utils/test/orchestrion/bundlerBuildOutput.test.ts
@s1gr1d
s1gr1d marked this pull request as draft September 2, 2026 12:25
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

Path Size % Change Change
@sentry/browser 28.57 kB - -
@sentry/browser - with treeshaking flags 26.94 kB - -
@sentry/browser - with treeshaking flags tracing without tracing 26.83 kB - -
@sentry/browser (incl. Tracing) 48.87 kB - -
@sentry/browser (incl. Tracing + Span Streaming) 48.88 kB - -
@sentry/browser (incl. Tracing, Profiling) 51.8 kB - -
@sentry/browser (incl. Tracing, Replay) 88.36 kB - -
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 77.76 kB - -
@sentry/browser (incl. Tracing, Replay with Canvas) 93.05 kB - -
@sentry/browser (incl. Tracing, Replay, Feedback) 106.02 kB - -
@sentry/browser (incl. Feedback) 46.06 kB - -
@sentry/browser (incl. sendFeedback) 33.64 kB - -
@sentry/browser (incl. FeedbackAsync) 38.74 kB - -
@sentry/browser (incl. Metrics) 29.52 kB - -
@sentry/browser (incl. Logs) 29.81 kB - -
@sentry/browser (incl. Metrics & Logs) 30.45 kB - -
@sentry/react 30.32 kB - -
@sentry/react (incl. Tracing) 51.08 kB - -
@sentry/vue 35.74 kB - -
@sentry/vue (incl. Tracing) 51.14 kB - -
@sentry/svelte 28.6 kB - -
CDN Bundle 30.36 kB - -
CDN Bundle (incl. Tracing) 49.52 kB - -
CDN Bundle (incl. Logs, Metrics) 32.59 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) 51.43 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) 73.19 kB - -
CDN Bundle (incl. Tracing, Replay) 87 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) 88.88 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) 92.93 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) 94.83 kB - -
CDN Bundle - uncompressed 89.97 kB - -
CDN Bundle (incl. Tracing) - uncompressed 147.57 kB - -
CDN Bundle (incl. Logs, Metrics) - uncompressed 96.27 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed 153.26 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed 225.43 kB - -
CDN Bundle (incl. Tracing, Replay) - uncompressed 267.07 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed 272.74 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 280.77 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed 286.43 kB - -
@sentry/nextjs (client) 53.7 kB - -
@sentry/sveltekit (client) 49.3 kB - -
@sentry/core/server 40.74 kB - -
@sentry/core/browser 13.42 kB - -
@sentry/node 124.47 kB +0.02% +23 B 🔺
@sentry/node/import (ESM hook with diagnostics-channel injection) 81.51 kB - -
@sentry/node - without tracing 88.3 kB +0.03% +22 B 🔺
@sentry/node - without channel injection 103.75 kB +0.02% +18 B 🔺
@sentry/aws-serverless 96.66 kB +0.03% +22 B 🔺
@sentry/cloudflare (withSentry) - minified 200.81 kB - -
@sentry/cloudflare (withSentry) 499.76 kB - -

View base workflow run

@s1gr1d s1gr1d changed the title test(nextjs): Add orchestion bundling tests fix(nextjs): Add orchestrion bundling regression tests and import.meta.url shim Sep 2, 2026
@s1gr1d
s1gr1d marked this pull request as ready for review September 2, 2026 12:42
);
expect(serverFiles.length).toBeGreaterThan(0);

const markers = ['code-transformer-bundler-plugins', '__codeTransformerWebpackDiagnostics'];

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

l: did we verify this still is the same here on v11? Just do make sure, because we changed a bunch of stuff around these I believe.

@s1gr1d s1gr1d Sep 3, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified on v11: both are still in the build output.

  • code-transformer-bundler-plugins is the vendored directory name and appears in the require paths inside build/cjs/orchestrion/bundler/webpack.js
  • and __codeTransformerWebpackDiagnostics is still in the vendored webpack plugin

But I'm going to add a check to make sure this fails when this is renamed.

@s1gr1d
s1gr1d merged commit 1a1b643 into develop Sep 3, 2026
219 checks passed
@s1gr1d
s1gr1d deleted the sig/nextjs-orchestion-tests branch September 3, 2026 10:45
@terrymun

terrymun commented Sep 4, 2026

Copy link
Copy Markdown

Are there any plans to backport this to v10?

@s1gr1d

s1gr1d commented Sep 4, 2026

Copy link
Copy Markdown
Member Author

This is already available on the v10 branch and comes with the next release. The two PRs are also linked in the description.

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.

@sentry/nextjs 10.72.0+ throws "The URL must be of scheme file" at module scope under jsdom/happy-dom

4 participants