You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Nuxt projects scaffolded by C3 fail to start in local dev when the compatibility date is 2026-08-04 or later:
✘ [ERROR] service core:user:<name>: The compatibility flag nodejs_compat became the default as of 2026-08-04 so does not need to be specified anymore.
✘ [ERROR] The Workers runtime failed to start. There was likely a problem with the workerd binary or your configuration.
All four nuxt:* C3 e2e framework tests have been quarantined in #15123 to unblock the workerd bump. This issue tracks the real fix.
Root cause
As of workerd 1.20260804.x, nodejs_compat and nodejs_compat_v2 carry $compatEnableDate("2026-08-04") in compatibility-date.capnp — they are enabled by default from that date, and specifying them explicitly is a hard error.
Nitro's Cloudflare preset unconditionally adds nodejs_compat to the wrangler config it generates (nitropack@2.13.4, dist/presets/cloudflare/utils.mjs:256):
It writes that config into the build output and points wrangler at it via a .wrangler/deploy/config.json redirect:
Using redirected Wrangler configuration.
- Configuration being used: "dist/_worker.js/wrangler.json"
- Original user's configuration: "wrangler.jsonc"
- Deploy configuration file: ".wrangler/deploy/config.json"
C3's own wrangler.jsonc templates are clean — they no longer specify nodejs_compat — but nitro's generated config takes precedence, so users cannot fix this from their own config.
Note that nodeCompat is auto-enabled by nitro whenever deployConfig is set, so this applies even to projects that never asked for Node.js compatibility explicitly.
Impact
Any Nuxt (or other Nitro-based) project on Cloudflare with compatibility_date >= 2026-08-04 running workerd >= 1.20260804.x.
Confirmed on Nuxt 4.5.2 / nuxi 3.37.0 / Nitro 2.13.4, for both --platform pages and --platform workers.
Observed in local dev (wrangler dev / preview). The control plane applies the same validation, so wrangler deploy is expected to be affected as well — the flag is written into the config that is actually deployed. Worth confirming explicitly as part of the fix.
Repro
pnpm create cloudflare@latest my-nuxt-app --framework=nuxt --platform=workers
cd my-nuxt-app
pnpm run preview
Sanitise in wrangler/miniflare — drop redundant nodejs_compat/nodejs_compat_v2 before handing flags to workerd. Miniflare already performs this kind of sanitisation for duplicate flags in packages/miniflare/src/plugins/core/index.ts. This was considered and deliberately deferred in Bump the workerd-and-workers-types group across 1 directory with 2 updates #15123 to avoid masking a config error that users can normally fix themselves, and because it would need to cover the deploy path too, not just local dev.
Pin the compatibility date in C3's Nuxt templates below 2026-08-04 — stop-gap only; does not help existing projects.
Reverting the quarantine
Remove quarantine: true from the four nuxt:* entries in packages/create-cloudflare/e2e/tests/frameworks/test-config.ts.
Summary
Nuxt projects scaffolded by C3 fail to start in local dev when the compatibility date is
2026-08-04or later:All four
nuxt:*C3 e2e framework tests have been quarantined in #15123 to unblock the workerd bump. This issue tracks the real fix.Root cause
As of workerd
1.20260804.x,nodejs_compatandnodejs_compat_v2carry$compatEnableDate("2026-08-04")incompatibility-date.capnp— they are enabled by default from that date, and specifying them explicitly is a hard error.Nitro's Cloudflare preset unconditionally adds
nodejs_compatto the wrangler config it generates (nitropack@2.13.4,dist/presets/cloudflare/utils.mjs:256):It writes that config into the build output and points wrangler at it via a
.wrangler/deploy/config.jsonredirect:C3's own
wrangler.jsonctemplates are clean — they no longer specifynodejs_compat— but nitro's generated config takes precedence, so users cannot fix this from their own config.Note that
nodeCompatis auto-enabled by nitro wheneverdeployConfigis set, so this applies even to projects that never asked for Node.js compatibility explicitly.Impact
Any Nuxt (or other Nitro-based) project on Cloudflare with
compatibility_date >= 2026-08-04running workerd>= 1.20260804.x.Confirmed on Nuxt 4.5.2 / nuxi 3.37.0 / Nitro 2.13.4, for both
--platform pagesand--platform workers.Observed in local dev (
wrangler dev/ preview). The control plane applies the same validation, sowrangler deployis expected to be affected as well — the flag is written into the config that is actually deployed. Worth confirming explicitly as part of the fix.Repro
pnpm create cloudflare@latest my-nuxt-app --framework=nuxt --platform=workers cd my-nuxt-app pnpm run previewPossible fixes
nodejs_compatwhen the resolved compatibility date is before2026-08-04. Filed upstream as [cloudflare] Generated wrangler config specifies nodejs_compat, which workerd rejects for compatibility dates from 2026-08-04 nitrojs/nitro#4527.nodejs_compat/nodejs_compat_v2before handing flags to workerd. Miniflare already performs this kind of sanitisation for duplicate flags inpackages/miniflare/src/plugins/core/index.ts. This was considered and deliberately deferred in Bump the workerd-and-workers-types group across 1 directory with 2 updates #15123 to avoid masking a config error that users can normally fix themselves, and because it would need to cover the deploy path too, not just local dev.2026-08-04— stop-gap only; does not help existing projects.Reverting the quarantine
Remove
quarantine: truefrom the fournuxt:*entries inpackages/create-cloudflare/e2e/tests/frameworks/test-config.ts.