Reference
Errors
Every error the program can return, what it means, and what to do about it.
Errors come back from the program as Anchor error codes starting at 6000. The app shows the message in the transaction tracker.
| Code | Name | Message | What to do |
|---|---|---|---|
| 6000 | InvalidAuthority | Authority keys must be valid, distinct, and authorized. | A key isn't allowed to do this, such as a proposer challenging its own checkpoint. |
| 6001 | InvalidParameters | Parameters violate configured market bounds. | The market has started, or the rate isn't a whole number of ticks at or below the cap, or the notional is zero. |
| 6002 | InvalidCohort | Frozen cohort must be complete, ordered, and bounded to eight validators. | A checkpoint post didn't list exactly the cohort's accounts. |
| 6003 | InvalidEvidence | Evidence hash, epoch, or observed slot is invalid. | A post named an unfinished epoch or a slot outside it. |
| 6004 | InvalidDenominator | Every cohort validator needs a positive attested effective stake denominator. | A post was missing stake for a validator. |
| 6005 | InvalidState | Instruction is not permitted in the current state. | The order was taken or cancelled first, you tried to take your own order, or the checkpoint moved on. Refresh and look again. |
| 6006 | ChallengeWindow | Challenge window has not elapsed or checkpoint is disputed. | Finalizing too early. Wait for the window to close. |
| 6007 | SourceChanged | Immutable source evidence changed. | A tip account changed after the post. The checkpoint can't finalize as posted. |
| 6008 | InvalidSource | Jito owner, PDA, vote, uploader, or layout does not match. | A tip account isn't the cohort validator's account for that epoch. |
| 6009 | MissingRoot | Jito distribution root is missing. | A cohort validator's tips haven't been rooted yet. The post has to wait. |
| 6010 | MutableRoot | Jito root is mutable or claim totals are invalid. | No claim has been made from a root yet, so it could still change. The post has to wait. |
| 6011 | UnbackedTips | Declared Jito distribution exceeds deposited funds excluding rent. | A tip account declares more than it holds. |
| 6012 | Arithmetic | Checked arithmetic overflow or invalid divisor. | An amount is too large. Use a smaller notional. |
| 6013 | InsufficientMargin | Funded margin is insufficient for payment. | A payment would exceed a balance or take an account below its rent. Deposits are sized so this doesn't happen in normal use. |
| 6014 | UnsettledEpoch | Contiguous finalized epoch settlement is required. | The next epoch isn't final yet, or an earlier one hasn't settled. |
| 6015 | HealthyMargin | Position maintenance margin is healthy. | Liquidate was sent for a position that is still covered. |
| 6016 | OracleTimeout | Contractual oracle timeout has not elapsed. | Ending a position too early, or posting a checkpoint after the delay limit. |
| 6017 | InvalidStake | CREST stake account must hold the configured mint and belong to the stake's owner. | Post from a CREST account the proposer owns. A released stake goes only to the stored proposer or challenger. |
| 6018 | OrderChanged | The order's terms differ from the terms the taker named. | The order was replaced since you picked it. Look at the book again and take it on its current terms. |
| 6019 | WindowPastCutoff | The challenge window would close after the last slot a checkpoint can be finalized. | A post came too late in the delay limit for its window to close. |
Errors before the program#
Some failures happen before a transaction reaches the program, and the tracker says so:
- Signature declined in the wallet: nothing was sent.
- The wallet does not hold enough SOL: it can't cover the deposit, the rent and the fee.
- The transaction expired before it was sent: its blockhash aged out while it waited for your signature. Try again; the app builds a fresh one.
- An account with this order id already exists: the app numbers orders by the current time, so this means the same order was sent twice at once. Try again.