Solana Transaction Forensics
Paste a failed transaction signature and get the most likely reason it failed, the instruction where it failed, the program involved, the relevant logs, and a fix suggestion.
Insufficient token balance
Decode Workspace
We will fetch the provider data, parse the logs, and rank the most likely cause.
Failure Atlas
Common Solana transaction failure patterns recognized by EinstainedTX. Each pattern includes typical log fragments, likely programs, and fix guidance.
The source token account does not have enough tokens to complete the transfer or swap.
custom program error: 0x1
insufficient funds
Error: Instruction: Transfer
Fix:Verify token balance before sending. Fund the account or reduce the transfer amount.
The fee payer wallet does not have enough SOL to cover the transaction fee.
insufficient lamports
Transfer: insufficient
Fix:Fund the wallet with SOL. Check minimum balance for rent exemption.
A token account required by the instruction has not been created or initialized yet.
custom program error: 0x3
account not initialized
uninitialized account
Fix:Create and initialize the token account or ATA before use.
Attempted to create an ATA that already exists, or the ATA derivation is wrong.
an account with the same address already exists
associated_token_account
Fix:Use getOrCreateAssociatedTokenAccount or createAssociatedTokenAccountIdempotent.
The transaction is missing a signature from a required authority.
missing required signature
signature verification failed
Fix:Ensure all required keypairs sign the transaction.
An account is not owned by the expected program.
owner does not match
custom program error: 0x4
provided owner is not allowed
Fix:Verify the account owner matches the program that is trying to use it.
The recent blockhash used in the transaction has expired. Transactions are only valid for ~60-90 seconds.
blockhash not found
block height exceeded
BlockhashNotFound
Fix:Fetch a fresh blockhash right before sending. Consider durable nonces for long-lived transactions.
The swap output amount fell below the minimum specified by your slippage setting.
slippage
exceeds desired
too little received
Fix:Increase slippage tolerance or get a fresher quote.
An Anchor #[account] constraint check failed (has_one, constraint, seeds, etc).
constraint was violated
has_one constraint was violated
ConstraintRaw
Fix:Check all account constraints in the program. Verify PDA derivation, authority, and has_one fields.
The account's 8-byte discriminator doesn't match what the program expects. Usually means wrong account type.
account discriminator mismatch
AccountDiscriminatorMismatch
custom program error: 0xbbf
Fix:Ensure the correct account type is passed. Verify IDL matches deployed program.
The instruction data could not be deserialized by the program.
invalid instruction data
failed to deserialize
instruction data too small
Fix:Verify instruction data encoding. Check IDL version matches the deployed program.
The instruction requires more account keys than were provided.
not enough account keys
an account required by the instruction is missing
Fix:Include all required accounts in the instruction. Check PDA seeds and derivation.
An account doesn't have enough lamports to be rent-exempt.
not rent exempt
insufficient funds for rent
Fix:Allocate enough lamports using getMinimumBalanceForRentExemption.
The transaction consumed more compute units than the budget allows.
computational budget exceeded
exceeded CUs meter
program failed to complete
Fix:Request more compute units with ComputeBudgetProgram.setComputeUnitLimit.
The program returned a custom error code. Meaning depends on the specific program.
custom program error: 0x
Fix:Look up the error code in the program source, IDL, or documentation.