Skip to main content

Error Message: Transaction Expired Before Signing

Guide to fixing the "Transaction Expired Before Signing" error on Solana, covering outdated wallet versions, hardware wallet connection issues, a blockhash that expired while you were signing, and low priority fees.

Written by Johnny

If you see this error, please work through these steps in order:

1. Update your wallet software and firmware first (most common cause)

In most cases, this error is caused by an outdated version of your wallet extension or Ledger firmware, so before any other troubleshooting, make sure everything is up to date:

  • Ledger users: Update your Ledger firmware and the Solana app on your device via Ledger Live, even if you believe your version is recent.

  • Wallet extension users (Phantom, Solflare, etc.): Update the extension to the latest version and restart your browser.

Important: Being able to transfer funds between wallets does not mean your version is fine. Simple transfers and smart contract interactions (like staking or unstaking on Marinade) work differently, an outdated version can handle transfers without issue but still fail when interacting with a smart contract. Always update before continuing to troubleshoot.

2. Hardware wallet connection issues

If you're using a hardware wallet, there may be a connection problem between the device and your wallet extension. Disconnect and re-establish the connection.

  • Ledger users: Ensure "Blind Signing" is turned ON in the Solana app settings on your device. A firmware update can silently reset this back to off, so check it again after every update.

3. You took too long to sign

Every Solana transaction is built against a recent blockhash, and that blockhash is only valid for roughly 60 to 90 seconds. If you read the prompt carefully, step away, or hunt for your device, the transaction expires before you approve it and this is the error you get. Nothing was sent and nothing was charged.

Have the device unlocked with the Solana app already open before you click stake or unstake, then approve promptly. If you miss the window, just build the transaction again and retry.

Custodial and multi-approver wallets (such as Fireblocks)

If your wallet routes approvals through a custody policy or needs more than one approver, the approval usually takes longer than the transaction stays valid, so it expires before reaching the network. Nothing was sent and nothing was charged.

  • Have every approver online and ready before you click Stake or Unstake, then approve immediately.

  • For a one-off, move the amount to a standard Solana wallet and unstake from there. This is the most reliable option.

  • If neither works, contact support with your wallet address.

This is a Solana-wide limit on how long a transaction stays valid, not something specific to Marinade.

4. Low priority fee (rare)

In rare cases of very high network traffic, your priority fee may be too low. If the steps above didn't help, try increasing the priority fee and resubmitting. Click your wallet address with the cog icon at the top right, open Settings, set Priority fee to High, and try again. When unstaking, you can also set it from Unstake settings with the gear icon next to Unstake now.

Still not sure where the problem is? Try a small swap on a DEX such as Jupiter or Titan. A swap is a program interaction just like unstaking, but has nothing to do with Marinade. If the swap fails too, the problem is your wallet, device, or connection, so go back to step 1. If the swap works and Marinade does not, tell us what you tried.

If you are on a hardware wallet, see also Using Marinade With a Hardware Wallet.

If the error persists after all these steps, reach out to us via support chat.

Did this answer your question?