sveltejs/kit · warning
Warning: The following routes have an ISR config which is i
Error message
Warning: The following routes have an ISR config which is ignored because the route is prerendered:
What it means
When a route is fully prerendered, Vercel ISR (incremental static regeneration) settings such as `export const isr = {...}` are meaningless because the page is generated at build time and never revalidated. The Vercel adapter collects such routes in `ignored_isr` during adapt() and prints this warning listing them, so you know their ISR config is dead configuration.
Source
Thrown at packages/adapter-vercel/index.js:164
);
}
} else {
conflicts.set(pattern, { hash, route_id: route.id });
}
// then, create a group for each config
const id = config.split ? `${hash}-${groups.size}` : hash;
let group = groups.get(id);
if (!group) {
group = { i: groups.size, config, routes: [] };
groups.set(id, group);
}
group.routes.push(route);
}
if (ignored_isr.size) {
builder.log.warn(
'\nWarning: The following routes have an ISR config which is ignored because the route is prerendered:'
);
for (const ignored of ignored_isr) {
console.log(` - ${ignored}`);
}
console.log(
'Either remove the "prerender" option from these routes to use ISR, or remove the ISR config.\n'
);
}
const singular = groups.size === 1;
for (const group of groups.values()) {
// generate one function for the group
const name = singular ? `${INTERNAL}/catchall` : `${INTERNAL}/${group.i}`;
View on GitHub (pinned to 03f1687fe6)
Solutions
- Remove the `export const isr = ...` from prerendered routes.
- Remove `prerender = true` from routes that should use ISR instead.
- If prerendering is enabled globally in kit.prerender, exclude ISR routes via `export const prerender = false` on those routes.
Example fix
// before (+page.js)
export const prerender = true;
export const isr = { expiration: 60 };
// after
export const prerender = true; // isr removed: it was ignored Defensive patterns
Strategy: validation
Validate before calling
// In each +page.js, never export both:
// export const prerender = true; AND export const isr = { expiration: 60 };
// CI check:
const hasBoth = prerenderedRoutes.some((r) => r.exports.prerender === true && r.exports.isr);
if (hasBoth) console.warn('ISR config ignored on prerendered route(s)'); Prevention
- Choose prerender OR isr per route, never both
- Lint route exports to reject isr on prerendered pages
- Re-check routes after toggling global kit.prerender
When it happens
Trigger: Running adapt() with adapter-vercel when one or more routes both have `export const prerender = true` and export an `isr` config (or vice versa combinations the adapter detects), collected in the ignored_isr set.
Common situations: A page previously dynamic (with `isr` export) later switched to `prerender = true` without removing the isr export; copy-pasted isr config into static marketing pages; enabling global prerendering in svelte.config.js while individual routes still carry isr exports.
Related errors
- Warning: The following modules failed to locate dependencies
- Warning: vercel.json defines cron tasks that use paths that
- Overwriting ${dest} with fallback page. Consider using a di
- The `edge` runtime is no longer supported
- ${directory}: `__pathname` is a reserved query parameter for
AI-assisted analysis of sveltejs/kit@03f1687fe6 (2026-09-02).
Data as JSON: /api/errors/fe9562c28e4f378e.
Report an issue: GitHub.