Work order Checkpoints — a failed history read says "Couldn't load"

The Checkpoints card when the page's history read fails before any history has loaded. It used to show its loading placeholder forever.

29 Sept 2026 · branch p11-wo-detail-6 · captured against propflow-stage · at b4d3649632+local

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.

1 · The history read fails: the Checkpoints card says "Couldn't load"

This capture aborts every /story request, so the page's history read fails. This work order has nothing on its own timeline. The Checkpoints card (right column) says Couldn't load, the dashboard tiles' existing wording. It does not show the grey loading rows forever, and it does not say No checkpoints yet. The page retries every 15 s.

Why, and what is covered elsewhere

Before this PR, a failed history read was ignored, so with nothing read yet the loading rows stayed up forever. "No checkpoints yet" would claim a history the page never read. Recovery on a later successful read, and the absence of "No checkpoints yet", are pinned by wo-checkpoints-story-read-failed.test.tsx.

Asserted in the captured DOM — Checkpoints · Couldn't load. "Couldn't load" is on screen with /story aborted.

The history read fails: the Checkpoints card says "Couldn't load"

2 · Control: the same work order with the history read allowed

Control: the same page with nothing blocked. The history loads and the card shows the checkpoints.

Asserted in the captured DOM — Checkpoints

Control: the same work order with the history read allowed

Scope

What this shows and what it does not

Captured on this branch's dev server against propflow-stage (anonymized), as the smoke user. The failure here is a network error (aborted request), the same code path as an error response. The 500 path and recovery are covered by the unit test.

PropFlow Docs