---
name: a-barrier-published-by-the-party-that-exits-is-a-dial-to-a-corpse
description: "A cross-host completion barrier written as a replicated/pulled row by the party whose NEXT act is to exit is unreachable — the waiter dials a dead endpoint for its whole window; the barrier must be synchronous with custody proven before the exiter leaves, or owned by the party that stays."
metadata: 
  node_type: memory
  type: project
  originSessionId: 77b77a80-faae-4001-b2bd-37026934e11b
  modified: 2026-09-08T10:49:07.413Z
---

todlando, W3 XFER retirement, 2026-09-08 10:48Z, one-box ladder pair run 1: role A green (38 rungs, "ladder-done
signalled"), role B exit 100 after sitting out its window — B's own log: `PUMP_PEER_FAIL <A>: submit-dial exceeded
the 10s bound, addr=192.168.1.81:7460` on the cache and roster legs. The rewrite had moved the ladder's three XFER
side-channel uses onto replicated notif rows. The two SID signals worked (their publisher B stays up to serve the
pull); the completion barrier did not, because A publishes it and then EXITS, so B pulled from a corpse.

**Why it hides:** the exiting side reads GREEN — it signalled, it finished, its assert passed. Only the waiter's
raw shows the class, and only if the waiter's red carries its ELAPSED (at-budget = never arrived). A source read
of the rewrite looks symmetric with the working signals; the asymmetry is WHO STAYS, which the source does not say.

**How to apply:** for every cross-host barrier ask "who is up when the other side reads it?" A signal from the
party that stays may be async (row + poll). A signal from the party that leaves must be SYNCHRONOUS with custody
proven before it leaves (request_wan + `took_custody()`), and the waiter reads its spool. The retired XFER push
was synchronous — replacing a sync primitive with an async one changes exactly the property a barrier exists
for. Kin: [[the-barrier-must-be-the-fact-you-assert]], [[a-source-read-cannot-witness-an-integration-cell]] (the
"risk not accepted" ruling on the un-run rewrite is what surfaced this on run 1), [[generous-bound-is-free-when-the-poll-exits-early]].
