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

  1. Remove the `export const isr = ...` from prerendered routes.
  2. Remove `prerender = true` from routes that should use ISR instead.
  3. 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

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


AI-assisted analysis of sveltejs/kit@03f1687fe6 (2026-09-02). Data as JSON: /api/errors/fe9562c28e4f378e. Report an issue: GitHub.