When the lazy detail read fails, the Messages and Status Timeline blocks say they could not load instead of showing an empty list with a 0.
1 Oct 2026 · branch p10-core-surfaces-atlas-detail-unavailable · captured against propflow-stage · at cc5451c102f
Data note. Every name and balance below comes from propflow-stage, which is anonymized by construction (ADR-0097/0110 — phones in the impossible +1000 NPA, emails @example.test). The identical capture against prod would carry real tenants' names and balances and is not safe to attach anywhere, which is why the generator refuses to run against one.
An existing test thread on the sandbox TEST building, focused in Atlas with nothing blocked. The Messages block lists its messages under the plain title.
Asserted in the captured DOM — Messages
The browser's request to the detail route is aborted (a real network failure, not a stub), so the messages never arrive. Before this change Atlas showed No messages on this thread. and a 0. Now the block says it could not load, draws no count, and is open so the reason is visible.
Round 1: the first build showed a — badge in place of the count. Beside a title ending in — could not load it read as dangling punctuation (Messages — could not load —), and it added nothing the title did not already say. Fixed in code: an unreadable list draws no badge at all. A 0 is still never drawn, because that would claim the list is empty.
Round 2 (these captures): Messages — could not load and Status Timeline — could not load, each with one sentence saying the list is unknown, not empty, and how to retry. The control above, with nothing blocked, is unchanged (plain title, real rows, count). No further change.
Asserted in the captured DOM — Messages — could not load · The messages could not be read, so this thread is unknown, not empty. Reload to try again.
Work order 112 on the same test building, its timeline read aborted the same way. The Status Timeline block says it could not load rather than No timeline events.
Asserted in the captured DOM — Status Timeline — could not load · The timeline could not be read, so its events are unknown, not empty. Reload to try again.