sveltejs/kit · warning
Overwriting ${dest} with fallback page. Consider using a di
Error message
Overwriting ${dest} with fallback page. Consider using a different name for the fallback.
What it means
When prerendering generates a fallback page, generateFallback writes it to `dest` inside the output directory. If a file already exists at that path (e.g. a prerendered page already produced a file with the same name), it would be silently replaced, so the builder logs this warning advising you to rename the fallback to avoid clobbering real content.
Source
Thrown at packages/kit/src/core/adapt/builder.js:189
route_data.map((route) => /** @type {import('types').RouteData} */ (lookup.get(route))),
vite_config.root
);
},
async generateFallback(dest) {
const manifest_path = `${config.outDir}/output/server/manifest-full.js`;
const env = loadEnv(vite_config.mode, config.env.dir, '');
const fallback = await generate_fallback({
manifest_path,
env,
out_dir: config.outDir,
origin: config.paths.origin || 'http://sveltekit-prerender',
assets: config.files.assets
});
if (existsSync(dest)) {
log.warn(
`\nOverwriting ${dest} with fallback page. Consider using a different name for the fallback.\n`
);
}
write(dest, fallback);
},
generateEnvModule() {
if (!build_data.client?.uses_env_dynamic_public) return;
const dest = `${config.outDir}/output/prerendered/dependencies/${config.appDir}`;
const env = loadEnv(vite_config.mode, config.env.dir, '');
/** @type {Record<string, any>} */
const values = {};
const variables = explicit_env_config ?? {};
/** @type {Record<string, StandardSchemaV1.Issue[]>} */View on GitHub (pinned to 03f1687fe6)
Solutions
- Change `prerender.fallback` in svelte.config.js to a unique filename not produced by prerendering (e.g. '200.html' or 'fallback.html').
- If overwriting is intended (SPA serving from the fallback), ignore the warning.
- Disable prerendering of the colliding route or exclude it via prerender.entries.
Example fix
// before (svelte.config.js)
prerender: { fallback: 'index.html' }
// after
prerender: { fallback: '200.html' } Defensive patterns
Strategy: validation
Validate before calling
import { existsSync } from 'node:fs';
const fallbackDest = `.svelte-kit/output/prerendered/${config.prerender.fallback}`;
if (existsSync(fallbackDest)) {
console.warn(`Fallback name collides with prerendered output: ${fallbackDest}`);
} Prevention
- Name the fallback something prerendering never emits (e.g. '200.html')
- Never use 'index.html' as a fallback when the root route is prerendered
- Audit prerender.entries against the fallback filename after config changes
When it happens
Trigger: Calling generateFallback with `kit.prerender.entries`/fallback configured such that `dest = out_dir + fallback path` already exists from prerendered output, detected via existsSync(dest).
Common situations: Setting `fallback: 'index.html'` in a SPA while also prerendering the root route; a fallback name colliding with a prerendered page's directory/file; migrating an SPA to prerendered pages without updating the fallback option.
Related errors
- Warning: The following routes have an ISR config which is i
- Cloudflare Pages Functions' includes/excludes exceeds _route
- No netlify.toml found. Using default publish directory. Cons
- Detected ${platform.name}. Please remove adapter-static opti
- Warning: The following modules failed to locate dependencies
AI-assisted analysis of sveltejs/kit@03f1687fe6 (2026-09-02).
Data as JSON: /api/errors/7392937b7a6e6291.
Report an issue: GitHub.