Open
Description
Link to the code that reproduces this issue
https://github.com/rypete/app-router-isr-error-boundary-example
To Reproduce
- Build and run the application:
npm run build && npm run start
- Observe the SSR page at
/ssr/error
. This throws an error in the server render cycle, and is caught by the custom error boundary aterror.tsx
- Observe the ISR page at
/isr/error
. This throws an error in the server render cycle, however is not caught by the customerror.tsx
and instead renders the built in Next.js error page.
Current vs. Expected behavior
Following the steps above, I would expect that the ISR route show make use of the error.tsx
error boundary as the SSR page does, and is outlined in the handling errors documentation.
Provide environment information
Operating System:
Platform: darwin
Arch: arm64
Version: Darwin Kernel Version 24.4.0: Fri Apr 11 18:33:39 PDT 2025; root:xnu-11417.101.15~117/RELEASE_ARM64_T6020
Available memory (MB): 32768
Available CPU cores: 12
Binaries:
Node: 22.14.0
npm: 10.9.2
Yarn: 1.22.22
pnpm: N/A
Relevant Packages:
next: 15.4.0-canary.53 // Latest available version is detected (15.4.0-canary.53).
eslint-config-next: N/A
react: 19.1.0
react-dom: 19.1.0
typescript: 5.8.3
Next.js Config:
output: N/A
Which area(s) are affected? (Select all that apply)
Error Handling
Which stage(s) are affected? (Select all that apply)
next build (local), next start (local)
Additional context
In dev mode the error boundary shows as expected. When the application is built, then the issue occurs. I've also tried leveraging the global-error.tsx
without success.