Skip to content

Static page initial rendering doesn't stream in with suspense #80774

@lmatteis

Description

@lmatteis

Link to the code that reproduces this issue

https://github.com/lmatteis/nextjs-static-suspense

To Reproduce

  • npm run build, then npm 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Loading UI and StreamingRelated to loading UI (loading.tsx) and streaming.

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions