Duplicates
Latest version
Current behavior 😯
In dev, a page that statically imports a few hundred ES modules makes the browser tab hang and then the renderer crash (DevTools: "Render process gone") after only ~7-8 reloads of the same tab. It reproduces with trivial, dependency-free modules, so the trigger is the number of modules per page, not any particular library. Reproduced on SolidStart 1.3.2 (Vinxi 0.5.11) and 2.0.0-alpha.2 (@solidjs/vite-plugin-nitro-2 0.1.0).
Expected behavior 🤔
Reloading a dev page any number of times should not hang or crash the browser; each navigation should release the previous document's modules.
Steps to reproduce 🕹
Repo: https://github.com/apudiu/solidstart-reload-hang
git clone https://github.com/apudiu/solidstart-reload-hang
cd solidstart-reload-hang
bun install
bun run dev # generates 160 trivial modules, then starts the dev server
- Open http://localhost:3000 in Google Chrome.
- Reload (Ctrl/Cmd+R) repeatedly in the same tab, letting each load finish ? about 8 times.
- Around the 7th-8th reload the tab stops rendering: spinner / blank page, the Network panel shows every module request stuck at
pending (0 B, never resolves), and shortly after the renderer crashes ? the page goes unresponsive and DevTools reports "Render process gone".
- Opening the same URL in a new tab works ? only the repeatedly-reloaded tab dies.
Tune the count to see the threshold:
MODULES=50 bun run dev # ~50 modules -> survives 15+ reloads
MODULES=160 bun run dev # ~160 modules -> dies at ~7 reloads (default)
The 160 modules are trivial one-liners (export default () => <span/>) generated by scripts/generate-modules.mjs and rendered in src/routes/index.tsx via import.meta.glob.
We hit this originally in a real app, not by contriving a module count: a single import from an in-house Kobalte-based UI barrel (index.ts full of export *) transitively pulled the whole kit (~18 components + Kobalte/corvu/solid-sonner), which in dev is served as ~150 small ESM modules ? so a plain login page was ~150 modules. Real dev apps routinely serve 300-1000+ modules per page, so ~160 is on the low end.
Actual
The tab hangs and the renderer crashes; how soon scales with the page's module count (160 ? ~7 reloads; 50 ? survives 15+). This points to per-tab state accumulating across same-origin reloads that isn't released on navigation. During the hang the dev server stays healthy ? curl / returns 200 in milliseconds and a fresh tab loads normally ? so it's the browser renderer, not the server.
Context 🔦
What we've ruled out
- Not a specific library ? reproduces with trivial, zero-dependency modules; not barrel files specifically.
- Not the SolidStart major version ? both v1 (1.3.2 / vinxi) and v2-alpha (2.0.0-alpha.2 / nitro-2).
- Not
solid-js version/duplication ? reproduced with a single solid-js@1.9.13 and with mixed 1.9.12/1.9.13.
- Not DevTools ? hangs with DevTools open and closed.
- Not reload speed ? hangs on slow (full-load) and fast reloads.
- Not the dev server ? it stays responsive throughout; a fresh tab loads fine.
- Not the host file-watcher limit ? reproduced with
fs.inotify.max_user_watches at both 65,536 and 524,288 (no ENOSPC).
Notes
This may originate in the Vite/Vinxi dev module-serving layer, or be a Chromium renderer behavior with very many native-ESM modules + repeated same-origin reloads ? filing here because it reproduces cleanly in the SolidStart dev server out of the box. Happy to re-test against plain Vite or provide a CDP-automated reproducer if useful.
Your environment 🌎
`@solidjs/start` : 1.3.2 (also reproduced on 2.0.0-alpha.2)
`vinxi` : 0.5.11 (v1); v2-alpha uses `@solidjs/vite-plugin-nitro-2` 0.1.0
Vite 6.x under Vinxi (v1) / 7.x (v2-alpha)
`solid-js` : 1.9.13
`@solidjs/router` : 0.15.4
Node : 24
OS / Browser : Linux / Google Chrome 148
Duplicates
Latest version
Current behavior 😯
In dev, a page that statically imports a few hundred ES modules makes the browser tab hang and then the renderer crash (DevTools: "Render process gone") after only ~7-8 reloads of the same tab. It reproduces with trivial, dependency-free modules, so the trigger is the number of modules per page, not any particular library. Reproduced on SolidStart 1.3.2 (Vinxi 0.5.11) and 2.0.0-alpha.2 (
@solidjs/vite-plugin-nitro-20.1.0).Expected behavior 🤔
Reloading a dev page any number of times should not hang or crash the browser; each navigation should release the previous document's modules.
Steps to reproduce 🕹
Repo: https://github.com/apudiu/solidstart-reload-hang
pending(0 B, never resolves), and shortly after the renderer crashes ? the page goes unresponsive and DevTools reports "Render process gone".Tune the count to see the threshold:
The 160 modules are trivial one-liners (
export default () => <span/>) generated byscripts/generate-modules.mjsand rendered insrc/routes/index.tsxviaimport.meta.glob.Actual
The tab hangs and the renderer crashes; how soon scales with the page's module count (160 ? ~7 reloads; 50 ? survives 15+). This points to per-tab state accumulating across same-origin reloads that isn't released on navigation. During the hang the dev server stays healthy ?
curl /returns 200 in milliseconds and a fresh tab loads normally ? so it's the browser renderer, not the server.Context 🔦
What we've ruled out
solid-jsversion/duplication ? reproduced with a singlesolid-js@1.9.13and with mixed1.9.12/1.9.13.fs.inotify.max_user_watchesat both 65,536 and 524,288 (noENOSPC).Notes
This may originate in the Vite/Vinxi dev module-serving layer, or be a Chromium renderer behavior with very many native-ESM modules + repeated same-origin reloads ? filing here because it reproduces cleanly in the SolidStart dev server out of the box. Happy to re-test against plain Vite or provide a CDP-automated reproducer if useful.
Your environment 🌎