Calling `prerender` function with large input fail the build
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 20.8k
- Forks
- 2.3k
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 156
Description
Describe the bug
calling a prerender function with large(long) input cause sveltekit to cache the output to a file with a very long name and then the build fail probably becuase of file name length limit
Reproduction
https://github.com/ongsalt/prerender-file-name-too-long
note that this work fine on stackblitz probably becuase of this
Logs
vite v7.1.2 building SSR bundle for production...
✓ 176 modules transformed.
vite v7.1.2 building for production...
✓ 150 modules transformed.
.svelte-kit/output/client/_app/version.json 0.03 kB │ gzip: 0.05 kB
.svelte-kit/output/client/.vite/manifest.json 2.52 kB │ gzip: 0.51 kB
.svelte-kit/output/client/_app/immutable/chunks/DsnmJJEf.js 0.07 kB │ gzip: 0.08 kB
.svelte-kit/output/client/_app/immutable/entry/start.CPHDRvYU.js 0.08 kB │ gzip: 0.09 kB
.svelte-kit/output/client/_app/immutable/nodes/0.xi1bx7BM.js 0.30 kB │ gzip: 0.25 kB
.svelte-kit/output/client/_app/immutable/chunks/AB6WPPtM.js 0.53 kB │ gzip: 0.34 kB
.svelte-kit/output/client/_app/immutable/nodes/1.CGFo8fxX.js 0.55 kB │ gzip: 0.35 kB
.svelte-kit/output/client/_app/immutable/nodes/2.wQTUp8h2.js 2.43 kB │ gzip: 1.25 kB
.svelte-kit/output/client/_app/immutable/chunks/7HNG5UGF.js 3.74 kB │ gzip: 1.99 kB
.svelte-kit/output/client/_app/immutable/entry/app.C0Y8afsr.js 7.27 kB │ gzip: 3.45 kB
.svelte-kit/output/client/_app/immutable/chunks/CP7f0ZS2.js 20.75 kB │ gzip: 8.29 kB
.svelte-kit/output/client/_app/immutable/chunks/CLFl3oIp.js 35.71 kB │ gzip: 13.93 kB
✓ built in 702ms
node:internal/event_target:1101
process.nextTick(() => { throw err; });
^
Error: ENOENT: no such file or directory, open 'C:\Users\ASUS\projects\personal\prerender-file-name-too-long\.svelte-kit\output\prerendered\data\_app\remote\1nqita7\getLength\WyJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIl0'
at writeFileSync (node:fs:2410:20)
at save (file:///C:/Users/ASUS/projects/personal/prerender-file-name-too-long/node_modules/@sveltejs/kit/src/core/postbuild/prerender.js:447:4)
at visit (file:///C:/Users/ASUS/projects/personal/prerender-file-name-too-long/node_modules/@sveltejs/kit/src/core/postbuild/prerender.js:308:4) {
errno: -4058,
code: 'ENOENT',
syscall: 'open',
path: 'C:\\Users\\ASUS\\projects\\personal\\prerender-file-name-too-long\\.svelte-kit\\output\\prerendered\\data\\_app\\remote\\1nqita7\\getLength\\WyJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIl0'
}
System Info
System:
OS: Windows 11 10.0.26100
CPU: (16) x64 AMD Ryzen 7 7730U with Radeon Graphics
Memory: 3.65 GB / 15.40 GB
Binaries:
Node: 24.5.0 - C:\nvm4w\nodejs\node.EXE
npm: 11.5.1 - C:\nvm4w\nodejs\npm.CMD
pnpm: 10.12.4 - ~\AppData\Local\Microsoft\WinGet\Links\pnpm.EXE
bun: 1.2.18 - ~\.bun\bin\bun.EXE
Browsers:
Edge: Chromium (139.0.3405.102)
Internet Explorer: 11.0.26100.1882
npmPackages:
@sveltejs/adapter-auto: ^6.0.0 => 6.1.0
@sveltejs/kit: ^2.22.0 => 2.33.0
@sveltejs/vite-plugin-svelte: ^6.0.0 => 6.1.2
svelte: ^5.0.0 => 5.38.2
vite: ^7.0.4 => 7.1.2
Severity
serious, but I can work around it
Additional Information
i also tried this on wsl and a linux machine. same result but with ENAMETOOLONG instead of ENOENT
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at node_modules/@sveltejs/kit/src/core/postbuild/prerender.js, especially the save and visit locations shown in the stack trace. Reproduce the failure with the linked prerender-file-name-too-long example on Windows and Linux, then verify that a large prerender input no longer causes the build to fail because of the generated path length.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100