Skip to content

Errors ​

This server ​

Problems the MCP server reports itself, before it sends anything. The hint a tool returns names the specifics.

NameRetry laterWhen
InvalidInputnoa parameter is missing or out of range; issues names each field
NotFoundnoan account the call reads does not exist on this cluster
NotAMintnoan address passed as a mint is not a token mint
RateLimitedyesthe RPC node is rate limiting; call again in a few seconds
Unreachableyesthe RPC node could not be reached: the connection was refused, the name did not resolve or the request failed; call again once it is back, and check whether a send landed before sending it again
CertificateUntrustednothis machine does not trust the RPC node's certificate, often because antivirus or a proxy inspects HTTPS
Unfundednoyour wallet has no SOL yet; fund it, then try again
Failednoan unexpected error; the hint carries its message
TransactionFailednothe transaction would fail for a reason this client does not name; read the logs
WalletNotConfigurednoa wallet tool was called on a server started without --wallet
NoClocknowait was given to a server built without a clock; call again without wait
WalletNotMainnetnothe RPC serves mainnet; wallet tools work on devnet, testnet and localnet only
NoWalletnothe server has no wallet yet; call solive_wallet_setup first
WalletEmptynothe wallet holds no SOL; fund it from a faucet, then try again
WalletTokenNotAllowednothe server was started with sell limits that do not name this token
WalletTradeLimitnothe trade sells more than the server's --wallet-per-trade limit for this token
ReleaseChangednothe release differs from the one previewed: its payee, amount, result, fee or the escrow itself changed; preview it again and show the user
ReleaseTooLargenothis split has too many co-authors to fit in one transaction; pass a lookup_table or reduce recipients as the hint says
WalletBusyyesanother server using the same wallet holds its sale record for a moment; call again
WalletHourLimityesthe wallet sold as much of this token in the last hour as the server's --wallet-per-hour limit allows; try later or sell less
AgentNotConfigurednosolive_agent_create was called on a server started without --agent
OwnerNotServednothe owner is not in the server's --agent-owners list
BudgetExhaustedyesthe agent or relayer key reached its hourly lamport budget; try again later
NoFreeNoncenono free nonce is left in the owner's window or the mandate's lane
NoFreeMandateIdnothis owner already granted this agent as many mandates as the client looks through; revoke one first
NoncePromisedyesthe nonce is held for another pending request; leave nonce out or ask again later
TooManyPendingyesthe owner has too many prepared requests waiting; submit some or let them expire
SubmitInFlightyesanother request is relaying the same intent; ask again in a moment
RelayerNotConfigurednosolive_submit_signed_intent was called on a server started without --relayer
RelayMintNotAcceptednothe relayer does not relay intents selling this token
RelayFeeTooLownothe relayer fee is below what this relayer charges for the input token
RelayTooCostlynorelaying would cost more lamports than this relayer pays per intent
RelayTooLongnothe intent expires later than this relayer accepts
RelayRateLimitedyesthe owner reached this relayer's hourly intent limit
RelayTooLargenothe signed terms do not fit in one transaction with this relayer
NonceTakennoa different intent already uses this nonce; these signed terms can never be submitted
SignatureInvalidnothe signature is not the owner's signature of these exact terms
SignatureMalformednothe signature is not a base58 Ed25519 signature
NotRentPayernoonly the wallet that paid an intent's rent may close it; cancel without close
NothingToCrankyesthe intent is not yet expired, or settling it pays this cranker nothing
FundingExceedsBountynorecreating the owner's token account costs more than the intent's bounty
OwnerAccountMissingnothe owner has no token account that can take the refund; crank with fund_accounts
NotDeliverablenothe intent is not an open proof escrow, so no work can be delivered to it
NoSpecUrlnothe escrow publishes no spec url, or is not a proof escrow; ask its owner where its acceptance spec lives
NotInvitednopay_to was not invited to the job: its spec is sealed to other wallets
SpecSealednothe spec is sealed to invited wallets, and this server's wallet is not one of them or it has no wallet
SpecUnreadableyesthe spec url could not be read this time: it failed or the node answered a temporary error; try again shortly
SpecUnfetchablenothe spec url cannot be read: it answered not-found, redirects, is larger than the limit, or is not a public http(s) address; ask the owner for a working spec url and do not retry this one
WorkUnreadableyesthe announced work could not be fetched this time: the request failed or the host answered a temporary error; try again shortly
WorkUnfetchablenothe announced work cannot be read here: its url is not sealed to this wallet, answers not-found, redirects, is larger than the limit, is not a public https address, or holds sealed work this wallet cannot open; do not retry it
NotEarliestAnnouncernoanother wallet announced the delivered work first; a release recording that work pays its earliest announcer
SealedSaltsnothe announcements seal their salts to the attestor's key, and this wallet cannot open them here, so the earliest announcer cannot be known; use the attestor's key file, or start the server with mcp --encryption-keypair naming the encryption key file whose public key the attestor's profile publishes
EncryptionKeyInvalidnothe file mcp --encryption-keypair names is not an encryption key file that profile encryption-key new writes, so nothing sealed to it can be opened; start the server with the right file
NoMessageSignernothe wallet cannot sign messages, and a delivery derives its salt from the wallet's signature; use a key file or give the signature the hint asks for
NotAnnouncednono work with this sha256 was announced for the escrow, so it is not recorded as what the release paid for
NotReleasednothe escrow has no release in its history, so no delivery can be recorded for it
NotAReleasenothe transaction named as the release is not a release of this escrow
ReleaseUnreadyesthe RPC node could not return the named release transaction; call again in a few seconds
HistoryLaggingyesthe RPC node has not returned every transaction the call reads yet; call again in a few seconds
OtherLifecyclenothe named release belongs to an earlier lifecycle of this escrow address, which was closed and made again at the same nonce, so it is not a release of the escrow there now
AlreadyRecordednothe release already records a delivered sha256, in its own memo or a follow-up, and a receipt reads the first
ConfirmMismatchyesthe second RPC node the server was started with, by --confirm-url, reports another genesis hash, escrow or earliest announcer than the first, or could not be read, so nothing was signed or sent; call again once both nodes agree
NeverSettlesnono release of this escrow could pay: after the judge fee, too little is left for the rounded-up protocol and partner fees; escrow more or lower the judge fee, as the hint says
ClaimListTooLargenothe escrow and the claim list its sealed spec sets do not fit in one transaction, and a Ledger signs only the one transaction it previewed; seal the spec to fewer workers, or escrow without claims and open them with intent-engine claims open --workers, which sends the list in parts
Ledgernothe wallet's Ledger did not sign: it was rejected on the device, or the device is locked, unplugged or not in the Solana app; nothing was sent, and the hint says which
NoFeePayernothe wallet is a Ledger, which signs only the release message, and the server was started without --fee-payer, the key file that signs and pays the release transaction
DeviceUnpreviewednothe wallet is a Ledger, which signs only the transaction a preview with the same arguments showed by message_hash: no such preview is kept, it expired, or this tool sends several at once; preview again, or send each piece with its own preview
HistoryTooLongnothe record a release depends on is incomplete, so it is refused rather than decided from part of it: the history is longer than the pages read, which more pages fix, or the RPC node's ledger does not reach back to the escrow's creation, or the transport cannot page signatures or report its first available slot, which more pages do not fix

Engine program ​

CodeNameRetry laterWhat to do
6000Overflownoan amount is too large for the arithmetic; use smaller amounts
6001DivideByZeronothe arithmetic divided by zero; validated order terms never reach this, so rebuild the transaction with this server
6002Truncatednothe instruction data was cut short; rebuild the transaction with this server
6003NonCanonicalnothe instruction data was not encoded canonically; rebuild the transaction with this server
6004UnknownKindnothe intent kind is not one the program knows; use swap, limit, dutch or attested
6005UnknownStatusnothe intent holds a status this version does not know; update to the latest @intent-engine/cli and read it again
6006InvalidParamsnothe order terms are inconsistent; check amounts are non-zero and the auction times are ordered
6007AmountMismatchnothe amounts do not match what the intent escrows; read the intent again and use its remaining amount
6008InsufficientOutputyesthe fill pays less than the intent requires right now; check what it requires with intent-engine quote --owner <address> --nonce <n>
6009InvalidTransitionnothe intent is not in a state that allows this; read its status with intent-engine show intent --owner <address> --nonce <n>
6010IntentExpirednothe intent has expired and can no longer be filled; its owner can still cancel it; anyone can expire it with intent-engine expire --owner <address> --nonce <n>
6011NotExpiredyesthe intent has not expired yet; wait until its expiry time and try again
6012NonceUsednothis nonce is already used; omit the nonce so the next free one is chosen
6013NonceOutOfWindownothis nonce is outside the owner's 256-nonce window or inside the agent nonce lanes; omit the nonce so the next free one is chosen
6014NonceRegressionnothe nonce base can only move forward
6015Unauthorizednoa signer or a named account does not match the one recorded on-chain (owner, rent payer, mandate agent, admin, guardian or upgrade authority); let this server pick the accounts and sign with the recorded key
6016CreatePausedyescreating intents is paused by the guardian or admin; try again later; intent-engine show config shows the pause bits in paused
6017KindDisablednothis intent kind is not enabled; intent-engine show config shows the enabled kinds as bits in enabledKinds
6018UnknownKindBitsnothe kind mask names kinds the program does not know
6019InvalidPauseFlagsnothe pause flags are empty or name pauses the program does not know; use create, fill or all
6020FeeTooHighnothe configured fee exceeds the program's maximum
6021NotPendingAdminnoonly the proposed admin can accept the admin role
6022ExpiryNotInFuturenothe expiry must be later than the current chain time; use a later expiry
6023SameMintnothe input and output mints must differ
6024MintNotAllowednothis mint cannot be used: it has a token extension the program refuses
6025RefundNotCanonicalnorefunds go only to the owner's canonical token account; let this server pick accounts
6026ReceiverNotAllowednothe 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
6027AuctionOutlivesExpirynothe dutch auction must end at or before the intent expires
6028FillPausedyesfills are paused by the guardian or admin, and with them new claims and stand-by joins; try again later; intent-engine show config shows the pause bits in paused
6029FeeAccountNotCanonicalnoa fee must go to its payee's canonical token account (the treasury's, the agent's or the judge's); let this server pick it
6030FeeAccountMissingnoa fee account was not passed: the treasury's, agent's or judge's at fill, or the relayer's at a signed create; create that token account and pass it
6031SolverOutputNotAllowednothe solver's output account is not acceptable for this fill
6032SigProgramnothe signature instruction must come from the Ed25519 program
6033SigHeadernothe Ed25519 instruction is malformed; rebuild it with this server
6034SigPubkeynothe signature was made by a different key than the owner
6035SigMessagenothe signed message does not match this intent; sign the exact message solive_prepare_signed_intent returns on a server started with --relayer
6036KindMismatchnothe instruction does not match the intent's kind
6037ResultOutOfBoundsnothe attested result is outside the intent's bounds
6038SigMissingnothe Ed25519 signature instruction is missing; rebuild the transaction with this server
6039InvalidDomainnothe config domain must not be zero; init-config takes it from the RPC's genesis hash, so point --url at the cluster you set up
6040SignatureExpirednothe signed intent passed its submit-by time; ask the owner to sign a new one
6041FlashCpinoa flash fill cannot be started from inside another program
6042FlashEndProgramnothe flash fill must end with this program's end_fill
6043FlashEndDiscriminatornothe flash fill's closing instruction is not end_fill
6044FlashEndIntentnothe flash fill ends a different intent than it began
6045FlashEndOrdernothe flash fill's begin and end are out of order
6046ReceiverCannotReceivenothe receiver token account cannot receive: frozen, closed, not initialized, for another mint or owner, or with an extension other than ImmutableOwner; use another receiver
6047RefundCannotReceivenothe refund account cannot take the refund: frozen, for another mint or owner, or with a foreign delegate, close authority or extension; refund to another account the owner controls, or wait for a frozen one to be thawed
6048FeeAboveBoundnothe current fees exceed the bound the solver accepted
6049ExtTooLongnothe extension data is too long
6050ExtMalformednothe extension data is malformed: badly encoded, tags unsorted or repeated, or a partner with a zero key or zero bps
6051ExtUnknownnothe extension data holds a field the program does not know
6052FlagsUnknownnothe intent flags name options the program does not know; leave flags unset
6053FillKindDisablednothe admin stopped fills of this kind, and with them new claims and stand-by joins; intent-engine show config shows the stopped kinds as bits in fillDisabledKinds
6054UnsupportedVersionnoan account has a version this program does not support
6055AmountInMismatchnothe fill must sell exactly the intent's remaining amount; read the intent again
6056EpochRegressionnothe signing epoch can only move forward
6057TreasuryMismatchnothe treasury account must be the configured fee recipient; let this server pick it
6058CrankBountyTooHighnothe crank bounty exceeds the program's maximum
6059CreateFeeTooHighnothe create fee exceeds the program's maximum
6060PartnerCutTooHighnothe partner cut must be at most 10000 bps
6061PartnerFeeTooHighnoa partner fee can be at most 100 bps
6062PartnerAccountMissingyesthe partner has no token account for the input mint yet; it must be created before a fill
6063PartnerAccountNotCanonicalnothe partner fee must go to the partner's canonical token account
6064MandateInvalidnothe mandate's terms are unsound: kinds must be swap, limit or dutch; per-intent cap above the agent fee; total at least the per-intent cap; max intents, max lifetime and floors non-zero; valid until a future time; a partner needs both key and bps; the agent neither empty nor the owner; or the owner has used every grant lane
6065MandateExpirednothe mandate has expired; the owner must grant a new one with intent-engine mandate grant
6066MandateKindnothe mandate does not allow this kind of intent
6067MandateTtlnothe intent lives longer than the mandate allows; choose an earlier expiry within it
6068MandateCapnothe intent draws more than the mandate's per-intent cap (amount sold plus agent fee); the owner set that cap, so stay within it or ask the owner, and never split or reword an order to get around it
6069MandateBudgetnothe mandate's total budget would be exceeded; check what remains with solive_get_mandate, served with --agent
6070MandateCountnothe mandate has already created as many intents as it allows
6071MandatePricenothe minimum output is below the price floor the owner set; do not weaken the person's price on your own: tell them the order is cheaper than the owner allows, or ask for at least the floor
6072MandateRevokednothis mandate no longer stands: the owner revoked it, granted that id again, or advanced their signing epoch; the owner must grant a new one
6073MandateMismatchnothe 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
6074CreateCostAboveCeilingyesthe engine's create fee or crank bounty rose above what this transaction allows; prepare it again and check the new cost before signing
6075NonceJumpTooLargenoone advance may move the nonce base at most 2^32 past its current value and never into the agent nonce lanes; advance in smaller steps
6076EpochJumpTooLargenoone advance may raise the signing epoch at most 2^48; advance-epoch always picks an allowed one, so rebuild the transaction with it
6077NotAProofnothe collaborative split settles only a proof intent that commits a spec hash; use the plain attested fill for a non-proof intent
6078SplitCountMismatchnothe recipient wallets, their weights, and the passed token accounts must be equal in number and within the engine's recipient cap
6079RecipientNotCanonicalnoeach split recipient account must be the recipient wallet's canonical associated token account for the input mint
6080SplitNotConservednothe split left lamports in the escrow; the recipient weights must sum to the whole and cover the entire net after fees
6081MintCapMissingnothis 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; the mint may have no cap yet, in which case the engine accepts no intents selling it
6082MintCapMismatchnothe account passed as the mint cap is not the engine's writable cap account for the input mint
6083MintCapPerOrdernothe amount escrowed exceeds the per-order cap the engine set for the input mint; lower the amount
6084MintCapWindowyesintents selling this mint have used the engine's escrow cap for the current window; try again once the window rolls, or lower the amount
6085MintCapInvalidnoa 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
6086CommitteeInvalidnoa 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
6087CommitteeSignersnothe votes name fewer members than the committee's threshold, or a member it does not have; gather votes from at least the threshold of its members
6088CommitteeMismatchnothe committee passed is not the judge the escrow names; release it with the committee its attestor field holds
6089ClaimTermsnoa 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
6090ClaimHeldyesanother worker holds this job's claim; only that worker can be paid until the claim lapses, then anyone can claim or be paid
6091ClaimsMissingnothis escrow takes claims, so a release or cancel must pass its claims board; let this server build it
6092ClaimsOpennothis escrow already takes claims
6093NotClaimantnoonly the worker holding the claim can drop it
6094StakeAccountMismatchnothe stake goes to the claimant when it is paid, otherwise to the escrow's owner; pass that account
6095ProfileInvalidnoa 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
6096ClaimCooldownyesthis worker dropped its claim on the job and may claim it again once that claim would have ended; any other worker may claim it now
6097ReleaseCannotSettlenothe judge fee leaves less of the escrow than the rounded-up protocol and partner fees, so no release could pay; lower the judge fee or escrow more
6098LineWaitingyesworkers stand by for this job, so it goes to them in line order and cannot be claimed directly; stand by to join the line
6099LineEmptynonobody stands by for this job, so no line is left to advance
6100JobNotHeldnonobody holds this job and nobody stands by, so claim it instead of standing by
6101LineEntryMismatchnoa line entry passed is not the line's next one, or a drop or advance passed none while workers wait; let this server build it
6102MintCapTotalyesintents selling this mint already hold the engine's total escrow limit for it; try again once open intents settle, or lower the amount
6103CommitteeRequirednothis 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; name such a committee as attestor, or escrow less
6104CommitteeFloorsFullnothe engine already keeps a committee floor for as many tokens as it can; set one of them to zero first
6105AccountOutdatednoan account has an earlier layout or version than this program reads; upgrade it with intent-engine migrate, or close it with intent-engine close-legacy and create it again
6106NotLegacynoclose-legacy closes only accounts of an earlier layout or version, and this one is current
6107LegacyPayeeMismatchnoclose-legacy pays the wallet the account's layout records as its payer, or the config's fee recipient when it records none; let intent-engine close-legacy build it
6108LegacyVaultOpennoclose-legacy closes an intent only once its vault is gone; cancel, expire or close the intent first so its owner gets every token back
6109LegacyMigratesnoclose-legacy never closes a config or user state; intent-engine migrate upgrades them in place
6110AlreadyCurrentnomigrate rewrites only accounts of an earlier layout or version, and this one is current
6111UnknownLayoutnomigrate reads only the layouts earlier programs wrote; close this account with intent-engine close-legacy
6112ConfigMissingnomigrating an open escrow reads the fee schedule from the config; let intent-engine migrate build it
6113LegacyLineOpennoclose-legacy never closes a claim board or stand-by entry of an open escrow, so the line keeps its order; intent-engine migrate upgrades it in place
6114ClaimListInvalidnoa claim list names 1 to 32 distinct wallets, none of them the empty address, and never more than the size its owner set
6115ClaimListIncompleteyesthe owner has not yet added every wallet its claim list names, so nobody can claim or stand by until the list is complete
6116NotListednothe escrow's owner named the wallets that may claim it, and this wallet is not one of them
6117ClaimListMissingnothis escrow's claims board records a claim list, so a claim, stand-by or closing settle must pass it; let this server build it
6118ClaimListSetnothis escrow's claim list is already set, and a set list never changes

Token programs ​

CodeNameRetry laterWhat to do
1InsufficientFundsnoa token account, or the allowance a signed or agent create draws through, holds less than the amount; lower the amount or fund the account
3MintMismatchnoa token account belongs to a different mint than the intent uses
4OwnerMismatchnoa token account is not owned by the expected wallet
17AccountFrozenyesa token account is frozen by its issuer; try again once it is thawed
36NoMemonoa token account requires a memo on incoming transfers; its owner must turn that off before it can receive
42CpiGuardTransferBlockednothe owner's token account has CPI Guard on, which stops the engine moving tokens on the owner's signature; turn CPI Guard off, or create a signed intent with intent-engine signed prepare, which draws through the engine's allowance