Runbooks
Dissolution cascade
SEV2 runbook for a stalled dissolution-cascade saga.
Last updated
Dissolution cascade (SEV2)
Triggered by: the 12-step dissolution-cascade.ts saga reports
failed or stalled. Verified against
packages/saga/dissolution-cascade.tla
invariants.
On-call: Primary (entity-lifecycle bounded context).
Diagnose
matter ops dissolution-status --entity-id <id>Each step's failure mode:
board_resolution / stockholder_consent (non-compensable)
Missing signature. Resolution: customer-side action.
file_dissolution_certificate (non-compensable, externally observable)
Filed but state rejected. Saga halts. Manual: address state's rejection reason, re-file. DO NOT auto-resume — verify state hasn't recorded the entity as dissolved separately.
open_creditor_claims_window
Notice publication failed. Retry via the notice provider.
file_final_tax_return
Tax-prep tooling issue. Provider-failover may apply.
pay_known_claims
Bank transfer failed. Check provider; resume after fix.
pay_distributions
Waterfall math edge case (apps/api/lib/dissolution-distribution.ts).
Verify waterfall manually before resuming. TLA+ invariant
WindowPrecedesPayouts must hold — creditor window must have
elapsed.
close_bank_accounts
Bank close ordering guard (apps/api/lib/bank-account.ts
decideBankClose). Outstanding obligations OR balance without
sweep destination. Resolve those, resume.
terminate_registered_agent
RA precondition matrix (apps/api/lib/ra-termination.ts). TLA+
invariant BankClosePrecedesRA must hold. Resolve missing
precondition, resume.
seal_audit_chain / archive_records (non-compensable)
Final irreversible steps. Two-engineer review before invoking.
Resume
matter ops saga-resume --instance <id>Validate
matter ops verify-dissolution --entity-id <id>Expected: entity in dissolved state, all 12 steps succeeded,
audit chain contains entity.dissolved event, post-dissolution
retention calendar started.
Post-recovery action items
- Update test fixtures for the failure mode.
- Run chaos drill on this scenario within 2 weeks.