Errors & states
Transaction lifecycle
Every action that writes to the chain goes through the same sequence of states.
Normal flow
- Building: your browser turns the form into Solana instructions. Nothing has been sent yet.
- Simulating: Solstack asks an RPC node to dry-run the transaction, which catches most errors before you sign or spend anything.
- Awaiting approval: your wallet opens with the transaction, which is not yet signed. Rejecting it here has no effect.
- Submitted: your wallet returns the signed transaction and Solstack sends it through the RPC node for the selected network. A transaction signature is shown. (Wallets that cannot sign without sending submit it themselves.)
- Confirmed: a supermajority of validators has voted on the block. This is sufficient for most purposes.
- Finalized: the block has 31 or more confirmations and cannot be rolled back. Solstack waits for finalization on irreversible actions.
Where it can go wrong
| Rejected in wallet | You clicked Cancel or Reject. No fee is charged and nothing changes. Run the action again when ready. |
|---|---|
| Simulation failed | The dry run returned an error (see Wallet & signing errors). Nothing was signed or spent. |
| Expired / blockhash not found | The approval took longer than the blockhash is valid, about 60–90 seconds. The transaction can no longer land; run the action again to get a fresh blockhash. |
| Dropped | The transaction was submitted but never included in a block, usually because of congestion. Run it again, with a priority fee if the tool offers one. |
| Failed on-chain | The transaction was processed but a program returned an error. The network fee is still charged, and the error code explains the cause. |
A transaction signature does not mean the transaction succeeded. Wait for the confirmed or finalized status.
NextWallet & signing errors →