Custom errors start at Anchor’s standard offset (6000). Anchor constraint violations (has_one, seeds, ATA constraints) surface as Anchor’s built-in error codes and are not listed here, with one exception: the Unauthorized custom error is attached to the oracle-signer and liquidation-owner constraints.

Client handling notes

  • Slippage: retry with a fresh quote; both curve and AMM state may have moved between simulation and execution.
  • Frozen: subscribe to BreakerTripped to distinguish a breaker halt from an admin freeze; positions can still add_collateral while frozen.
  • CrankTooSoon / PushTooSoon: benign races between competing keepers/relayer retries; back off to the configured interval.
  • NoIndex: a freshly created market needs at least one push_index before graduation and any CDP activity.
  • IndexStale: the relayer has not pushed within max_index_age_secs. Index-priced operations resume on the next accepted push; nothing needs to be reset.
  • ItemNotInEscrow: item withdrawals are first-come while escrow inventory lasts; re-quote against Market.items_deposited before retrying.