You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
RelationshipTable: join table with an async server Cell blanks the whole admin when cacheComponents is enabled #19268
With cacheComponents: true, opening a document whose join field shows a column with an async server Cell hides the entire admin, not just the table, until every cell has loaded.
RelationshipTable awaits getTableState and applies the result with plain state setters, outside a transition (index.tsx#L157, #L172-L175). getTableState resolves while the returned Table is still streaming, so rendering it suspends. With cacheComponents on, withPayload sets PAYLOAD_CACHE_COMPONENTS_ENABLED (withPayload.js#L40) and the root layout wraps the admin in <Suspense fallback={null}> (Root/index.tsx#L52-L53), so the suspension reaches that boundary and the page goes blank.
Expected: "Loading…" stays until the table has arrived, as it does with cacheComponents: false.
Applying the result in a transition fixes it (verified on the reproduction: "Loading…" stays until the whole table is in, and the page never blanks):
The same code is unchanged on 3.x and main. 4.0.0-beta.6 doesn't show the symptom because its root layout no longer wraps the admin in Suspense, but the cause in RelationshipTable remains.
Hi! I'd like to open a PR for this. I'll reproduce it with your repro, apply the startTransition change you verified to RelationshipTable, and credit your diagnosis in the PR. Should I target main and open a separate backport to 3.x, or just one of them? I'll also check whether a test in test/joins can cover it.
4. Hi! I'd like to open a PR for this. I'll reproduce it with your repro, apply the startTransition change you verified to RelationshipTable, and credit your diagnosis in the PR. Should I target main and open a separate backport to 3.x, or just one of them? I'll also check whether a test in test/joins can cover it.
Thanks for offering! I've already opened #19272 with the fix against 3.x. Happy to adjust it or add a backport to main if the maintainers prefer.
Activity
lord-0011 commentedon Nov 2, 2026
Hi! I'd like to open a PR for this. I'll reproduce it with your repro, apply the
startTransitionchange you verified toRelationshipTable, and credit your diagnosis in the PR. Should I targetmainand open a separate backport to3.x, or just one of them? I'll also check whether a test intest/joinscan cover it.isaac-openmic commentedon Nov 2, 2026
Thanks for offering! I've already opened #19272 with the fix against 3.x. Happy to adjust it or add a backport to main if the maintainers prefer.