Next.js: Routing Loops and the PPR Cleanup

Two separate infinite-loop bugs in optimistic routing and the Nav Inspector were fixed today, while a multi-PR effort finished retiring legacy Partial Prerendering code in favor of Cache Components as the single source of truth.

Duration: PT2M28S

Episode overview

This episode is a short developer briefing from Next.js.

It explains recent repository work in plain language.

  • Show: Next.js
  • Published: 2026-08-11T13:13:27Z
  • Audio duration: PT2M28S

Transcript excerpt

This excerpt keeps the crawler page concise. Listen to the episode or use the RSS feed for the full update.

Good morning. It's August 11th, and today's Next.js activity centers on one theme: stuck navigation states, and the long tail of cleanup needed to prevent them.

The headline fix comes from Andrew Clark in PR ninety-seven one two eight. A proxy that rewrites URLs to inject a hidden locale segment, combined with a fully dynamic catch-all route, sent optimistic routing into an infinite prefetch loop. The root issue: when a prefetch response didn't match what the router…

That same class of bug showed up again in PR ninety-seven zero five zero. Enabling the Nav Inspector, closing it, and reopening it could leave the app hung in a "Compiling" state, firing prefetch requests roughly thirty times a second. The cause was a navigation lock that filtered results after the cache lookup…

The second theme is convergence on Cache Components. Zack Tanner landed a three-part sequence — PRs ninety-six seven five three, ninety-six eight two seven, and ninety-six eight six eight — that made legacy PPR paths explicit, switched internal PPR checks to use Cache Components directly, and then deleted the…

Smaller but related: Hendrik Liebau's pair of PRs, ninety-six nine three seven and ninety-six nine…

What…

Nearby episodes from Next.js

  1. Routing Internals Get a Deep Cleanup
  2. Stabilizing 16.3 and Unifying the Router's Data Format
  3. Turbopack Internals Get a Deep Cleanup
  4. Request State Gets Untangled
  5. Turbopack Rollbacks and WebSocket Route Handlers Take Shape
  6. Weekly Recap - Turbopack Hardening and the Render Pipeline Split
  7. Closing the Gaps in Cache Components
  8. Server Actions Get Rerouted, Request Insights Takes Shape