cloudflare / cloudflare/vinext

PPR fallback shells (postpone/resume) not implemented

Open
#1,359 2 comments 0 reactions 0 assignees View on GitHub
adapter-api-e2e help wanted
Dominant language
TypeScript
Stars
8.8k
Forks
406
Avg merge
2d 6h
Merged PRs (30d)
120

Description

> *This issue was created by an agent analysing CI failures from the [Next.js Deploy Suite](https://github.com/cloudflare/vinext/actions/runs/26163751905) (vinext `main` vs Next.js `v16.2.6`, 2026-05-20).*

## Problem

Partial Prerendering (PPR) fallback shells are not implemented. Tests expect prerendered fallback shells containing static content (marked with a "buildtime" marker) to be served instantly, with dynamic content streamed in afterward using the postpone/resume API.

```
expect(layout).toInclude('buildtime')
// Fails because no prerendered fallback shell is generated
```

PPR requires the `experimental.ppr` config flag and uses React's `postpone()` API to split rendering into a static shell (prerendered at build time) and dynamic holes (filled at request time).

## Estimated Impact

~7 test failures.

## Affected Test Suites

- `test/e2e/app-dir/fallback-shells/fallback-shells.test.ts` (7 failures)

## Recommendation

1. **Reproduce first in vinext's own test suite.** Add a test with `experimental: { ppr: true }` and a page that uses `` with a dynamic component. Verify whether a fallback shell is prerendered.

2. **Study the Next.js PPR implementation.** Search `.nextjs-ref/packages/next/src/server/` for `postpone`, `resume`, and `ppr` to understand the rendering pipeline.

3. **This is a significant new feature.** PPR requires changes to the build pipeline (prerendering static shells), the server (resuming rendering with dynamic data), and the client (hydrating the static shell and streaming in dynamic content). Consider whether this should be deferred or scoped incrementally.

4. **Note:** PPR is still experimental in Next.js. Prioritize based on how critical this feature is for the vinext compatibility story.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.