Tx Doctor / Solana error library

Solana error library

Every entry explains what the error means, which program raises it, and the concrete steps that make it go away.

Diagnose my transaction

Slippage tolerance exceeded

Custom 6001 — The price moved further than the slippage you allowed, so the router refused to fill the trade and cancelled it. Nothing was swapped and no tokens…

Not enough token balance

Token 0x1 — The token account does not hold enough of the token to cover the transfer, or the amount was already spent by an earlier instruction in the same…

Not enough SOL to pay the fee

InsufficientFundsForFee — The fee payer did not have enough SOL to cover the network fee plus the rent for any new accounts the transaction creates.

Blockhash not found (expired)

BlockhashNotFound — The transaction referenced a recent blockhash that has already expired, so the network refuses to process it. This is a timeout, not a failure of your…

Token account is frozen

Token 0x11 — The token's issuer froze this token account, so it cannot send or receive that token until the issuer unfreezes it.

Token account owner mismatch

Token 0x4 — The token account is owned by a different wallet than the one signing, so the program refuses to move the tokens.

Account not initialized or not found

AccountNotFound — An account the transaction expects does not exist yet on chain, so the program cannot read or write it.

Transaction already processed

AlreadyProcessed — This exact signed transaction was already submitted and processed. It is usually a duplicate submission, not a new failure.

Compute budget exceeded

ProgramFailedToComplete — The transaction ran out of compute units before it finished, so the program was aborted mid-way.

Custom program error (unknown code)

Custom ... — A program rejected the transaction with an error code that only its own developers define. The logs around the failure usually reveal the reason.

Network too busy to include the transaction

AccountInUse — The transaction was dropped because the block or the account was oversubscribed. Nothing happened on chain.

Signature verification failed

SignatureFailure — The signature on the transaction did not match the message. The wallet signed different bytes than what was submitted.

Malformed or unsupported transaction

SanitizeFailure — The transaction could not be parsed by the node - it is structurally invalid or uses a version the endpoint does not support.

Not enough SOL for rent

InsufficientFundsForRent — Creating or funding an account would leave it below the rent-exempt minimum, so the network rejected the transaction.

Account would not be rent exempt

Token 0x0 — The token account would end up below the rent-exempt threshold, which the token program refuses to allow.

Mint mismatch

Token 0x3 — The token account holds a different mint than the one the instruction expects - usually a stale or wrong account was passed in.

Invalid account state

Token 0xd — The account exists but is not in a state the program can act on - for example an uninitialized or already-closed token account.

Token math overflow

Token 0xe — An arithmetic operation inside the token program overflowed - the amount is larger than the token's supply or decimals can represent.

Invalid slippage value

Custom 6004 — The slippage parameter itself was rejected - it was zero, negative, or above the program's allowed maximum.

Missing platform fee account

Custom 6003 — The route expected a platform fee account that was not supplied, so the swap was rejected before executing.

Invalid calculation in the route

Custom 6002 — The program's internal math rejected the route - usually a tiny amount, an extreme price impact, or a pool with almost no liquidity.

Invalid input or output index

Custom 6006 — The route referenced a token position that does not exist in the account list - a malformed route rather than a market problem.