1 · Which settles faster, Polygon or Ethereum?
1 · Which settles faster, Polygon or Ethereum?
2 · The chaos suite fails the swap step. What does the sender's balance end up as?
2 · The chaos suite fails the swap step. What does the sender's balance end up as?
3 · Compliance rejects a transfer. Which journals are posted?
3 · Compliance rejects a transfer. Which journals are posted?
reserve.A rejected or flagged transfer never reaches the first step that posts anything, so there is nothing to compensate. compliance is the only step whose compensation is genuinely a no-op.4 · The rail returns a timeout. Retry or unwind?
4 · The rail returns a timeout. Retry or unwind?
RailError.retryable is true for a timeout.A timeout is not a failure; it is the absence of information about whether the payout landed. That ambiguity is the entire reason idempotency keys exist. Resubmitting with the same key returns the original receipt if the rail already acted.A rejection: account_closed, invalid_beneficiary: is retryable: false. Retrying it just fails again, more slowly.5 · The settle step compensates. Is the on-chain transaction reversed?
5 · The settle step compensates. Is the on-chain transaction reversed?
6 · Is the network-fee journal reversed during compensation?
6 · Is the network-fee journal reversed during compensation?
expense.network_fee.ETH, Cr asset.float.chain.ETH: so the trial balance stays zero either way.7 · Compensation walks steps backwards. Would forwards change the final balances?
7 · Compensation walks steps backwards. Would forwards change the final balances?
8 · A payment is submitted at 16:00 to a rail with a 15:00 cut-off and next-business-day latency. When does it arrive?
8 · A payment is submitted at 16:00 to a rail with a 15:00 cut-off and next-business-day latency. When does it arrive?
9 · The settle step broadcasts and no error is thrown. Is it settled?
9 · The settle step broadcasts and no error is thrown. Is it settled?
final. Checking final rather than “no error was thrown” is the difference between confirming settlement and confirming submission, and the wrong version looks correct until the day something is dropped.10 · A transaction failed. Another was dropped. Which cost gas?
10 · A transaction failed. Another was dropped. Which cost gas?
11 · A quote was issued four minutes ago. Can it be executed?
11 · A quote was issued four minutes ago. Can it be executed?
assertUsable throws.A quote is a short-dated option you have written and given away for free. The customer exercises it if the rate moved in their favour and abandons it otherwise, so honouring a stale quote is a systematic unhedged loss, not a random one.The check happens at execution, not at display. Validating when the screen rendered tells you nothing about the state when the button was pressed.12 · A reversal itself throws during compensation. What is the saga's status?
12 · A reversal itself throws during compensation. What is the saga's status?
compensation_failed: a distinct terminal state from compensated, precisely so it can be alerted on.The saga stops rather than retrying blindly into a partially-unwound state. This is the one outcome that needs a human, and a real system escalates it to an operational case with the completed and failed steps attached.In Arc that case management is Phase 8 and does not exist yet, which is a stated gap rather than a solved problem.