Skip to content

test(e2e): Add Bun, Deno and Cloudflare variants to nuxt-4 - #26285

Draft
sentry-junior[bot] wants to merge 6 commits into
developfrom
feat/nuxt-4-runtime-variants
Draft

sentry-junior[bot] wants to merge 6 commits into
developfrom
feat/nuxt-4-runtime-variants

Conversation

@sentry-junior

@sentry-junior sentry-junior Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Why: Runs the nuxt-4 suite on Node, Bun, Deno and Cloudflare from one app, following #24598 (runtime matrix key, runtime files, README convention), and folds nuxt-4-cloudflare into it. @sentry/nuxt bundles sentry.server.config.ts into the Nitro output, so Bun and Deno start .output/server/index.mjs with no preload. Their runtime config files add the @sentry/bun / @sentry/deno integrations, the same way nextjs-16 does. Cloudflare builds with cloudflare_module and sets up the SDK with sentryCloudflareNitroPlugin. New tests cover per-request isolation, incoming trace continuation, outgoing fetch with sentry-trace/baggage, logs, and POST errors. Where runtimes really differ, the suite branches on RUNTIME and says why in a comment. Bun, Deno and Cloudflare were green as optional variants on the first CI run and are now required. tunnel-basepath-cloudflare stays optional (see defect 1).

SDK fixes the variants surfaced:

  • @sentry/nuxt: db0 spans on bun-sqlite/node-sqlite (connector aliases, db.system.name from the dialect), and errors that eager connectors throw from prepare.
  • @sentry/server-utils: the orchestrion CommonJS interop unwraps Bun's function namespaces.
  • @sentry/nuxt on Cloudflare: request events get a transaction name, as node:http gives them on Node.

Runtime differences the suite asserts as they are, not as defects: D1 has no db.namespace and links its errors. Worker origin is auto.http.cloudflare. The Worker build is minified. On Deno, a startup crash exits 0. The mongoose route is a stub on Cloudflare, because Nitro's Cloudflare preset can't bundle the mongodb driver even without Sentry (its optional require('@aws-sdk/credential-providers') fails with "externals are not allowed").

Split out, not fixed here:

  1. Cloudflare managed tunnel (makes nuxt-4 (tunnel-basepath-cloudflare) fail, locally and in CI). sentryCloudflareNitroPlugin decides whether to pass the body to the tunnel handler with isServedTunnelRequest() before the per-request client exists. When no client is current outside the request, as here, the body is dropped and the app answers the tunnel (401 from the auth middleware). This happens with and without a base path. Logging in the bundle showed getClient() empty at that check, while the per-request client serves /qpo967. The old nuxt-4-cloudflare app happened to pass. This needs a design call on how to pick the body without a client, so it gets its own PR.
  2. Cloudflare meta-tag baggage has no sentry-transaction. The plugin reads the trace data when the request starts, before the route is known.
  3. Deno startup crash exits 0. The SDK's onUnhandledRejection (mode warn) catches module-evaluation errors, which Deno routes to unhandledRejection.

How to review: Start with tests/runtime.ts and the RUNTIME branches, then nuxt.config.ts and cloudflare/sentry.ts. The SDK changes are small, each with unit tests.

Unsure about: Cloudflare loses the required tunnel coverage nuxt-4-cloudflare had until defect 1 is fixed. Also, one green CI run may be too little evidence to make the runtime variants required.

Ref #24838

Local runs and CI

Local runs, all on the final SDK tarballs:

  • Node test:prod: 82 passed, 3 skipped (tunnel-only tests)
  • Bun: 82 passed, 3 skipped
  • Deno 2.9.0: 82 passed, 3 skipped
  • Cloudflare (wrangler dev): 76 passed, 9 skipped (tunnel-only tests, process spawning, mongoose, Node-only build checks)
  • Node tunnel-basepath: 3 passed. Cloudflare tunnel-basepath: 1 passed, 2 failed (defect 1)
  • @sentry/nuxt unit tests: 444 passed, 1 failed. test/vite/sourceMaps-nuxtHooks.test.ts fails on develop too. @sentry/server-utils rollup plugin tests pass. pnpm run lint and lint:types pass.

CI:

  • Every required nuxt-4 variant passes on the latest commit, including bun, deno, cloudflare and Vite server.
  • On the first run, nuxt-4 (Vite server) failed because the new server-route tests didn't skip there. The second commit fixed it.
  • On the first run, Deno Unit Tests failed once in deno-serve.test.ts. It passes on the latest run.
  • Optional: nuxt-4 (tunnel-basepath-cloudflare) fails with the same 401 as in defect 1.

via Isaac Schlueter.

--

View Session [Sentry]

Runs the nuxt-4 suite on Node, Bun, Deno and Cloudflare from one app,
following react-router-8-framework, and folds nuxt-4-cloudflare into it.

Fixes the SDK defects the variants surfaced: db0 spans and prepare errors
on bun-sqlite, Bun CommonJS namespaces in the orchestrion interop, and on
Cloudflare the missing transaction name of request events and the tracing
meta tags on cached HTML.

Ref #24838

Co-Authored-By: Isaac Schlueter <isaac.schlueter@sentry.io>
@github-actions

github-actions Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

size-limit report 📦

Compared: bffd9a2 (PR test merge using develop at d36fbf9)

Against: d36fbf9 (develop) · base run #65984

✅ Baseline matches: this diff contains only this PR's changes.

Path Size % Change Change
@sentry/browser 30.1 kB - -
@sentry/browser - with treeshaking flags 28.3 kB - -
@sentry/browser - with treeshaking flags tracing without tracing 28.2 kB - -
@sentry/browser (incl. Tracing) 52.28 kB - -
@sentry/browser (incl. Tracing + Span Streaming) 52.29 kB - -
@sentry/browser (incl. Tracing, Profiling) 55.25 kB - -
@sentry/browser (incl. Tracing, Replay) 92.82 kB - -
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 81.6 kB - -
@sentry/browser (incl. Tracing, Replay with Canvas) 97.21 kB - -
@sentry/browser (incl. Tracing, Replay, Feedback) 110.6 kB - -
@sentry/browser (incl. Feedback) 47.73 kB - -
@sentry/browser (incl. sendFeedback) 30.69 kB - -
@sentry/browser (incl. FeedbackAsync) 35.69 kB - -
@sentry/browser (incl. Metrics) 31.43 kB - -
@sentry/browser (incl. Logs) 31.71 kB - -
@sentry/browser (incl. Metrics & Logs) 32.37 kB - -
@sentry/react 32.11 kB - -
@sentry/react (incl. Tracing) 54.95 kB - -
@sentry/vue 38.3 kB - -
@sentry/vue (incl. Tracing) 55.24 kB - -
@sentry/svelte 30.12 kB - -
@sentry/remix (Remix 3 client bundle) 58.06 kB - -
CDN Bundle 31.87 kB - -
CDN Bundle (incl. Tracing) 52.7 kB - -
CDN Bundle (incl. Logs, Metrics) 34.67 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) 55.26 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) 75.7 kB - -
CDN Bundle (incl. Tracing, Replay) 90.72 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) 93.33 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) 96.09 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) 98.69 kB - -
CDN Bundle - uncompressed 92.98 kB - -
CDN Bundle (incl. Tracing) - uncompressed 155.45 kB - -
CDN Bundle (incl. Logs, Metrics) - uncompressed 101.33 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed 163.08 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed 231.43 kB - -
CDN Bundle (incl. Tracing, Replay) - uncompressed 275.6 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed 283.23 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 287.39 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed 295.01 kB - -
@sentry/nextjs (client) 58.34 kB - -
@sentry/sveltekit (client) 53.36 kB - -
@sentry/core/server 44.57 kB - -
@sentry/core/browser 13.99 kB - -
@sentry/node 149.54 kB -0.01% -4 B 🔽
@sentry/node/import (ESM hook with diagnostics-channel injection) 83.3 kB - -
@sentry/node - without tracing 88.47 kB -0.01% -7 B 🔽
@sentry/node - without channel injection 138.5 kB -0.01% -4 B 🔽
@sentry/aws-serverless 97.39 kB -0.01% -8 B 🔽
@sentry/cloudflare (withSentry) - minified 204.55 kB - -
@sentry/cloudflare (withSentry) 474.76 kB - -
@sentry/nextjs/cloudflare (withSentry) - minified 229.86 kB - -

View base workflow run

@github-actions

github-actions Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Optional E2E tests

Some optional checks were not successful. They do not block the merge. 7 not successful, 54 successful. See the run.

Check Status
❌ CI: Optional E2E Tests / E2E node-eve (orchestrion) Test (optional) Failing after 2m Details
❌ CI: Optional E2E Tests / E2E node-eve Test (optional) Failing after 2m Details
❌ CI: Optional E2E Tests / E2E nextjs-16-cacheComponents (cloudflare) Test (optional) Failing after 10m Details
❌ CI: Optional E2E Tests / E2E nextjs-orpc Test (optional) Failing after 3m Details
❌ CI: Optional E2E Tests / E2E nuxt-4 (tunnel-basepath-cloudflare) Test (optional) Failing after 1m Details
❌ CI: Optional E2E Tests / E2E node-express-send-to-sentry-static Test (optional) Failing after 3m Details
❌ CI: Optional E2E Tests / E2E node-eve (latest) Test (optional) Failing after 2m Details
Successful checks
Check Status
✅ CI: Optional E2E Tests / E2E cloudflare-workers-send-to-sentry Test (optional) Successful in 2m Details
✅ CI: Optional E2E Tests / E2E cloudflare-think Test (optional) Successful in 1m Details
✅ CI: Optional E2E Tests / E2E cloudflare-pi-durable Test (optional) Successful in 43s Details
✅ CI: Optional E2E Tests / E2E react-send-to-sentry Test (optional) Successful in 3m Details
✅ CI: Optional E2E Tests / E2E gen-ai-libraries (latest) Test (optional) Successful in 47s Details
✅ CI: Optional E2E Tests / E2E cloudflare-agent Test (optional) Successful in 46s Details
✅ CI: Optional E2E Tests / E2E astro-7-static Test (optional) Successful in 1m Details
✅ CI: Optional E2E Tests / E2E node-pi-durable Test (optional) Successful in 33s Details
✅ CI: Optional E2E Tests / E2E cloudflare-mastra Test (optional) Successful in 56s Details
✅ CI: Optional E2E Tests / E2E debug-id-sourcemaps Test (optional) Successful in 34s Details
✅ CI: Optional E2E Tests / E2E cloudflare-flue-send-to-sentry Test (optional) Successful in 2m Details
✅ CI: Optional E2E Tests / E2E nestjs-12 (bun) Test (optional) Successful in 51s Details
✅ CI: Optional E2E Tests / E2E nextjs-15 (latest) Test (optional) Successful in 4m Details
✅ CI: Optional E2E Tests / E2E astro-7 Test (optional) Successful in 1m Details
✅ CI: Optional E2E Tests / E2E gen-ai-libraries (cloudflare) Test (optional) Successful in 38s Details
✅ CI: Optional E2E Tests / E2E tanstackstart-react-cloudflare Test (optional) Successful in 34s Details
✅ CI: Optional E2E Tests / E2E cloudflare-pi-durable (latest) Test (optional) Successful in 47s Details
✅ CI: Optional E2E Tests / E2E cloudflare-think (ai v6) Test (optional) Successful in 58s Details
✅ CI: Optional E2E Tests / E2E nestjs-12 (latest) Test (optional) Successful in 51s Details
✅ CI: Optional E2E Tests / E2E nextjs-14 (latest) Test (optional) Successful in 1m Details
✅ CI: Optional E2E Tests / E2E nextjs-16 (vinext, bun) Test (optional) Successful in 1m Details
✅ CI: Optional E2E Tests / E2E nestjs-12 (deno) Test (optional) Successful in 52s Details
✅ CI: Optional E2E Tests / E2E nextjs-16 (vinext) Test (optional) Successful in 2m Details
✅ CI: Optional E2E Tests / E2E nestjs-12 (cloudflare) Test (optional) Successful in 36s Details
✅ CI: Optional E2E Tests / E2E node-fastify-6 (tracer provider) Test (optional) Successful in 43s Details
✅ CI: Optional E2E Tests / E2E nextjs-16 (cloudflare, latest) Test (optional) Successful in 2m Details
✅ CI: Optional E2E Tests / E2E nextjs-15 (turbo) Test (optional) Successful in 3m Details
✅ CI: Optional E2E Tests / E2E supabase-nextjs Test (optional) Successful in 2m Details
✅ CI: Optional E2E Tests / E2E deno (latest) Test (optional) Successful in 1m Details
✅ CI: Optional E2E Tests / E2E node-express-mcp-v1 Test (optional) Successful in 38s Details
✅ CI: Optional E2E Tests / E2E node-mastra Test (optional) Successful in 1m Details
✅ CI: Optional E2E Tests / E2E node-express-send-to-sentry Test (optional) Successful in 1m Details
✅ CI: Optional E2E Tests / E2E nuxt-5-cloudflare Test (optional) Successful in 33s Details
✅ CI: Optional E2E Tests / E2E nuxt-5-sourcemaps (static / nuxt generate) Test (optional) Successful in 35s Details
✅ CI: Optional E2E Tests / E2E node-mastra (latest) Test (optional) Successful in 1m Details
✅ CI: Optional E2E Tests / E2E node-flue (latest) Test (optional) Successful in 1m Details
✅ CI: Optional E2E Tests / E2E nextjs-16-tunnel (cloudflare) Test (optional) Successful in 1m Details
✅ CI: Optional E2E Tests / E2E nuxt-5-sourcemaps (client source maps kept) Test (optional) Successful in 40s Details
✅ CI: Optional E2E Tests / E2E nuxt-5-sourcemaps Test (optional) Successful in 41s Details
✅ CI: Optional E2E Tests / E2E nuxt-5 (tunnel-dev) Test (optional) Successful in 54s Details
✅ CI: Optional E2E Tests / E2E node-express-mcp-v2 Test (optional) Successful in 28s Details
✅ CI: Optional E2E Tests / E2E nuxt-5 (kv-cache) Test (optional) Successful in 1m Details
✅ CI: Optional E2E Tests / E2E node-openai-decisions Test (optional) Successful in 37s Details
✅ CI: Optional E2E Tests / E2E node-flue Test (optional) Successful in 1m Details
✅ CI: Optional E2E Tests / E2E node-pi-durable (latest) Test (optional) Successful in 47s Details
✅ CI: Optional E2E Tests / E2E vue-3 (no Options API) Test (optional) Successful in 1m Details
✅ CI: Optional E2E Tests / E2E react-router-7-framework-instrumentation Test (optional) Successful in 2m Details
✅ CI: Optional E2E Tests / E2E solidstart-2 Test (optional) Successful in 51s Details
✅ CI: Optional E2E Tests / E2E tanstackstart-react (latest) Test (optional) Successful in 1m Details
✅ CI: Optional E2E Tests / E2E nuxt-5 Test (optional) Successful in 2m Details
✅ CI: Optional E2E Tests / E2E tanstackstart-react-sourcemaps Test (optional) Successful in 32s Details
✅ CI: Optional E2E Tests / E2E node-fastify-6 Test (optional) Successful in 40s Details
✅ CI: Optional E2E Tests / E2E node-openai-decisions (latest) Test (optional) Successful in 28s Details
✅ CI: Optional E2E Tests / E2E gen-ai-libraries Test (optional) Successful in 45s Details

sentry-junior Bot and others added 5 commits November 11, 2026 12:39
…and require the runtime variants

The Vite server variant builds no server/ directory, like the other server
route tests note. Bun, Deno and Cloudflare passed in CI, so they move to the
required variants. The Cloudflare tunnel variant stays optional.

Co-Authored-By: Isaac Schlueter <isaac.schlueter@sentry.io>
develop's addSentryPageMetaTags now handles cached pages on Node and
Cloudflare, so the isCachedHtml helper from this branch is dropped.

Co-Authored-By: Claude <noreply@anthropic.com>
With a server config, the module adds the sentry.server plugin on every
preset. On Cloudflare, sentryCloudflareNitroPlugin already adds the page
meta tags, so cached pages got two sentry-cache-origin tags.
…r too

The prerenderer is built from the original config with the nitro-prerender
preset, so pre-rendered pages still got both plugins' meta tags.

@isaacs isaacs left a comment

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.

The title is test(e2e), but the PR changes released SDK behavior in @sentry/nuxt and @sentry/server-utils. The changelog comes from PR titles, so these changes would not show up there. The db.system.name change in packages/nuxt/src/runtime/utils/instrumentDatabase.ts line 77 is visible to users. Spans that had mysql2, planetscale, cloudflare-d1, better-sqlite3 or pglite now report mysql, sqlite or postgresql. That is correct by the OTel conventions, but it can break saved queries, alerts and dashboards that filter on the old values. Removing the sentry.server plugin on Cloudflare and the new transaction name on Cloudflare error events also change what users see.

Suggestion: Move the SDK changes into one or more fix(nuxt) / fix(server-utils) PRs that land first, with a changelog line for the db.system.name change. Then this PR stays a pure test(e2e) change. If splitting costs too much, at least retitle to fix(nuxt): ... and list the SDK changes in the description and the changelog.


The runtime-matrix approach is good. One app for four runtimes, with RUNTIME branches that each give a reason, is easier to maintain than separate apps. The new server tests (isolation, trace continuation, outgoing fetch propagation, logs) add coverage that had real gaps. The Bun and Deno setup follows the nextjs-16 convention and the README explains it well. The prepare-throws capture and the dialect-based db.system.name are correct fixes.

Concern 1 blocks the merge. The Cloudflare variant tests a setup that the SDK warns against, so its green result covers instrumentation that documented Cloudflare users do not get. It also seems to be the reason for the nitroServer.ts change, and maybe for the tunnel failure. Concerns 2 and 3 depend on how concern 1 is resolved. Concern 4 is a small but real correctness risk in code that runs on every runtime. It has a simple fix.

preset: 'cloudflare_module',
cloudflare: { nodeCompat: true, deployConfig: false },
// Sets up the SDK on Cloudflare, where the Nitro preset does not use `sentry.server.config.ts`.
plugins: ['~~/cloudflare/sentry.ts'],

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.

concern 1

The Cloudflare variant builds with sentry.server.config.ts still in the app, and adds sentryCloudflareNitroPlugin on top. The documented Cloudflare setup has no server config file. The module itself warns against this combination (packages/nuxt/src/vite/addServerConfig.ts line 170: "Found sentry.server.config.ts, but the Nitro preset targets Cloudflare, where this file is not used").

The file is "not used" for init(), but its presence still changes what the module does. In packages/nuxt/src/module.ts lines 89-102, a server config file makes the module call setupNitroServer(), which adds the db0 instrumentation, storage and cache storage instrumentation, middleware instrumentation, handler-legacy, update-route-name-legacy, the sentry.server plugin and the route detector. Without a server config file (the documented Cloudflare setup), the module only adds the tunnel plugin. I checked that addDatabaseInstrumentation, addStorageInstrumentation and addMiddlewareInstrumentation have no other call sites.

So on the Cloudflare variant, the D1 db0 spans in tests/database.test.ts and tests/database-multi.test.ts, the storage spans, the middleware spans and the route names all pass because of a config the SDK tells users to remove. A user who follows the docs does not get these spans. The suite shows them as covered on Cloudflare.

This probably also explains part of defect 1 in the description. The old nuxt-4-cloudflare app had no server config and passed its tunnel test (with an /app/ base path). The new app has the extra plugins and fails. I could not confirm this without running wrangler dev, so treat it as a lead, not a finding.

The cf6542cfb1 change in packages/nuxt/src/vite/nitroServer.ts (concern 2) exists only because of this mixed setup.

Suggestion: Decide which setup the Cloudflare variant tests.

  • If the documented setup (no server config) is the target, remove sentry.server.config.ts in the Cloudflare build, for example with a Cloudflare build-command that deletes it before nuxt build, since a runtime-specific file can replace a file but not remove it. Then skip the db0, storage and middleware tests on Cloudflare with a reason, or open an issue to add that instrumentation to the Cloudflare path. Also check whether defect 1 still happens.
  • If the mixed setup is meant to be supported (it does give Cloudflare users more instrumentation), then make that a deliberate SDK change in its own PR: change the warning in addServerConfig.ts, update the docs, and keep a variant that tests the documented setup without the server config.

Either way, the PR description should say which setup the Cloudflare variant covers.

Comment on lines +67 to +77
// On Cloudflare, `sentryCloudflareNitroPlugin` adds the meta tags and captures the errors, so this plugin would add
// them a second time.
if (isCloudflarePreset(nitro.options.preset)) {
const withoutSentryServerPlugin = <T>(plugins: T[] | undefined): T[] =>
(plugins ?? []).filter(plugin => plugin !== sentryServerPlugin);
nitro.options.plugins = withoutSentryServerPlugin(nitro.options.plugins);
// The prerenderer is built from the original config, with its own preset.
nitro.hooks.hook('prerender:config', config => {
config.plugins = withoutSentryServerPlugin(config.plugins);
});
}

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.

This drops the sentry.server plugin on every Cloudflare preset, Nitro v2 and v3. On Nitro v3 (Nuxt 5), sentryCloudflareNitroPlugin returns early from its fetch branch (packages/nuxt/src/runtime/plugins/sentry-cloudflare.server.ts lines 64-95) and never hooks render:html. In that branch, the sentry.server plugin was the only source of the sentry-trace/baggage meta tags. A Nuxt 5 app on Cloudflare that has a server config file now gets no meta tags. nuxt-5-cloudflare has no server config and no meta tag test, so CI does not catch this. The unit tests in packages/nuxt/test/vite/nitroServer.test.ts only use nitro2.

Suggestion: If concern 1 ends with "no server config on Cloudflare", revert this change, because the duplicate meta tags only happen in the mixed setup. If the change stays, limit it to Nitro v2 (!isNitroV3 && isCloudflarePreset(...)) and add a nitro3 unit test.

// export, so such a key marks a CommonJS function export on Bun.
const BROKEN_NAMESPACE_CHECK = 'Object.keys(n).length === 1';
const FIXED_NAMESPACE_CHECK = "Object.keys(n).filter(k => k !== 'module.exports').length === 1";
const FIXED_NAMESPACE_CHECK =

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.

The new Bun check unwraps any namespace whose default is a function and that has a key matching a non-enumerable own property of that function. The comment says "No ES module namespace mirrors a non-enumerable property of its default export". That is not true. An ES module with export default function plugin() {} and export const name = 'my-plugin' has a name key, and name is a non-enumerable own property of every function. I ran the patched check on that namespace in Node, and it returns true. So a CommonJS require() of such an external now gets the bare function and loses its named exports (require(x).name gives 'plugin', not 'my-plugin'). The patch runs on every runtime, not only on Bun. The risk is small, because the module needs a function default export plus a named export called name, length or prototype. But exporting name next to a default function is a known pattern for plugin packages.

Suggestion: Also require that every other key mirrors the function, which is true of Bun's namespaces and not of the false positive above. For example: typeof n.default === 'function' && Object.keys(n).every(k => k === 'default' || k === 'module.exports' || n[k] === n.default[k]) && Object.keys(n).some(k => Object.getOwnPropertyDescriptor(n.default, k)?.enumerable === false). Add the export const name case to packages/server-utils/test/orchestrion/rollup-plugin.test.ts, and correct the comment.

"label": "nuxt-4 (cloudflare)"
}
],
"optionalVariants": [

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.

Deleting nuxt-4-cloudflare removes the only required Cloudflare tunnel test. Its replacement, nuxt-4 (tunnel-basepath-cloudflare), is optional and fails. Until defect 1 is fixed, a regression in the Cloudflare managed tunnel would not block a merge. The description lists this as "unsure about".

Suggestion: Look at concern 1 first, because removing the server config may make the variant pass. If it still fails, keep the old nuxt-4-cloudflare tunnel test (or a copy of it in a required nuxt-4 variant) until the fix for defect 1 lands. Do not leave the gap open. Also link the issue for defect 1 from the optional variant, so someone moves it back to required.

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