Link to the code that reproduces this issue
https://github.com/mariusch/nextjs-sa-ppr-repro
To Reproduce
next.config.ts: set output: "standalone" and cacheComponents: true
- Create a dynamic route with a
<Suspense> boundary (so PPR activates) and a Server Action
next build && node .next/standalone/server.js
- Invoke the Server Action
- Response is an HTML prerender shell instead of RSC payload → client throws E394
Current vs. Expected behavior
Server Action POST response headers after upgrading 16.1.7 → 16.2.0:
| Header |
16.1.7 |
16.2.0 |
content-type |
text/x-component |
text/html; charset=utf-8 |
x-nextjs-postponed |
absent |
1 |
x-nextjs-cache |
HIT |
absent |
Both include x-nextjs-prerender: 1. Request includes Next-Action header in both cases.
Expected: Returns text/x-component with RSC payload.
Actual: Returns PPR HTML shell. Action executes, but client can't parse the response → E394.
Downgrading to 16.1.7 resolves it.
Provide environment information
Operating System:
Platform: darwin
Arch: arm64
Binaries:
Node: 22.15.0
Relevant Packages:
next: 16.2.0 (works on 16.1.7)
react: 19.2.4
react-dom: 19.2.4
typescript: 5.9.3
Next.js Config:
output: standalone
Which area(s) are affected? (Select all that apply)
cacheComponents, Server Actions, Partial Prerendering (PPR)
Which stage(s) are affected? (Select all that apply)
Other (Deployed), next start (local)
Additional context
Self-hosted via Docker (node:25-alpine), not Vercel. Azure Front Door in front but unchanged between versions.
Link to the code that reproduces this issue
https://github.com/mariusch/nextjs-sa-ppr-repro
To Reproduce
next.config.ts: setoutput: "standalone"andcacheComponents: true<Suspense>boundary (so PPR activates) and a Server Actionnext build && node .next/standalone/server.jsCurrent vs. Expected behavior
Server Action POST response headers after upgrading 16.1.7 → 16.2.0:
content-typetext/x-componenttext/html; charset=utf-8x-nextjs-postponed1x-nextjs-cacheHITBoth include
x-nextjs-prerender: 1. Request includesNext-Actionheader in both cases.Expected: Returns
text/x-componentwith RSC payload.Actual: Returns PPR HTML shell. Action executes, but client can't parse the response → E394.
Downgrading to 16.1.7 resolves it.
Provide environment information
Which area(s) are affected? (Select all that apply)
cacheComponents, Server Actions, Partial Prerendering (PPR)
Which stage(s) are affected? (Select all that apply)
Other (Deployed), next start (local)
Additional context
Self-hosted via Docker (
node:25-alpine), not Vercel. Azure Front Door in front but unchanged between versions.