The on-chain Anchor error enum. Every revert maps to one of these.

NotActiveCommitment is in a terminal state (Executed/Cancelled/Expired) or doesn't exist.
NotOwnerCaller is not the commitment owner. Cancel is owner-only.
ExpiredTried to execute past expiry_ts. Call expire_commitment instead.
NotYetExpiredTried to expire before expiry_ts. Wait or have the owner cancel.
TriggerNotReachedTime-gated trigger not yet satisfied (TimeOnly / JupiterRoutableAfter).
PriceCapExceededJupiter delivered tokens at a price > max_price. Keeper should retry with a better route.
MinFillNotMetJupiter delivered fewer target tokens than min_fill, or input not fully consumed.
UnsupportedPaymentMintPayment mint not in the {USDC, USDT, wSOL} allowlist.
UnsupportedExtensionTarget mint carries a forbidden Token-2022 extension (transfer fee, transfer hook, etc).
UnsupportedTokenProgramTarget mint is owned by neither SPL Token nor Token-2022.
InvalidMintMint account is malformed or short.
WrongOutputMintJupiter route's destination mint doesn't match commitment.target_mint.
WrongInputMintAccount constraint mismatch on payment_mint.
InvalidRouteDiscriminatorswap_data discriminator isn't sharedAccountsRoute. fillr only accepts that variant.
InvalidJupiterProgramjupiter_program account key ≠ JUP6Lkb... or event-authority mismatch.
InsufficientRemainingAccountsKeeper passed fewer than 3 remaining accounts (programAuthority + source + dest pool).
MathOverflowu128 multiplication or u64 subtraction overflowed. Should never trigger in practice.
DivisionByZeroEffective price computation got zero tokens received.
InvalidPricemax_price must be > 0.
InvalidMinFillmin_fill must be > 0.
InvalidPaymentAmountpayment_amount must be > 0.
ExpiryInPastexpiry_ts must be in the future.
ExpiryTooFarexpiry_ts exceeds the 30-day max.
BountyTooLowkeeper_bounty below MIN_KEEPER_BOUNTY (100_000 lamports = 0.0001 SOL).
BountyTooHighkeeper_bounty above MAX_KEEPER_BOUNTY (1_000_000_000 lamports = 1 SOL).
SameMinttarget_mint == payment_mint. Pick a different target.
BadTreasurytreasury_payment_ata isn't owned by TREASURY, or its mint doesn't match.