App Router metadata: keep blocking and streaming rendering structures aligned
Author: ask-bonk[bot]Created Sep 18, 2026Updated Sep 18, 2026
Labelsnextjs-tracking
Upstream: https://github.com/vercel/next.js/commit/7d42c9dcdd11b01716eb5a8eb473f493ea5b23c6
Summary
Render selected metadata through the same hidden Suspense boundary in streaming and blocking modes. For requests requiring blocking metadata, suspend the response before consuming it until that same metadata resolution completes.
Expected behavior
Configured HTML-limited bots receive dynamically resolved metadata in the initial document head while the body can continue streaming afterwards. The blocking path must hydrate without console errors. PPR shells must remain bypassed for requests that require blocking metadata, because their head has already closed.
Upstream coverage
test/e2e/app-dir/metadata-streaming-cache-components/metadata-streaming-cache-components-custom-bots.test.ts
Source: cloudflare/vinext