sveltejs/kit · error · Error
Could not find prerendered page ${file} for route ${path}
Error message
Could not find prerendered page ${file} for route ${path} What it means
While embedding prerendered pages into the server bundle, adapter-bun cross-references builder.prerendered.pages against the collected build output file list. If a page's HTML file exists in the prerender metadata but no matching artifact was emitted, this error is thrown.
Source
Thrown at packages/adapter-bun/index.js:319
});
/**
* @param {{ abs: string, rel: string }} file
* @param {string} helper
* @param {string} [url]
*/
const entry = async (file, helper, url = file.rel) =>
`...${helper}(${JSON.stringify(url)}, asset_${asset_index.get(file)}, ${JSON.stringify(await asset_meta(file.abs))})`;
const page_files = new Map(pr_pages.map((file) => [file.rel, file]));
const page_rels = new Set([...builder.prerendered.pages].map(([_, { file }]) => file));
const entries = await Promise.all([
...cl_files.map((file) => entry(file, 'client_asset')),
...[...builder.prerendered.pages].map(([path, { file }]) => {
const page = page_files.get(file);
if (page === undefined)
throw new Error(`Could not find prerendered page ${file} for route ${path}`);
return entry(page, 'prerendered_page', path);
}),
...pr_pages
.filter(({ rel }) => !page_rels.has(rel))
.map((file) => entry(file, 'prerendered_asset')),
...[...pr_deps, ...pr_data].map((file) => entry(file, 'prerendered_asset'))
]);
const index_by_rel = new Map(
assets.map(({ rel }, i) => /** @type {[string, number]} */ ([rel, i])).reverse()
);
return {
imports,
entries,
server_assets: server_assets.map((file) => {
const idx = index_by_rel.get(file);
if (idx === undefined) throw new Error(`Could not find server asset ${file}`);View on GitHub (pinned to 03f1687fe6)
Solutions
- Clean the build output (rm -rf build .svelte-kit) and rebuild with `bun run --bun build`.
- Check build logs for prerender failures on the affected route and fix the underlying prerender error.
- Verify no custom build/output configuration separates prerendered HTML from the indexed output.
- Disable prerendering for the affected route if its HTML is not needed, or update the adapter/Bun version.
Example fix
// before bun run --bun build // stale artifacts kept index out of sync // after (clean, full rebuild) rm -rf build .svelte-kit node_modules/.vite && bun install && bun run --bun build
Defensive patterns
Strategy: try-catch
Validate before calling
import fs from 'node:fs';
// verify prerendered page files exist in build output before adapting
for (const [route, { file }] of builder.prerendered.pages) {
if (!fs.existsSync(file)) {
throw new Error(`Prerendered page for ${route} (${file}) missing from build output — clean rebuild required`);
}
} Type guard
const pageIsEmbedded = (pageFiles, file) => pageFiles.has(file);
Try / catch
try {
await build();
} catch (e) {
if (/Could not find prerendered page/.test(e.message)) {
const [file, route] = /prerendered page (\S+) for route (\S+)/.exec(e.message)?.slice(1, 3) ?? [];
console.error(`Route ${route}: prerender output ${file} missing. Fix prerender errors, clean build dirs, rebuild.`);
process.exit(1);
}
throw e;
} Prevention
- Always clean build artifacts between builds
- Watch prerender logs for failed pages
- Keep adapter-bun and Bun versions current
- Avoid hand-editing .svelte-kit output
When it happens
Trigger: get_embed_entries iterates builder.prerendered.pages; page_files (the index of built output files) has no entry for the page's `file`, so the prerendered_page entry cannot be created for that route.
Common situations: Prerender metadata stale relative to the build output (partial/modified builds); a page that failed to prerender; custom output directory configurations breaking the file index; mixing cached artifacts with a fresh build.
Related errors
- Could not find server asset ${file}
- Cannot build with ${JSON.stringify(file)} because Bun treats
- Cannot build with ${JSON.stringify(file)} because Bun treats
- adapter-bun requires running the SvelteKit build with Bun. U
- ${log.message ?? String(log)}
AI-assisted analysis of sveltejs/kit@03f1687fe6 (2026-09-02).
Data as JSON: /api/errors/33463e38abd49488.
Report an issue: GitHub.