PPR: Direct URL navigation shows raw RSC payload as text in browser
Unanswered
hareshFF posted this in #help-forum
hareshFFOP
Hi, I'm using Next.js 16.2.6 with cacheComponents: true (PPR) deployed on Cloudflare Workers via OpenNext.
Problem:
When I navigate to a store page via a <Link> inside the app it works fine. But when I paste the same URL directly into a new browser tab, I see raw RSC/React flight payload rendered as plain text instead of HTML.
What I've confirmed:
curl -I on the URL returns content-type: text/html and cache-control: no-store — server is returning correct HTML
x-nextjs-postponed: 1 is present — PPR is active
Cloudflare cache has been purged
Removed all loading.tsx files from the app
Works correctly in a fresh incognito window — so it appears to be a browser cache issue where the browser serves a previously cached RSC payload for a direct navigation request
No enableCacheInterception in open-next.config.ts
Question:
Is there a known issue with PPR + browser caching where the browser incorrectly serves a cached RSC response for a full-page navigation? Is there a Vary or Cache-Control header config that should prevent this? Or is this a known bug in 16.x?
Versions:
Next.js: 16.2.6
OpenNext Cloudflare: latest
Deployment: Cloudflare Workers
Thanks
Problem:
When I navigate to a store page via a <Link> inside the app it works fine. But when I paste the same URL directly into a new browser tab, I see raw RSC/React flight payload rendered as plain text instead of HTML.
What I've confirmed:
curl -I on the URL returns content-type: text/html and cache-control: no-store — server is returning correct HTML
x-nextjs-postponed: 1 is present — PPR is active
Cloudflare cache has been purged
Removed all loading.tsx files from the app
Works correctly in a fresh incognito window — so it appears to be a browser cache issue where the browser serves a previously cached RSC payload for a direct navigation request
No enableCacheInterception in open-next.config.ts
Question:
Is there a known issue with PPR + browser caching where the browser incorrectly serves a cached RSC response for a full-page navigation? Is there a Vary or Cache-Control header config that should prevent this? Or is this a known bug in 16.x?
Versions:
Next.js: 16.2.6
OpenNext Cloudflare: latest
Deployment: Cloudflare Workers
Thanks