How the blockhash works
Every transaction includes a recent blockhash, which validators check against a rolling window of recently produced blocks. If the hash is outside that window, the transaction is invalid and cannot be processed.
This means a signed transaction has a natural expiry and cannot be replayed later, which is a useful security property.
What you see when it expires
The transaction simply never appears. There is no pending state to cancel and no stuck nonce to clear. Clients report it as expired or not confirmed, and you resubmit.
Nothing was charged, because it was never processed. This is different from an EVM revert, where the fee is consumed.
Why this happens more during congestion
When demand is high, under-priced transactions are not selected and the window elapses while they wait. The expiry is the visible symptom; the priority fee is usually the cause.
Clients retry by rebuilding with a fresh blockhash and a higher fee rather than resending the same signed payload, which would still be expired.
Durable nonces exist for the cases where a transaction genuinely must be signed in advance and submitted later, such as multisig coordination. They replace the blockhash with a stored value that only advances when used, and they are deliberately uncommon in ordinary flows.
What it means for swapping
A quote and a signature must be close together in time. Leaving a confirmation screen open and signing several minutes later produces an expired transaction rather than a stale trade, which is arguably safer.
FBT Swap builds Solana transactions with a fresh blockhash at signing time and re-quotes before submission, so the common failure is expiry you can retry rather than a bad fill.