"Failed" is too small a word for a verification run. A candidate that fails the objective gate should not follow the same recovery path as a valid result from an expired run epoch. Both stop progress, but only one says anything about the implementation. That is why Fusion records typed stop states: so the operator can distinguish bad code, stale evidence, jury contention, infrastructure failure, and a retryable publication problem.

State carries meaning

A jury deadlock becomes contested. A failed required QA stage routes to repair. Receipt emission failure blocks shipping in RECEIPT_FAILED. A stale completion remains durable evidence but cannot advance the current state.

Review publication can be partially complete and retryable without pretending the run shipped. Delivery state and verification state remain separate.

Typed failure protects analytics

If infrastructure outages and implementation defects share one bucket, neither reliability nor model quality can be measured honestly. Typed states preserve the difference for operators and later analysis.

Source ledger

  • Fusion MVP PRD, FR-4, FR-5, FR-17, FR-19, FR-20, and FR-31.
  • Fusion run lifecycle, pillar-specific tails.
  • Fusion planning model, section 12.