Allowed outcomes
Every failure should land on a named public outcome. Anything else is an incomplete product state.
checking
checking
checking
InfraVerifiable Storage
Wallet, funding, storage, proof, retrieval, contracts, and status are kept as separate product lanes.
Every failure should land on a named public outcome. Anything else is an incomplete product state.
checking
checking
checking
A failed path should still tell the user what happened, whether it can be retried, and which receipt or state is authoritative.
Confirm whether the object, payment, or proof lane already has a canonical state.
Receipt path RetryUse the right retrieval path.Cold restore, hot query, and public rented access fail differently and should be retried differently.
Access path TraceFollow the public evidence.Replay, duplicate payment, and stale update cases should point back to a named receipt.
Evidence path ObserveCheck whether the lane is stale.Status labels help separate a user error from a delayed gateway or stale public snapshot.
Status pathchecking
checking
A visible failure is healthier than a hidden success claim. Infra says stale, refused, queued, quarantined, downgraded, repairing, or terminal when that is the real state.
Replay and duplicate evidence links to canonical state instead of creating duplicate payment, work, or storage.
Hot provider failure, cold restore delay, provider proof mismatch, repair exhaustion, and capacity exhaustion stay separate.
Website stale head or public stats conflict becomes stale or refused public state, not chain truth.
QUAD/Core, Bridge, and Liquid outages queue, retry, or stale-label their paths without inventing sibling-chain facts.