Allow resumeAndPrerender to postpone an existing boundary again #37876

Open
gnoff opened 1:23pm on October 16, 2026 wants to merge 970 Ξ” into facebook/react main from
jstory/fizz-resume-prerender-repeated-abort

Pull Request Overview

  • Opened on October 16, 2026
  • Status Open
  • Commit count 10 with first commit October 14, 2026

Total Delta

970 Total Diff Delta

Open Days

Open 21 weekdays

Test Delta

0 Diff Delta in Test Files
Breakdown by Phase

How long has this pull request spent in each phase of its lifecycle?

Fraction of total time Business days Phase
 
1.4 days Authoring 5 commits before pull request opened for review
 
0.0 days Awaiting first review
 
20.6 days Revising work with 5 commits in response to 0 reviews that left 1 comment

Total time for pull request still awaiting merge (longer than repo's target): 22.0 business days

Author avatar

Allow resumeAndPrerender to postpone an existing boundary again

resumeAndPrerender fails when the same already emitted Suspense boundary needs to postpone again. This predates #37853: prerendering a suspended boundary, aborting, resuming it while it still suspends, and aborting again hits the missing postponement metadata even when both aborts happen outside rendering.

Initialize tracking for resumed boundaries and preserve the boundary ID already referenced by the emitted HTML. When a pass finishes with postponed holes, flush completed segments as partial output and retain the fallback until a later resume completes the boundary.

Switch the full-flow regression from #37853 from it.failing to it, asserting prerender β†’ resumeAndPrerender β†’ final resume, intermediate HTML, JSON round trips, and removal of placeholders. Add a regression using external aborts to directly cover the existing API bug. Also verify that one resumed boundary can complete while a sibling aborts and postpones again, both at the root and through an already completed Suspense ancestor.

Stacked on #37853. The branch includes that PR's commits; the follow-up diff is here. After #37853 merges, this PR will contain only the API fix.

The browser prerender suite passes in development and production on stable and experimental channels. ESLint and Prettier pass.

Comments Threads Pending Resolution

Resolved Comment Threads

No resolved comments have been left on this PR.