Why Solana Transactions Fail: 5 Fixes
Learn why Solana transactions fail and how to fix them. Covers blockhash expiry, priority fees, slippage, compute units, and RPC issues with step-by-s...
This action-oriented guide focuses on five practical fixes for failed Solana transactions and steps that may prevent repeat failures.
Solana transactions fail for five reasons:
- Blockhash expired before the network confirmed the transaction
- Priority fee was too low for current network demand
- Slippage tolerance was breached on a DEX swap
- Compute unit budget ran out mid-execution
- The RPC node connecting your wallet to the network was overloaded
✅ Your Funds Are Safe
A failed Solana transaction does not deduct tokens from your wallet. Your SOL and tokens remain exactly where they were. At most, you may lose a small base network fee, typically less than $0.001. Your swap amount, transfer amount, or NFT mint price was not charged.
On this page:
- Why Solana Transactions Fail: What's Happening
- The 5 Root Causes of Solana Transaction Failures
- Solana Error Messages Decoded
- How to Fix a Failed Solana Transaction
- Platform-Specific Failures
- Is Solana Down? How to Check Network Status
- Do You Still Pay Fees on a Failed Transaction?
- Pre-Transaction Checklist
- Frequently Asked Questions
- Summary: Match Your Error to the Right Fix
Why Solana Transactions Fail: What's Happening
Watching a Solana transaction fail while a price move unfolds is frustrating, especially when the error message tells you nothing useful. If your swap, mint, or transfer just failed on Jupiter, Raydium, Orca, or Magic Eden, the cause is almost always one of five things, and each has a specific fix.
Across Solana's DeFi (decentralized finance) ecosystem, including token swaps, liquidity provision, lending protocols, and NFT mints, transaction failures carry real financial consequences because prices move in milliseconds. Solana's architecture makes it faster and cheaper than most blockchains, but it also creates failure modes that users familiar with Ethereum or other chains won't expect. Unlike networks where slow transactions wait in a queue, Solana uses a transaction forwarding protocol called Gulf Stream that drops transactions it cannot process immediately. There is no queue. Failed transactions require active resubmission with the correct settings.
This guide covers failures across your cryptocurrency wallet (such as Phantom or Backpack), Jupiter, Raydium, Orca, and Magic Eden. If you suspect Solana itself is experiencing problems today, jump to the network status section before troubleshooting your settings.
The 5 Root Causes of Solana Transaction Failures
Solana transaction failures fall into two categories: network-level failures (blockhash expiry, congestion, overloaded RPC nodes) and program-level rejections from the smart contract, or program, running the application you are using. Slippage tolerance errors and compute budget errors are program-level rejections; blockhash expiry and insufficient priority fee are network-level. The fix depends on which type you are facing.
Solana uses a timekeeping system called Proof of History, which generates a cryptographic sequence that validators use to agree on time without communicating timestamps to each other. Each slot in this sequence produces a blockhash, a timestamp-like code embedded in every transaction to prove the transaction is current. This slot-based architecture creates Solana's unique expiry windows and is what distinguishes its failure modes from other blockchains.
Cause 1: Blockhash Expired
Every Solana transaction carries a blockhash, which proves the transaction was created recently. If this blockhash expires before the network confirms the transaction, Solana drops it entirely.
Each blockhash is valid for approximately 150 slots, which equals roughly 60 to 90 seconds under normal conditions. During network congestion, validators fall behind in processing, which means transactions expire faster in relative terms. The error messages you will see are Blockhash not found or Transaction expired.
Solana uses Gulf Stream instead of a traditional transaction queue, which means a dropped transaction does not re-queue and wait. It disappears. You must actively resubmit by initiating the transaction again from your wallet or DEX interface. The wallet automatically fetches a fresh blockhash on the new submission. For the resubmission procedure, see Fix 3: Resubmit With a Fresh Blockhash.
⚠️ Developer Note
Always fetch a fresh blockhash with
connection.getLatestBlockhash('confirmed')on each retry attempt. Never reuse a blockhash across retry attempts. Useconfirmedorfinalizedcommitment levels in production environments, notprocessed, to avoid stale state. Detect whether a transaction was dropped or processed by callinggetSignatureStatusesbefore each retry.
Cause 2: Priority Fee Too Low
During network congestion, Solana's validators, the computers that process your transactions, choose which transactions to handle first based on priority fee levels.
A priority fee is an optional tip paid to validators, measured in micro-lamports per compute unit. One lamport equals 0.000000001 SOL; one micro-lamport is one millionth of a lamport. During high-traffic periods such as popular NFT launches or sharp market moves, validators process transactions with higher priority fees first. Transactions with zero or insufficient priority fees are dropped rather than queued.
A related cause of insufficient SOL errors: Solana requires every account to maintain a minimum balance called the rent-exempt threshold to stay active on the network. If your wallet balance falls below this threshold after a fee, or if a transaction would create a new token account without enough SOL to fund it, you will see an Insufficient funds error even when you appear to have enough SOL for the trade itself. Keep a 0.05 SOL buffer above your transaction amount.
This is why resubmitting the same transaction without changing settings often fails again. For guidance on setting the correct fee level, see Fix 1: Increase Your Priority Fee.
⚠️ Developer Note
Add
ComputeBudgetProgram.setComputeUnitPrice(microLamports)as the first instruction in your transaction. PollgetRecentPrioritizationFees()for dynamic estimation rather than using a static multiplier. Fee levels change with network demand, so static values become unreliable during congestion spikes. Detect failover triggers by monitoring HTTP 429 (rate limit), 503 (service unavailable), and connection timeout errors.
Cause 3: Compute Budget Exceeded
Every Solana transaction runs on a processing budget called compute units, which measure how much computational work the transaction requires. Simple transfers consume very little of this budget. Complex operations, such as a multi-hop DEX swap routing through three or four liquidity pools, consume substantially more.
If your transaction runs out of its compute unit budget before finishing, Solana cancels it. The errors you will see are Compute budget exceeded or Program failed to complete.
Before sending your transaction, Phantom and other wallets run a pre-flight check called transaction simulation, which executes the transaction against the current blockchain state without actually submitting it. If the simulation detects that compute units will be exhausted, it blocks the transaction and shows Transaction simulation failed. Most simulation failures indicate a real problem with the transaction, though occasionally stale state data causes a false failure on a transaction that would otherwise succeed.
For most users on modern DEX interfaces, compute unit limits are set automatically. If you see a compute budget error, use the DEX's built-in retry button before attempting manual adjustments. For detailed steps, see Fix 5: Adjust the Compute Unit Budget.
⚠️ Developer Note
Add
ComputeBudgetProgram.setComputeUnitLimit(units)as the first instruction in the transaction. RunsimulateTransaction()first to measure actual compute unit consumption, then set the limit to actual consumption multiplied by 1.1 as a 10% buffer. Setting the limit too low causesInstructionErrorfailures; setting it too high wastes fee budget but does not cause failures.
Cause 4: Slippage Tolerance Exceeded
Slippage tolerance is a guard your decentralized exchange (DEX, a platform where you can swap tokens directly from your wallet) sets on your behalf. If a token's price moves more than your set threshold between the moment you request a swap and the moment it executes, the smart contract cancels the transaction to protect you from a worse-than-expected price.
This is a protective failure, not a loss. Your principal is safe; the swap did not execute. The error you will see is Slippage tolerance exceeded.
Slippage failures happen most often on volatile tokens, low-liquidity trading pairs, and during high-congestion periods when there is a longer delay between your price quote and execution. If a liquidity pool has very low reserves, even a 5% slippage tolerance may not be enough because the pool cannot accommodate your trade size at any reasonable price. In that case, try reducing your swap amount or switching to a different trading pair.
Jupiter, Raydium, and Orca are the DEXes where this failure is most commonly encountered. For step-by-step adjustment instructions, see Fix 2: Adjust Your Slippage Tolerance.
Cause 5: Overloaded RPC Node
Your Solana wallet connects to a server called an RPC node to submit transactions. Think of it as the post office that passes your transaction to the validator network. Every time you click confirm in Phantom or Backpack, the wallet sends your transaction to an RPC node, which forwards it to the validators.
Solana's free public RPC endpoint is rate-limited and frequently overloaded during high-demand periods. During a popular NFT launch or a sharp market move, public RPC nodes receive far more submissions than they can handle, and they drop transactions before those transactions even reach the validators. When this happens, you may see Unable to confirm transaction or experience silent failures with no error message at all.
Switching to a dedicated RPC provider, such as Helius or QuickNode, both of which offer free tiers, gives your transactions a more reliable path to the network. For steps to switch your RPC, see Fix 4: Switch to a Better RPC Endpoint.
⚠️ Developer Note
Maintain a list of backup RPC endpoints in your application configuration. Implement automatic failover logic when the primary endpoint returns errors or times out. Use WebSocket
signatureSubscribefor transaction confirmation monitoring rather than HTTP polling withgetSignatureStatuses, as WebSocket subscriptions are faster and more reliable under load.
Solana Error Messages Decoded: What Each One Means
Error messages from failed Solana transactions appear in your wallet's activity log (Phantom or Solflare), on Solana Explorer (explorer.solana.com), or on Solana FM (solana.fm). To look up a specific failed transaction, copy the transaction signature from your wallet's transaction history and paste it into either explorer. A failed transaction shows a red error status with the specific error code.
Before sending any transaction, Phantom runs a simulation to predict whether it will succeed. If this pre-flight check fails, Phantom shows Transaction simulation failed and blocks submission. Most simulation failures indicate a real problem with your settings, but occasionally stale data causes a false failure. In that case, refreshing the page and resubmitting once is appropriate.
| Error String | Failure Type | Plain-English Meaning | Immediate Fix |
|---|---|---|---|
Transaction simulation failed | Network or program-level | Phantom's pre-flight check predicted this transaction would fail. Cause could be slippage, insufficient funds, or a stale state. | Check the error context in Phantom, adjust slippage or SOL balance; see Fix 1 or Fix 2 |
Blockhash not found / Transaction expired | Network-level | Your transaction's blockhash expired before the network processed it. The transaction was dropped, not queued. | Resubmit from scratch; see Fix 3: Fresh Blockhash |
Slippage tolerance exceeded | Program-level | The token's price moved beyond your set threshold before execution. Your principal is safe. | Increase slippage tolerance; see Fix 2: Slippage Tolerance |
Insufficient funds for fee | Network-level | Your wallet does not have enough SOL to cover the transaction fee, or the rent-exempt threshold for a new token account. | Add SOL; keep a 0.05 SOL buffer above your transaction amount |
Compute budget exceeded / Program failed to complete | Program-level | The transaction ran out of its computational budget before finishing. Most common on multi-hop swaps. | Use the DEX's built-in retry button; see Fix 5: Compute Unit Budget |
InstructionError: custom program error: [code] | Program-level | The application's smart contract rejected the transaction. The numeric code is application-specific. | Check the DEX or dApp documentation for that error code; resubmit with adjusted parameters |
Transaction was not confirmed in 30.00 seconds | Network-level | The transaction was submitted but not confirmed within the timeout window. It may or may not have been dropped. | Check Solana Explorer before resubmitting to confirm whether the transaction landed; see Fix 3 |
Account not found | Program-level | A required account, often a token account for a new token, does not exist yet. | Modern DEX interfaces resolve this automatically; if persistent, check your token account setup in your wallet |
How to Fix a Failed Solana Transaction
Quick-fix checklist (start with Fix 1 if you are unsure which applies):
- Increase your priority fee to Fast or Turbo and resubmit
- Adjust slippage tolerance up by 0.5% to 1% and resubmit
- Resubmit with a fresh blockhash (wait 5 seconds, then initiate from the DEX again)
- Switch to a dedicated RPC endpoint in your wallet settings
- Check Solana network status at status.solana.com before retrying if you suspect congestion
An insufficient priority fee causes the majority of failed transactions during active trading periods, so Fix 1 is the right starting point when you are unsure.
Fix 1: Increase Your Priority Fee
Increasing your priority fee is the most effective fix for failed transactions during congested periods. It signals to validators to process your transaction before lower-fee submissions.
Fee levels vary with network demand. Use your wallet's auto-estimate feature or check Solana Beach for current network conditions. Do not rely on specific lamport values, as they change rapidly.
Priority Fee Tier Reference:
| Fee Tier | When to Use | In Jupiter | In Phantom |
|---|---|---|---|
| Auto / Normal | Low-traffic periods, simple transfers | Auto | Market |
| Fast | Active trading hours, moderate congestion | Fast | High |
| Turbo | Peak congestion, NFT mints, competitive trades | Turbo | Custom (max) |
| Custom | Precise control or programmatic use | Enter micro-lamports | Enter micro-lamports |
To increase priority fee in Jupiter (interface may vary by version):
- Open Jupiter at jup.ag
- Click the settings gear icon in the swap panel
- Select Priority Fee
- Choose Fast or Turbo, or enter a Custom value
- Resubmit your swap
To increase priority fee in Phantom:
- Open Phantom wallet
- Go to Settings
- Select Transactions
- Adjust Transaction Speed to High or Custom
- Return to your DEX and resubmit
For Raydium, click the settings gear in the swap interface, select Priority Fee, choose a higher tier, and resubmit. The Platform-Specific Failures table shows the exact navigation path for each platform.
⚠️ Developer Note
Add
ComputeBudgetProgram.setComputeUnitPrice(microLamports)as the first instruction in your transaction. CallgetRecentPrioritizationFees()to get current network fee percentiles rather than using a static multiplier. Overpaying wastes SOL but does not cause transaction failures.
Fix 2: Adjust Your Slippage Tolerance
If your swap failed with a slippage tolerance error, the fix is to widen the acceptable price range, but the amount you widen it matters.
⚠️ Important Warning
Setting slippage above 3% to 5% on low-liquidity token pairs exposes you to MEV sandwich attacks, where bots detect your pending transaction and front-run it to extract value. Increase slippage incrementally, not all at once.
To adjust slippage in Jupiter (interface may vary by version):
- Open Jupiter and click the settings gear icon
- Select Slippage Tolerance
- Increase your current setting by 0.5% to 1% (for example, from 0.5% to 1.5%)
- Resubmit your swap
For Raydium: click the settings gear, select Slippage, enter your adjusted percentage, and resubmit. For Orca: click Settings, adjust Slippage Tolerance, and resubmit. The Platform-Specific Failures table shows the exact navigation path for each DEX.
If you are using Jupiter, check whether the Dynamic Slippage feature is available in your interface. This feature automatically calculates the optimal slippage for each trade based on current market conditions.
If a token keeps failing even at 5% slippage, the problem is likely insufficient liquidity in the pool rather than price movement. Try reducing your swap amount or splitting the trade into smaller transactions.
Fix 3: Resubmit With a Fresh Blockhash
A blockhash expiry is fixed by resubmitting, but you cannot resend the same transaction object. Solana requires a fresh blockhash on each submission.
Because Solana uses Gulf Stream instead of a traditional transaction queue, a dropped transaction cannot be "unstuck." The transaction is gone. A new transaction must be created from scratch.
For consumer users (Phantom, Jupiter, Raydium):
- Wait 5 to 10 seconds after the failure
- Do not click submit again on the same confirmation screen
- Return to the swap interface and initiate the transaction again from the beginning
- Your wallet automatically fetches a fresh blockhash when you resubmit
Before resubmitting: check Solana Explorer (explorer.solana.com) to confirm the transaction did not actually succeed. Paste your transaction signature into the search bar. If the transaction shows as confirmed, do not resubmit.
⚠️ Developer Note
Fetch a fresh blockhash with
connection.getLatestBlockhash('confirmed')before each retry attempt. Implement exponential backoff: wait 1 second before the first retry, 2 seconds before the second, 4 seconds before the third. Set a maximum retry count of 5 attempts before surfacing an error to the user. Useconfirmedorfinalizedcommitment levels, notprocessed, when fetching blockhashes in production environments.
Fix 4: Switch to a Better RPC Endpoint
Solana's free public RPC endpoint (api.mainnet-beta.solana.com) is rate-limited and frequently overloaded during high-demand periods, making submitted transactions more likely to be dropped before they reach validators.
Dedicated RPC providers such as Helius and QuickNode generally offer higher reliability than the public Solana mainnet RPC during congestion. Both providers offer free tiers suitable for individual users.
To switch RPC in Phantom (interface may vary by version):
- Open Phantom wallet
- Go to Settings
- Select Developer Settings
- Choose Change RPC Endpoint
- Enter your Helius or QuickNode endpoint URL
- Confirm and resubmit your transaction
To switch RPC in Solflare:
- Open Solflare wallet
- Go to Settings
- Select Network
- Choose Custom RPC and enter your endpoint URL
- Save and resubmit your transaction
⚠️ Developer Note
Maintain a list of backup RPC endpoints in your application configuration. Implement automatic failover logic so your application switches to a backup when the primary returns errors or times out. Use WebSocket
signatureSubscribefor transaction confirmation monitoring rather than polling withgetSignatureStatuses, as WebSocket connections are faster under heavy load.
Fix 5: Adjust the Compute Unit Budget
For consumer users, most modern DEX interfaces, including Jupiter and Raydium, set compute unit limits automatically. If you see a Compute budget exceeded error, use the DEX's built-in retry or refresh function rather than manually adjusting settings.
If the error persists, try simplifying your swap route. A direct route through a single pool uses fewer compute units than a complex multi-hop route through four or five pools. In Jupiter, look for a Direct Route Only option in the routing settings.
If your swap fails consistently on a specific pair, it may be a temporarily high-demand route. Waiting a few minutes and resubmitting often resolves the issue without any settings changes.
⚠️ Developer Note
Add
ComputeBudgetProgram.setComputeUnitLimit(units)as the first instruction in the transaction. RunsimulateTransaction()first to measure actual compute unit consumption, then set the limit to actual consumption multiplied by 1.1 as a 10% safety buffer. Setting the limit too low causesInstructionErrorfailures; setting it too high wastes fee budget without causing failures.
Platform-Specific Failures: Phantom, Jupiter, Raydium, and Magic Eden
The most common Solana failure scenarios play out differently depending on which platform you are using. Check the comparison table below to find your platform, then read the relevant subsection for details.
| Platform | Most Common Failure | Slippage Setting Location | Priority Fee Location |
|---|---|---|---|
| Phantom | Transaction simulation failed, low SOL balance | N/A (wallet only) | Settings → Transactions → Transaction Speed |
| Jupiter | Slippage exceeded, insufficient priority fee | Gear icon → Slippage Tolerance | Gear icon → Priority Fee (Auto/Fast/Turbo) |
| Raydium | High price impact on thin pools | Settings gear → Slippage | Settings gear → Priority Fee |
| Orca | Slippage on Whirlpool concentrated positions | Settings → Slippage Tolerance | Settings → Transaction Speed |
| Magic Eden | Network congestion during mint events | N/A | Wallet settings before mint launch |
Jupiter Swap Failures
Jupiter's multi-hop routing sends your swap through several liquidity pools to find the best price. Each additional hop adds compute unit consumption and creates another point where price movement can breach slippage tolerance.
The two most common Jupiter-specific failures are slippage tolerance exceeded on volatile token pairs, and Transaction simulation failed due to an insufficient priority fee. Both are fixed by adjusting the settings in Jupiter's gear icon menu before resubmitting.
Jupiter's built-in priority fee selector offers Normal, Fast, Turbo, and Custom options. During any active trading session, Fast is the minimum recommended setting. During an NFT launch or a sharp market move, use Turbo.
Some older wallets do not support Jupiter's versioned transactions format. If you see a transaction format error rather than a slippage or fee error, check that your wallet software is up to date.
Raydium and Orca Swap Failures
Raydium and Orca AMM failures most often come from high price impact on pools with limited liquidity. The pool cannot accommodate your trade size at a reasonable price, even with generous slippage settings.
Before confirming any swap on Raydium or Orca, check the price impact percentage shown in the interface. If price impact exceeds 2% to 3%, the trade size is too large for the available liquidity in that pool. Reduce your swap amount or split the transaction into two or three smaller swaps submitted sequentially.
For Orca's Whirlpool concentrated liquidity positions, slippage can be especially sensitive. If a concentrated pool has moved out of its active price range, transactions will fail regardless of your slippage setting. In that case, try a different pool or route through Jupiter's aggregator, which automatically finds alternative paths.
Magic Eden and NFT Mint Failures
NFT mint failures on Magic Eden differ from routine DEX failures because the problem is not your settings. The issue is the simultaneous submission of thousands of transactions during a narrow launch window, which overwhelms the network and causes validators to drop low-priority-fee transactions before they can be processed.
High-demand mints using Candy Machine programs create extreme competition. Bots submit hundreds of transactions per second, saturating both the public RPC and the validator queue.
Three-step protocol for a successful mint during a high-demand launch:
- Before the mint window opens, set your priority fee to Turbo or the maximum available setting in your wallet
- Switch from the public Solana RPC to a dedicated provider such as Helius or QuickNode (free tiers are sufficient)
- Have the mint page fully loaded and your wallet connection pre-approved; submit the transaction immediately when the mint opens, not after the page refreshes
Your SOL principal is returned automatically if a mint transaction fails. Only the small network fee, approximately 0.000005 SOL, is consumed. Some projects also use allow-list mechanisms and Candy Guards, so if transactions fail consistently even with correct settings, confirm you qualify for the current mint phase.
Is Solana Down? How to Check Network Status
Most Solana transaction failures are not caused by a network outage. They result from user-side settings or temporary network congestion. True outages, where the network halts entirely, are rare and announced officially.
Three-step status check:
- Go to status.solana.com, Solana's official network status page, and check for any active incident reports from the Solana Foundation.
- Go to Solana Beach and check the real-time transactions-per-second (TPS) figure and average confirmation time. High failure rates during active TPS indicate network congestion, not an outage.
- Check r/solana or the Solana Discord. If many users are reporting failures simultaneously, the network is under congestion. If only a few are, the issue is likely on your end.
| Situation | What to Do |
|---|---|
| Network congested but not down | Wait 5 to 15 minutes, then resubmit with a higher priority fee. Fees drop naturally as congestion clears. |
| Network outage confirmed on status.solana.com | Wait for the official resolution announcement. Do not keep resubmitting during an active outage. |
| Network normal, your transactions still failing | Return to Fix 1 through Fix 5 and check your settings. |
Do You Still Pay Fees on a Failed Solana Transaction?
Yes, Solana charges a small base transaction fee even when a transaction fails, but your tokens and the principal amount of your swap, transfer, or mint are not deducted from your wallet.
Your tokens are safe. The transaction failed before any swap or transfer executed.
The base fee is approximately 0.000005 SOL per signature, which equals a fraction of a cent at most SOL price levels. This fee compensates validators for processing the transaction attempt even when it does not succeed. If you included a priority fee, that amount is also consumed. The token amount you were trying to swap, the SOL you were trying to send, or the NFT price you were trying to pay were never deducted.
A transaction dropped silently by an overloaded RPC node before it ever reaches the validators charges no fee at all, because there is no on-chain record of it.
To verify exactly how much fee was charged on any failed transaction:
- Copy the transaction signature from your wallet's transaction history
- Paste it into Solana Explorer or Solana FM
- Locate the failed transaction, which shows a red error status
- Check the Fee field to see the exact SOL amount charged
Pre-Transaction Checklist: How to Prevent Solana Transaction Failures
Running through this checklist before any time-sensitive transaction takes under 60 seconds and eliminates the most common causes of failure.
- Check status.solana.com for active incidents before any transaction during volatile market conditions
- Set your priority fee to at least Fast for any transaction during active trading hours; use Turbo for time-sensitive trades or NFT mints
- Verify your slippage tolerance matches the token pair's volatility: 0.5% for stable pairs such as USDC/USDT, 1% to 2% for mid-cap tokens, up to 3% for volatile small-caps
- Confirm your SOL balance covers the transaction amount plus fees plus a 0.05 SOL buffer for rent-exempt thresholds
- For time-sensitive or high-value transactions, switch from Solana's public RPC to a dedicated provider such as Helius or QuickNode (both offer free tiers)
- For NFT mints: configure your priority fee and RPC before the mint window opens, not during it
- For large DEX swaps: check the price impact percentage before confirming; if price impact exceeds 2% to 3%, reduce the swap amount or split into smaller transactions
- Trust your DEX's built-in fee optimizer when available; Jupiter, Raydium, and Orca each offer automatic fee recommendations that adjust to current network conditions
⚠️ Developer Note
In production dApps, implement simulation-based compute unit estimation rather than static limits. Poll
getRecentPrioritizationFees()dynamically and update your fee recommendation at each transaction submission. Implement RPC failover so your application switches to a backup endpoint automatically. Never reuse blockhashes across retry attempts.
Frequently Asked Questions: Five Fixes for Failed Solana Transactions
Each answer below is self-contained. You do not need to read the rest of this guide to use the FAQ.
What causes a Solana transaction to fail?
Solana transactions fail for five reasons: blockhash expiry, insufficient priority fee, compute unit budget exhaustion, slippage tolerance breach, or RPC node overload. Network-level failures require increasing your priority fee and resubmitting. Program-level rejections require adjusting transaction parameters like slippage tolerance or swap amount. See The 5 Root Causes for a full explanation of each.
Do you still pay fees on a failed Solana transaction?
Yes. Solana charges a small base transaction fee, approximately 0.000005 SOL, even when a transaction fails, but your tokens and swap principal are not deducted. Transactions dropped silently by an overloaded RPC node before reaching the network charge no fee at all, because they leave no on-chain record. See Do You Still Pay Fees for verification instructions.
How long before a Solana transaction expires?
A Solana transaction expires after approximately 150 slots, which is roughly 60 to 90 seconds under normal network conditions. During congestion, effective expiry time can feel shorter because validators fall behind in processing. After expiry, the transaction is permanently dropped and must be resubmitted from scratch.
What is a blockhash in Solana?
A blockhash is a timestamp-like code embedded in every Solana transaction that proves the transaction was created recently. Validators use it to verify the transaction is current and has not been replayed from a previous session. Blockhashes expire after approximately 150 slots; after that, the transaction is rejected with a Blockhash not found or Transaction expired error.
What are compute units on Solana?
Compute units are Solana's measure of the processing resources a transaction consumes. Simple transfers use a small amount; complex multi-hop DEX swaps use significantly more. If a transaction exhausts its compute unit budget before completing, Solana cancels it and returns the error Compute budget exceeded. Modern DEX interfaces set compute unit limits automatically for most users.
What is a priority fee on Solana?
A priority fee is an optional tip paid to validators in micro-lamports per compute unit to move your transaction ahead of lower-fee submissions during congestion. Solana's base transaction fee is fixed and small; the priority fee is the variable component that determines how quickly your transaction gets processed. Fee levels vary with network demand, so use your wallet's auto-estimate feature or the Helius Priority Fee API for current values.
How do I check if a Solana transaction failed?
Copy the transaction signature from your wallet's transaction history and paste it into Solana Explorer or Solana FM. Failed transactions show a red error status with the specific error code. Confirmed transactions show a green success status. Always check before resubmitting to avoid sending a duplicate transaction.
Can I recover funds from a failed Solana transaction?
Your funds do not need to be recovered because they were never sent. A failed Solana transaction does not deduct your tokens or swap amount from your wallet. The transaction failed before execution, so your wallet balance is unchanged except for the small base fee. Your principal is safe.
Why does Solana drop transactions instead of queuing them?
Solana uses a transaction forwarding protocol called Gulf Stream instead of a traditional transaction queue. Gulf Stream forwards transactions directly to the expected next validator before the current block finishes. Transactions that cannot be processed immediately are dropped rather than held in a waiting line. This design enables Solana's high throughput but means failed transactions require active resubmission rather than passive waiting.
What is "transaction simulation failed" on Phantom?
Transaction simulation failed means Phantom ran a pre-flight test on your transaction and predicted it would not succeed. Phantom blocks the submission to prevent you from wasting a fee on a transaction that will fail. Most simulation failures indicate a real problem with your settings, such as insufficient slippage, low SOL balance, or a program rejection. Occasionally, stale state data causes a false failure; refreshing the page and resubmitting once is appropriate in that case.
How do I fix insufficient funds on Solana?
Add SOL to your wallet and ensure your balance exceeds the transaction amount plus fees plus a 0.05 SOL buffer. Solana's insufficient funds error does not always mean you are out of SOL for the fee alone. Sometimes it means you lack enough SOL to cover the rent-exempt threshold required to create a new token account when receiving a token for the first time.
Is my money safe if a Solana transaction fails?
Your principal is safe. The tokens or SOL you were trying to send or swap remain in your wallet exactly as they were. A failed Solana transaction does not execute the transfer, swap, or mint, so your balance is unchanged. Only a small base transaction fee, typically less than $0.001, may have been charged.
Why does my Solana transaction keep failing even after I retry?
Repeatedly failing transactions usually indicate the same incorrect setting is being resubmitted without adjustment. Identify your error: if it is Slippage tolerance exceeded, increase slippage tolerance and resubmit. If transactions drop silently without an error message, your priority fee is too low. If status.solana.com shows an active incident, wait for the network to recover before resubmitting.
Why do Solana transactions fail during NFT mints?
NFT mint failures occur because thousands of users and bots submit transactions simultaneously during a narrow launch window, saturating both the public RPC endpoints and the validator queue. Validators drop low-priority-fee transactions to manage the load. Setting your priority fee to Turbo and switching to a dedicated RPC provider before the mint window opens significantly improves success rates. See Magic Eden and NFT Mint Failures for the full preparation protocol.
What is slippage tolerance on Solana DEXes?
Slippage tolerance is the maximum price movement you will accept between when you request a swap and when it executes. If the token's price moves beyond that threshold, the smart contract cancels the swap automatically to protect you from receiving a significantly worse price than quoted. Typical settings range from 0.5% for stable token pairs to 2% or 3% for volatile assets. Setting it above 3% to 5% on low-liquidity pairs increases exposure to MEV sandwich attacks.
Explore SOL on Bybit
Use the Solana price page to review current SOL market data, or access the SOL/USDT spot market if spot trading matches your objectives. Bybit trading activity is not the same as submitting a Solana on-chain transaction; network fees may still apply when depositing or withdrawing SOL on the Solana network.
Summary: Match Your Error to the Right Fix
Every Solana transaction failure maps to one of five root causes, and each has a specific fix.
| Root Cause | Error You See | Quick Fix |
|---|---|---|
| Blockhash expired | Blockhash not found / Transaction expired | Wait 5 seconds, resubmit from scratch with a fresh blockhash |
| Priority fee too low | Transaction dropped silently during congestion | Set fee to Fast or Turbo in your DEX or wallet, then resubmit |
| Slippage exceeded | Slippage tolerance exceeded | Increase slippage by 0.5% to 1% in your DEX settings, then resubmit |
| Compute budget exhausted | Compute budget exceeded / Program failed to complete | Use the DEX's built-in retry button; for complex swaps, try a direct route |
| RPC node overloaded | Unable to confirm transaction / silent drops | Switch to Helius or QuickNode in your wallet's RPC settings, then resubmit |
Your principal is safe in every one of these scenarios. Failed Solana transactions do not permanently lose tokens; only a minimal base fee is consumed. To avoid repeat failures, run through the Pre-Transaction Checklist before your next time-sensitive swap or mint.
Settings paths referenced in this guide are accurate as of the publication date and may vary by wallet or DEX version. Fee levels vary with network demand; use your wallet's auto-estimate feature or the Helius Priority Fee API for current values. Tool references (Helius, QuickNode, Solana Beach) are presented as options, not endorsements.