mirror of
https://github.com/vercel/next.js.git
synced 2026-09-20 02:25:18 +08:00
50073d6def
A generic fallback shell can have an unresolved root parameter. Reading that root directly already suspends, but reading it inside `use cache` returned the opaque placeholder and could persist placeholder-derived UI in the resume cache. For example, a cached `lang().toUpperCase()` could render `%%DRP:LANG:...%%` for a later French request. Propagate the fallback mask into public caches and abort the cache fill when an unresolved root value is consumed. Share cancellation through nested caches so an outer cache cannot retain the inner placeholder read. Preserve tracked root dependencies while cancellation completes. Add a real Cache Components fixture without paramMatching. Cold fallback debug renders exercise direct and nested cached reads, followed by concrete requests that must not reuse placeholder-derived content. All three tests fail without this fix. Existing concrete-root cache coverage also passes.