Fill errors
A failed Solana fill usually surfaces as a numeric error with no message. The table below maps the common codes for the current deployment (Anchor 0.31.1). Treat each row as a likely cause, not a definitive diagnosis. Before interpreting a code, identify which program and instruction actually failed: errors from inner CPIs — the System Program, SPL Token, orintents_protocol — are reported through the same channel.
Settlement and refund errors
These come frominput_settler_escrow, or from intents_protocol when the escrow consumes an attestation through CPI.
Input-first settlement errors
An input-first settlement fails as one transaction. These six errors come frominput_settler_escrow.
output_settler_simple has its own NotTopLevel (6507, 0x196b) for a compact fill invoked by a program.
Proof, non-fill, and rent errors
Each program now has its own error range:
CommonErrors 6000–6022 (shared), intents_protocol 61xx, input settler 62xx–63xx, output settler 64xx–65xx, oracles 66xx–68xx. A shared CommonErrors code can still come from any of the programs, and SPL Token, the System Program, and Anchor itself use their own numbers. Read the failing program id from the logs before reading the code, then look it up in errors.json — see Events and errors.Reading raw errors
Anchor error numbers are decimal, while raw logs use hex (3007 = 0xbbf). Map “Instruction N” against the complete transaction. Wallets and builders may prepend ComputeBudget instructions and shift the index.
Preflight and RPC behavior
When a transaction fails in preflight, there is no on-chain transaction andgetTransaction/getLogs have nothing to show. Read the simulation logs from the error object itself (error.logs in web3.js), or re-simulate the signed transaction. Two more RPC realities:
TransactionExpiredBlockheightExceededErroris a client-side timeout, never a verdict — the transaction may still have landed. Check the signature status before rebuilding and retrying, or you may pay twice.- A
confirmedtransaction can still be rolled back in rare cases; usefinalizedwhere finality matters.
Next steps
Solana fills
The fill instructions and their validation rules
Solana programs
The program reference behind these errors

