Environment
nuxt: "4.1.3",
nitropack: "2.12.7",
node: "Vercel runtime (Node 22.x)"
Nuxt config (relevant excerpt)
// nuxt.config.ts
export default defineNuxtConfig({
routeRules: {
"/fachrichtungen": {
isr: {
allowQuery: ["location"],
expiration: 3600,
passQuery: true,
},
},
},
})
Deployment target
- Vercel (Free plan)
- Zero-config deployment using Nitro’s vercel preset
Reproduction
Steps:
- Open the live URL above directly in a new tab (or hard-refresh).
- Observe a 404.
- From the home page (
/), click a link to the ISR route (client-side navigation).
- First hit renders; subsequent hits are served from cache as expected.
Describe the bug
Incremental Static Regeneration works on client-side navigation, but direct navigation (entering the URL or hard-refresh) to an ISR route returns a 404 on Vercel.
This looks like the same problem discussed in Nuxt issue nuxt/nuxt#33316 which was closed after a Nitro fix, but it still reproduces with current versions.
Expected behavior
Direct navigation to an ISR route should generate (on first request) and then serve the cached page (or serve cached content if it already exists), same as client-side navigation.
Actual behavior
- Direct navigation / hard-refresh returns 404 for the ISR route.
- Client-side navigation to the same route works (first request generates, subsequent are cached).
Additional context
Logs
* Vercel request shows 404 for direct navigation to `/fachrichtungen`.
[request error] [fatal] [GET] /fachrichtungen-isr?
H3Error: Page Not Found
at createError$1 (file:///var/task/chunks/nitro/nitro.mjs:943:15)
at createError (file:///var/task/chunks/build/server.mjs:478:21)
at setup (file:///var/task/chunks/build/_...slug_-DkjO_2q9.mjs:5931:13)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
cause: { fatal: true, statusCode: 404, statusMessage: 'Page Not Found' },
statusCode: 404,
fatal: true,
unhandled: false,
statusMessage: 'Page Not Found',
data: undefined
}
Environment
nuxt: "4.1.3",
nitropack: "2.12.7",
node: "Vercel runtime (Node 22.x)"
Nuxt config (relevant excerpt)
Deployment target
Reproduction
Steps:
/), click a link to the ISR route (client-side navigation).Describe the bug
Incremental Static Regeneration works on client-side navigation, but direct navigation (entering the URL or hard-refresh) to an ISR route returns a 404 on Vercel.
This looks like the same problem discussed in Nuxt issue nuxt/nuxt#33316 which was closed after a Nitro fix, but it still reproduces with current versions.
Expected behavior
Direct navigation to an ISR route should generate (on first request) and then serve the cached page (or serve cached content if it already exists), same as client-side navigation.
Actual behavior
Additional context
/{url}-isrVercel nuxt/nuxt#33316 (“Direct navigation to ISR redirects/404 on Vercel”) which was marked fixed upstream in Nitro, but the issue still occurs on Nuxt 4.1.3 / Nitro 2.12.7.vercel.json/ edge config; this is a minimal setup to isolate Nitro/ISR behavior.urlto src regex forisrroutes #3595Logs