SeamCollapsedException
Thrown by raceCollapse when the Seam collapses mid-operation — the work being raced can no longer complete because the peers it needs are gone. A collapse surfaces two distinct ways and this exception covers both:
Transport tear — Seam.state latches SeamState.Torn (the fabric is gone for good, e.g. a 2-peer mesh whose only link dropped).
Membership drain — Seam.peers collapses (e.g. to
{selfId}) while Seam.state stays SeamState.Woven. A torn-only watcher never fires; the drain is only visible on Seam.peers.
Retryable, not fatal: the collapse surfaces a terminal signal the caller can act on (rejoin, re-elect, re-roll) rather than suspending forever on the missing message. reason is the seam's own CloseReason when it tore, or CloseReason.Unreachable for a membership drain with no tear.