Description
Link to the code that reproduces this issue
https://github.com/lmatteis/nextjs-static-suspense
To Reproduce
npm run build
, thennpm run start
(don't run dev )- Make sure your nextjs cache is clear
- Open site, and click on Foo in the header
- Notice how the request blocks, doesn't show the Suspense loading state
Current vs. Expected behavior
Using: export const dynamic = "force-static";
The context is a page that is compiled at request time (not during build)
Current behavior: initial page compilation just hangs until the entire page is completely loaded. If the page does many requests, the user sees a blank page, or a hanging link, for the entire time
Expected behavior: initial compilation should stream in and show suspense states, to give a better UX to users. Further requests can then of course use the compiled HTML (that doesn't contain suspense)
Provide environment information
Operating System:
Platform: darwin
Arch: arm64
Version: Darwin Kernel Version 24.5.0: Tue Apr 22 19:48:46 PDT 2025; root:xnu-11417.121.6~2/RELEASE_ARM64_T8103
Available memory (MB): 16384
Available CPU cores: 8
Binaries:
Node: 23.11.0
npm: 10.9.2
Yarn: N/A
pnpm: N/A
Relevant Packages:
next: 15.4.0-canary.91 // Latest available version is detected (15.4.0-canary.91).
eslint-config-next: N/A
react: 18.3.1
react-dom: 18.3.1
typescript: N/A
Next.js Config:
output: N/A
Which area(s) are affected? (Select all that apply)
Loading UI and Streaming
Which stage(s) are affected? (Select all that apply)
next start (local)
Additional context
No response