Engine errors
Every error the engine program raises, from its IDL. When an SDK call fails, client.explain(error) returns the code and name of the engine error behind it, or null if the engine raised none. Retry later yes means the cause can pass with time, so the same call can succeed later.
| Code | Name | Retry later | Meaning |
|---|---|---|---|
| 6000 | Overflow | no | an amount is too large for the arithmetic |
| 6001 | DivideByZero | no | the arithmetic divided by zero |
| 6002 | Truncated | no | the instruction data was cut short |
| 6003 | NonCanonical | no | the instruction data was not encoded canonically |
| 6004 | UnknownKind | no | the intent kind is not one the program knows |
| 6005 | UnknownStatus | no | the intent holds a status this version does not know |
| 6006 | InvalidParams | no | the order terms are inconsistent |
| 6007 | AmountMismatch | no | the amounts do not match what the intent escrows |
| 6008 | InsufficientOutput | yes | the fill pays less than the intent requires right now |
| 6009 | InvalidTransition | no | the intent is not in a state that allows this |
| 6010 | IntentExpired | no | the intent has expired and can no longer be filled |
| 6011 | NotExpired | yes | the intent has not expired yet |
| 6012 | NonceUsed | no | this nonce is already used |
| 6013 | NonceOutOfWindow | no | this nonce is outside the owner's 256-nonce window or inside the agent nonce lanes |
| 6014 | NonceRegression | no | the nonce base can only move forward |
| 6015 | Unauthorized | no | a signer or a named account does not match the one recorded on-chain (owner, rent payer, mandate agent, admin, guardian or upgrade authority) |
| 6016 | CreatePaused | yes | creating intents is paused by the guardian or admin |
| 6017 | KindDisabled | no | this intent kind is not enabled |
| 6018 | UnknownKindBits | no | the kind mask names kinds the program does not know |
| 6019 | InvalidPauseFlags | no | the pause flags are empty or name pauses the program does not know |
| 6020 | FeeTooHigh | no | the configured fee exceeds the program's maximum |
| 6021 | NotPendingAdmin | no | only the proposed admin can accept the admin role |
| 6022 | ExpiryNotInFuture | no | the expiry must be later than the current chain time |
| 6023 | SameMint | no | the input and output mints must differ |
| 6024 | MintNotAllowed | no | this mint cannot be used: it has a token extension the program refuses |
| 6025 | RefundNotCanonical | no | refunds go only to the owner's canonical token account |
| 6026 | ReceiverNotAllowed | no | the receiver account is not owned by the named receiver authority, the authority is an engine account, or (for a mandate) the receiver is not an account the owner controls |
| 6027 | AuctionOutlivesExpiry | no | the dutch auction must end at or before the intent expires |
| 6028 | FillPaused | yes | fills are paused by the guardian or admin, and with them new claims and stand-by joins |
| 6029 | FeeAccountNotCanonical | no | a fee must go to its payee's canonical token account (the treasury's, the agent's or the judge's) |
| 6030 | FeeAccountMissing | no | a fee account was not passed: the treasury's, agent's or judge's at fill, or the relayer's at a signed create |
| 6031 | SolverOutputNotAllowed | no | the solver's output account is not acceptable for this fill |
| 6032 | SigProgram | no | the signature instruction must come from the Ed25519 program |
| 6033 | SigHeader | no | the Ed25519 instruction is malformed |
| 6034 | SigPubkey | no | the signature was made by a different key than the owner |
| 6035 | SigMessage | no | the signed message does not match this intent |
| 6036 | KindMismatch | no | the instruction does not match the intent's kind |
| 6037 | ResultOutOfBounds | no | the attested result is outside the intent's bounds |
| 6038 | SigMissing | no | the Ed25519 signature instruction is missing |
| 6039 | InvalidDomain | no | the config domain must not be zero |
| 6040 | SignatureExpired | no | the signed intent passed its submit-by time |
| 6041 | FlashCpi | no | a flash fill cannot be started from inside another program |
| 6042 | FlashEndProgram | no | the flash fill must end with this program's end_fill |
| 6043 | FlashEndDiscriminator | no | the flash fill's closing instruction is not end_fill |
| 6044 | FlashEndIntent | no | the flash fill ends a different intent than it began |
| 6045 | FlashEndOrder | no | the flash fill's begin and end are out of order |
| 6046 | ReceiverCannotReceive | no | the receiver token account cannot receive: frozen, closed, not initialized, for another mint or owner, or with an extension other than ImmutableOwner |
| 6047 | RefundCannotReceive | no | the refund account cannot take the refund: frozen, for another mint or owner, or with a foreign delegate, close authority or extension |
| 6048 | FeeAboveBound | no | the current fees exceed the bound the solver accepted |
| 6049 | ExtTooLong | no | the extension data is too long |
| 6050 | ExtMalformed | no | the extension data is malformed: badly encoded, tags unsorted or repeated, or a partner with a zero key or zero bps |
| 6051 | ExtUnknown | no | the extension data holds a field the program does not know |
| 6052 | FlagsUnknown | no | the intent flags name options the program does not know |
| 6053 | FillKindDisabled | no | the admin stopped fills of this kind, and with them new claims and stand-by joins |
| 6054 | UnsupportedVersion | no | an account has a version this program does not support |
| 6055 | AmountInMismatch | no | the fill must sell exactly the intent's remaining amount |
| 6056 | EpochRegression | no | the signing epoch can only move forward |
| 6057 | TreasuryMismatch | no | the treasury account must be the configured fee recipient |
| 6058 | CrankBountyTooHigh | no | the crank bounty exceeds the program's maximum |
| 6059 | CreateFeeTooHigh | no | the create fee exceeds the program's maximum |
| 6060 | PartnerCutTooHigh | no | the partner cut must be at most 10000 bps |
| 6061 | PartnerFeeTooHigh | no | a partner fee can be at most 100 bps |
| 6062 | PartnerAccountMissing | yes | the partner has no token account for the input mint yet |
| 6063 | PartnerAccountNotCanonical | no | the partner fee must go to the partner's canonical token account |
| 6064 | MandateInvalid | no | the mandate's terms are unsound: kinds must be swap, limit or dutch |
| 6065 | MandateExpired | no | the mandate has expired |
| 6066 | MandateKind | no | the mandate does not allow this kind of intent |
| 6067 | MandateTtl | no | the intent lives longer than the mandate allows |
| 6068 | MandateCap | no | the intent draws more than the mandate's per-intent cap (amount sold plus agent fee) |
| 6069 | MandateBudget | no | the mandate's total budget would be exceeded |
| 6070 | MandateCount | no | the mandate has already created as many intents as it allows |
| 6071 | MandatePrice | no | the minimum output is below the price floor the owner set |
| 6072 | MandateRevoked | no | this mandate no longer stands: the owner revoked it, granted that id again, or advanced their signing epoch |
| 6073 | MandateMismatch | no | the intent differs from the mandate's fixed terms: same mints, no flags, the owner's partner only, and proceeds to an account the owner holds |
| 6074 | CreateCostAboveCeiling | yes | the engine's create fee or crank bounty rose above what this transaction allows |
| 6075 | NonceJumpTooLarge | no | one advance may move the nonce base at most 2^32 past its current value and never into the agent nonce lanes |
| 6076 | EpochJumpTooLarge | no | one advance may raise the signing epoch at most 2^48 |
| 6077 | NotAProof | no | the collaborative split settles only a proof intent that commits a spec hash |
| 6078 | SplitCountMismatch | no | the recipient wallets, their weights, and the passed token accounts must be equal in number and within the engine's recipient cap |
| 6079 | RecipientNotCanonical | no | each split recipient account must be the recipient wallet's canonical associated token account for the input mint |
| 6080 | SplitNotConserved | no | the split left lamports in the escrow |
| 6081 | MintCapMissing | no | this create or exit did not pass the input mint's cap account, which the engine needs when it requires caps and whenever escrow it counted leaves |
| 6082 | MintCapMismatch | no | the account passed as the mint cap is not the engine's writable cap account for the input mint |
| 6083 | MintCapPerOrder | no | the amount escrowed exceeds the per-order cap the engine set for the input mint |
| 6084 | MintCapWindow | yes | intents selling this mint have used the engine's escrow cap for the current window |
| 6085 | MintCapInvalid | no | a mint cap needs a per-order cap above zero, a window cap at least the per-order cap, and a window of at least 60 seconds |
| 6086 | CommitteeInvalid | no | a committee needs 1 to 8 distinct members in ascending order, a threshold from 1 to its member count, a fee wallet, and an address that is the hash of exactly those terms |
| 6087 | CommitteeSigners | no | the votes name fewer members than the committee's threshold, or a member it does not have |
| 6088 | CommitteeMismatch | no | the committee passed is not the judge the escrow names |
| 6089 | ClaimTerms | no | a claim's terms are out of bounds: at most 7 days and 100 SOL of stake, and a claim cannot run past the escrow's expiry |
| 6090 | ClaimHeld | yes | another worker holds this job's claim |
| 6091 | ClaimsMissing | no | this escrow takes claims, so a release or cancel must pass its claims board |
| 6092 | ClaimsOpen | no | this escrow already takes claims |
| 6093 | NotClaimant | no | only the worker holding the claim can drop it |
| 6094 | StakeAccountMismatch | no | the stake goes to the claimant when it is paid, otherwise to the escrow's owner |
| 6095 | ProfileInvalid | no | a profile needs 1 to 8 distinct lowercase skill tags of at most 16 letters, digits or dashes, an https endpoint of at most 128 printable characters, and a document url only together with its sha256 |
| 6096 | ClaimCooldown | yes | this worker dropped its claim on the job and may claim it again once that claim would have ended |
| 6097 | ReleaseCannotSettle | no | the judge fee leaves less of the escrow than the rounded-up protocol and partner fees, so no release could pay |
| 6098 | LineWaiting | yes | workers stand by for this job, so it goes to them in line order and cannot be claimed directly |
| 6099 | LineEmpty | no | nobody stands by for this job, so no line is left to advance |
| 6100 | JobNotHeld | no | nobody holds this job and nobody stands by, so claim it instead of standing by |
| 6101 | LineEntryMismatch | no | a line entry passed is not the line's next one, or a drop or advance passed none while workers wait |
| 6102 | MintCapTotal | yes | intents selling this mint already hold the engine's total escrow limit for it |
| 6103 | CommitteeRequired | no | this escrow reaches the committee floor the engine sets for its token, so its attestor must be a committee of at least 2 judges, passed with the create |
| 6104 | CommitteeFloorsFull | no | the engine already keeps a committee floor for as many tokens as it can |
| 6105 | AccountOutdated | no | an account has an earlier layout or version than this program reads |
| 6106 | NotLegacy | no | close-legacy closes only accounts of an earlier layout or version, and this one is current |
| 6107 | LegacyPayeeMismatch | no | close-legacy pays the wallet the account's layout records as its payer, or the config's fee recipient when it records none |
| 6108 | LegacyVaultOpen | no | close-legacy closes an intent only once its vault is gone |
| 6109 | LegacyMigrates | no | close-legacy never closes a config or user state |
| 6110 | AlreadyCurrent | no | migrate rewrites only accounts of an earlier layout or version, and this one is current |
| 6111 | UnknownLayout | no | migrate reads only the layouts earlier programs wrote |
| 6112 | ConfigMissing | no | migrating an open escrow reads the fee schedule from the config |
| 6113 | LegacyLineOpen | no | close-legacy never closes a claim board or stand-by entry of an open escrow, so the line keeps its order |
| 6114 | ClaimListInvalid | no | a claim list names 1 to 32 distinct wallets, none of them the empty address, and never more than the size its owner set |
| 6115 | ClaimListIncomplete | yes | the owner has not yet added every wallet its claim list names, so nobody can claim or stand by until the list is complete |
| 6116 | NotListed | no | the escrow's owner named the wallets that may claim it, and this wallet is not one of them |
| 6117 | ClaimListMissing | no | this escrow's claims board records a claim list, so a claim, stand-by or closing settle must pass it |
| 6118 | ClaimListSet | no | this escrow's claim list is already set, and a set list never changes |