Errors & states
What happens when you click a button
Every write action moves through the same states. Knowing them makes almost every error self-explanatory.
The happy path
- Building — your browser turns the form into Solana instructions. Nothing has left your machine.
- Simulating — Solstack asks an RPC node to dry-run the transaction. This catches most errors before you sign or spend anything.
- Awaiting approval — your wallet opens. The transaction is real now but not yet signed. Reject here and nothing happens.
- Submitted — the signed transaction is sent to an RPC node and enters the network. You'll see a signature.
- Confirmed — a supermajority of validators have voted on the block. Safe to rely on for most purposes.
- Finalized — the block is 31+ confirmations deep and cannot be rolled back. Solstack waits for this on irreversible actions.
Where it can go wrong
| Rejected in wallet | You clicked Cancel / Reject. No fee, no effect. Just re-run when ready. |
|---|---|
| Simulation failed | The dry-run hit an error — see Wallet & signing errors. Nothing was signed or spent. |
| Expired / blockhash not found | You took too long to approve (~60–90s). The transaction is dead — re-run to get a fresh blockhash. |
| Dropped | Submitted but never picked up, usually during congestion. Re-run; consider a priority fee. |
| Failed on-chain | It ran but a program returned an error. A fee was still charged. The error code tells you why. |
A signature appearing does not mean success. Always wait for the confirmed/finalized state — Solstack shows it, and Transaction Inspector can verify any signature after the fact.
NextWallet & signing errors →