A scannable map of the open issues. Every open issue is labeled on three axes:
Priority — P0: blocker · P1: high · P2: medium · P3: low
Area — area: dev · area: deploy · area: config · area: build · area: static
Upstream status — upstream: unfiled (needs filing on cloudflare/vinext) · upstream: has-PR (a vinext PR already exists) · upstream: roadmap (tracked upstream, architectural) · upstream: app-owned (keep the app workaround; not a vinext fix)
Most of these are vinext gaps found while porting react.dev; a few are legitimately app-owned. Grouped by priority below.
🔴 P0 — Blocker
🟠 P1 — High (real bug, cheap, do soon)
🟡 P2 — Medium
🟢 P3 — Low / app-owned
Clusters (same root cause, different symptom)
Dev broken: Tracking: vinext dev is unusable for this app — every route 404s (workerd/no-fs) or 500s (dev module-runner can't CJS-interop the per-request MDX compile chain) #16 (umbrella) ← vinext dev SSR module-runner doesn't CJS-interop UMD/CJS deps (classnames window, parse-numeric-range exports) #6 (fixable root, fix: support CommonJS node_modules in Pages Router dev cloudflare/vinext#665 ). Upstream: SSR dev server fails with "module is not defined" for CJS dependencies (void-elements, highlight.js, etc.) cloudflare/vinext#585 , Pages Router: _next/data JSON endpoint not implemented cloudflare/vinext#1330 .
Deploy broken: Pages Router: getStaticProps runs per-request instead of prerendering → fs-backed SSG apps 500 on Cloudflare Workers (needs --prerender-all) #15 (root: fs read at request time) ← vinext deploy --prerender-all fails: deploy build doesn't emit prerender secret/dist → 'No build output found in dist' #17 (prerender-all), vinext deploy with a custom vite.config fails on missing cloudflare() (and the local-vs-deploy wrangler.jsonc story) #14 (cloudflare() lifecycle), Cloudflare dashboard deploy: split build + wrangler deploy conflicts with vinext — must skip build and use vinext deploy #2 (dashboard workflow). Upstream trackers: Static pre-rendering at build time cloudflare/vinext#9 , Populating remote cache during deployment cloudflare/vinext#562 , Pages Router: getServerSideProps SSR returns 500 Internal Server Error cloudflare/vinext#1458 , Pages Router: _next/data JSON endpoint not implemented cloudflare/vinext#1330 , Pages Router prerender: pages under /api-... and lazy catchall pages never finish loading cloudflare/vinext#1542 .
✅ Already fixed upstream & closed (reference)
This index is maintained by hand; update it when issues are opened/closed or change priority.
A scannable map of the open issues. Every open issue is labeled on three axes:
P0: blocker·P1: high·P2: medium·P3: lowarea: dev·area: deploy·area: config·area: build·area: staticupstream: unfiled(needs filing on cloudflare/vinext) ·upstream: has-PR(a vinext PR already exists) ·upstream: roadmap(tracked upstream, architectural) ·upstream: app-owned(keep the app workaround; not a vinext fix)Most of these are vinext gaps found while porting react.dev; a few are legitimately app-owned. Grouped by priority below.
🔴 P0 — Blocker
getStaticPropsruns per-request on Workers (no fs) → every SSG route 500s on deploy. Root of the deploy cluster; also kills client-side<Link>nav on the deploy (hard reloads). Genuine blocker but the fix is architectural — tracked upstream in Static pre-rendering at build time cloudflare/vinext#9 → Populating remote cache during deployment cloudflare/vinext#562 (populate the remote cache from prerendered assets at deploy). Same class: Pages Router:getServerSidePropsSSR returns 500 Internal Server Error cloudflare/vinext#1458 (getServerSideProps500 on Workers); Pages Router:_next/dataJSON endpoint not implemented cloudflare/vinext#1330 (_next/dataendpoint not implemented → the deploy's hard-reload nav).area: deploy·upstream: roadmap🟠 P1 — High (real bug, cheap, do soon)
baseUrlbare imports (nopaths) are not resolved → ERR_MODULE_NOT_FOUND at SSR #4 — tsconfigbaseUrlbare imports not resolved from.js/.jsxfiles. Every page 500s (Cannot find module 'components/...'). Completely untracked upstream; small self-contained fix.area: config·upstream: unfiledvinext devSSR module-runner doesn't CJS-interop UMD/CJS deps (classnameswindow, parse-numeric-rangeexports) #6 —vinext devcan't CJS/UMD-interop raw deps (classnames →window is not defined, parse-numeric-range →exports is not defined). Broadest dev bug; fix already written in fix: support CommonJS node_modules in Pages Router dev cloudflare/vinext#665 (stalled 3+ months on a 1-line Windows path fix).area: dev·upstream: has-PRvinext devunusable — 404 or 500 on every route. Two halves: the 404 (cloudflare() + no-fs in dev, already worked around by gating the plugin to deploy) and the 500 (=vinext devSSR module-runner doesn't CJS-interop UMD/CJS deps (classnameswindow, parse-numeric-rangeexports) #6). Effectively resolves oncevinext devSSR module-runner doesn't CJS-interop UMD/CJS deps (classnameswindow, parse-numeric-rangeexports) #6 lands. Upstream: SSR dev server fails with "module is not defined" for CJS dependencies (void-elements, highlight.js, etc.) cloudflare/vinext#585 + fix: support CommonJS node_modules in Pages Router dev cloudflare/vinext#665 (the CJS half); Pages Router:_next/dataJSON endpoint not implemented cloudflare/vinext#1330 (_next/data).area: dev🟡 P2 — Medium
experimental.reactCompiler: trueis silently dropped (no warning, no transform) #10 —experimental.reactCompilersilently dropped (no warn, no transform). The mechanism already ships in@vitejs/plugin-react(reactCompilerPreset).area: build·upstream: unfiled.xml/.webmanifestserved asapplication/octet-stream(missing MIME entries) #11 —.xml/.webmanifestserved asapplication/octet-stream(missing MIME entries). Trivial fix; only bites onvinext start(the CF deploy serves public files via ASSETS with correct MIME).area: static·upstream: unfiled·good first issueheaders()appends instead of overriding the defaultCache-Control(duplicate header) #12 — next.configheaders()duplicatesCache-Control/ not applied to static assets. Fully covered (with tests) by fix(prod-server): apply next.config headers() to static assets (#1551) cloudflare/vinext#1658 — a stalled draft that just needs a rebase + un-draft nudge.area: static·upstream: has-PRvinext deploy --prerender-allfails ("No build output found in dist"). Part of the deploy cluster; related prerender bug Pages Router prerender: pages under/api-...and lazy catchall pages never finish loading cloudflare/vinext#1542.area: deploy·upstream: roadmap🟢 P3 — Low / app-owned
vinext deploywith a customvite.configfails on missingcloudflare()(and the local-vs-deploy wrangler.jsonc story) #14 —vinext deployerrors on missingcloudflare()with a custom vite.config (+ the local-vs-deploy wrangler.jsonc story). Thecloudflare()-lifecycle friction behind the argv-sniff hack; notevinext deployis now deprecated in favor of@vinext/cloudflare deploy.area: deploy·upstream: unfiledwrangler deployconflicts with vinext — must skip build and usevinext deploy#2 — Cloudflare dashboard deploy: split build +wrangler deployconflicts — must skip the build step and usevinext deploy. Mostly a deploy-workflow note.area: deploy·documentationwebpackblock silently dropped → in-browser ESLint linter breaks (assert stub, esquery ESM, rule bloat) #7 — next.configwebpackblock dropped → in-browser ESLint breaks (assert stub, esquery ESM, rule bloat). Mostly app-owned: providing your own Vite polyfills is the expected workflow, and IgnorePlugin/raf/process are webpack plugins vinext intentionally skips. One narrow slice is worth filing:probeWebpackConfigdiscards already-recoveredresolve.aliaswhen thewebpack()fn later throws (e.g.require('webpack')on a Vite project).area: config·upstream: app-ownedClusters (same root cause, different symptom)
vinext devSSR module-runner doesn't CJS-interop UMD/CJS deps (classnameswindow, parse-numeric-rangeexports) #6 (fixable root, fix: support CommonJS node_modules in Pages Router dev cloudflare/vinext#665). Upstream: SSR dev server fails with "module is not defined" for CJS dependencies (void-elements, highlight.js, etc.) cloudflare/vinext#585, Pages Router:_next/dataJSON endpoint not implemented cloudflare/vinext#1330.vinext deploywith a customvite.configfails on missingcloudflare()(and the local-vs-deploy wrangler.jsonc story) #14 (cloudflare() lifecycle), Cloudflare dashboard deploy: split build +wrangler deployconflicts with vinext — must skip build and usevinext deploy#2 (dashboard workflow). Upstream trackers: Static pre-rendering at build time cloudflare/vinext#9, Populating remote cache during deployment cloudflare/vinext#562, Pages Router:getServerSidePropsSSR returns 500 Internal Server Error cloudflare/vinext#1458, Pages Router:_next/dataJSON endpoint not implemented cloudflare/vinext#1330, Pages Router prerender: pages under/api-...and lazy catchall pages never finish loading cloudflare/vinext#1542.✅ Already fixed upstream & closed (reference)
.jsoptimizeDeps scanner.cjsconfig resolve.extensionsThis index is maintained by hand; update it when issues are opened/closed or change priority.