{"record":{"id":"fe9562c28e4f378e","repo":"sveltejs/kit","slug":"warning-the-following-routes-have-an-isr-config","errorCode":null,"errorMessage":"\nWarning: The following routes have an ISR config which is ignored because the route is prerendered:","messagePattern":"\nWarning: The following routes have an ISR config which is ignored because the route is prerendered:","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"packages/adapter-vercel/index.js","lineNumber":164,"sourceCode":"\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconflicts.set(pattern, { hash, route_id: route.id });\n\t\t\t\t}\n\n\t\t\t\t// then, create a group for each config\n\t\t\t\tconst id = config.split ? `${hash}-${groups.size}` : hash;\n\t\t\t\tlet group = groups.get(id);\n\t\t\t\tif (!group) {\n\t\t\t\t\tgroup = { i: groups.size, config, routes: [] };\n\t\t\t\t\tgroups.set(id, group);\n\t\t\t\t}\n\n\t\t\t\tgroup.routes.push(route);\n\t\t\t}\n\n\t\t\tif (ignored_isr.size) {\n\t\t\t\tbuilder.log.warn(\n\t\t\t\t\t'\\nWarning: The following routes have an ISR config which is ignored because the route is prerendered:'\n\t\t\t\t);\n\n\t\t\t\tfor (const ignored of ignored_isr) {\n\t\t\t\t\tconsole.log(`    - ${ignored}`);\n\t\t\t\t}\n\n\t\t\t\tconsole.log(\n\t\t\t\t\t'Either remove the \"prerender\" option from these routes to use ISR, or remove the ISR config.\\n'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst singular = groups.size === 1;\n\n\t\t\tfor (const group of groups.values()) {\n\t\t\t\t// generate one function for the group\n\t\t\t\tconst name = singular ? `${INTERNAL}/catchall` : `${INTERNAL}/${group.i}`;\n","sourceCodeStart":146,"sourceCodeEnd":182,"githubUrl":"https://github.com/sveltejs/kit/blob/03f1687fe612ce3d2d9131139b5b188d9cf90c64/packages/adapter-vercel/index.js#L146-L182","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":"// before (+page.js)\nexport const prerender = true;\nexport const isr = { expiration: 60 };\n// after\nexport const prerender = true; // isr removed: it was ignored","handlingStrategy":"validation","validationCode":"// In each +page.js, never export both:\n// export const prerender = true;  AND  export const isr = { expiration: 60 };\n// CI check:\nconst hasBoth = prerenderedRoutes.some((r) => r.exports.prerender === true && r.exports.isr);\nif (hasBoth) console.warn('ISR config ignored on prerendered route(s)');","typeGuard":null,"tryCatchPattern":null,"preventionTips":["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"],"tags":["vercel","adapter","isr","prerender","build-warning"],"backgroundTag":"isr-config-ignored","analyzedSha":"03f1687fe612ce3d2d9131139b5b188d9cf90c64","analyzedAt":"2026-09-02T02:01:50.504Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-09T06:17:21.866Z"}