“Blockhash not found” when sending a Solana transaction
The node did not recognise the recent blockhash the transaction was signed with.
Blockhash not found
Cause
Every transaction carries a recent blockhash and is only valid for a limited number of blocks after it. A node answers “Blockhash not found” when the hash has expired, or when the node itself has not yet seen the block that hash came from (for example when the blockhash was fetched from one RPC and the transaction sent to another that lags behind).
Fix
- Fetch a fresh blockhash right before signing, and send through the same RPC you read it from.
- Use the same commitment level for fetching the blockhash and for the preflight simulation.
- If you retry, re-sign with a new blockhash instead of resending the expired transaction.
Fee charged? No. A transaction that is rejected for its blockhash never enters a block, so no fee is taken.
FAQ
What does “Blockhash not found” mean?
Every transaction carries a recent blockhash and is only valid for a limited number of blocks after it. A node answers “Blockhash not found” when the hash has expired, or when the node itself has not yet seen the block that hash came from (for example when the blockhash was fetched from one RPC and the transaction sent to another that lags behind).
How do I fix it?
Fetch a fresh blockhash right before signing, and send through the same RPC you read it from. Use the same commitment level for fetching the blockhash and for the preflight simulation. If you retry, re-sign with a new blockhash instead of resending the expired transaction.
Was I charged a fee?
No. A transaction that is rejected for its blockhash never enters a block, so no fee is taken.
“Insufficient funds for rent”“Exceeded CUs meter” / “Computational budget exceeded”“Transaction simulation failed”“Found no record of a prior credit” / “insufficient funds for fee”