Unlimited slippage
Accepting worse execution does not fix insufficient funds.
Using a DEX
A failed swap may involve price protection, funds or transaction construction. Start with the full error and onchain status: signing repeatedly without diagnosing the failure can create extra attempts and costs.
A failed swap may involve price protection, funds or transaction construction. Start with the full error and onchain status: signing repeatedly without diagnosing the failure can create extra attempts and costs.
An isolated number does not describe every Solana or Jupiter failure.
In Jupiter’s swap-program reference, 6001 means SlippageToleranceExceeded and 6024 means InsufficientFunds. That reference sits in superseded Metis Swap V1 documentation. These codes remain useful when logs identify that program, but they are not universal Swap V2 response codes. Another program invoked along a route can use the same number with a different meaning.
Keep the signature or transaction ID if present, full message, time, token mint addresses, amount and wallet used. Check the explorer for success, failure or absence from the chain. A simulation rejection before sending is not a confirmed failed transaction. Without a signature, preserve the interface message or API response instead of assuming an onchain transaction exists.
The limit protects minimum output; removing protection does not improve execution.
SlippageToleranceExceeded means execution did not meet the configured swap tolerance. Price can move while you review or sign, route liquidity can change, or the amount may be too large for current conditions. Refresh the quote and compare expected output, minimum received and price impact. Slippage tolerance and estimated price impact are different concepts.
For example, a hypothetical quote expects 100 units with a minimum of 99.50. If the route can only deliver 99.20, rejection preserves your limit; blindly widening it permits an outcome previously rejected. A smaller amount or waiting may produce another quote without guaranteeing improvement. Only widen tolerance after understanding and accepting the new minimum, rather than merely silencing the error.
Enough wallet value does not mean each required asset is available.
InsufficientFunds can concern the input token, transaction charges or funding a token account. Check the spendable balance of the exact mint in the signing wallet. USDC does not automatically fund a USDT sale, and SOL in another account or network does not fund the Solana wallet executing this swap. An aggregated portfolio screen can conceal that distinction.
| Item | Check |
|---|---|
| Input token | Correct mint, spendable amount and amount units. |
| Network fee | Actual fee payer and transaction estimate. |
| Rent | Funding a token account if the route creates one. |
| Wrapped SOL | Distinguish native SOL, wSOL and involved accounts. |
Rent is not a maker/taker trading fee: it can involve funds required to maintain a token account. A new account is not created on every swap, and the requirement is not a universal fixed charge. Keep the SOL buffer indicated by the transaction when you are its payer. The Phantom guide explains network, address and spendable-balance checks.
The current flow uses /order and /execute, or /build for customised integrations.
Swap V2 /order obtains pricing and prepares a transaction. An empty transaction alongside errorCode can mean a valid price exists without a transaction ready to sign. Interpret router and errorCode together: code 2 on aggregator routes indicates insufficient SOL for gas, whereas on JupiterZ it can mean a missing associated token account. Reading the code without its router can produce the wrong diagnosis.
The managed flow uses RTSE to estimate slippage at order time and /execute for transaction delivery. /build returns instructions for customised flows with their own parameters. Do not copy V1’s dynamicSlippage recommendation as a universal V2 fix. Nor is every /execute failure slippage: expiry, incomplete signatures and landing failures have distinct causes. The interface can manage these steps; wallet-history diagnosis does not require building an API integration.
V2 supports gas sponsorship on eligible trades, including some JupiterZ routes or a separate payer. This does not make every swap free or justify spending all SOL without checking the transaction. The actual payer, router and eligibility determine the case. Platform charges and final output remain separate budget items.
Check the outcome before replacing an order.
Submitted and processed transactions can incur network charges even if the swap fails; rejection before sending is different. For example, trying to sell 100 USDC with only 99.80 of the correct mint is not fixed by adding SOL. Conversely, holding all 100 USDC while lacking unsponsored gas is not necessarily fixed by reducing the USDC amount without funding the required payer.
A diagnosable case needs public transaction details, not your keys.
Keep the signature, Solana network, input and output mints, amount, time and full message. For an integration, include router, endpoint and code while removing API keys and private data. Never provide a recovery phrase, private key or signatures requested by someone promising to repair the wallet. A transaction ID helps examine the attempt; it does not authorise fund movements.
The Jupiter review separates swap aggregation from Perps, which need not share the same workflow. Continue with using a DEX and calculating costs for routing and funding concepts. If funds never reached the wallet, use exchange-to-wallet withdrawals before diagnosing a swap that cannot yet be funded.
Review these points before taking the next step.
Small checks for a more considered decision.
Accepting worse execution does not fix insufficient funds.
Check history and balances first to avoid duplicates.
A V2 error also depends on its router.
Not by itself. Check the transaction result and balance changes; the code describes a tolerance failure in the identified program.
No. The missing funds may be the input token, gas or rent. Identify the required balance and payer first.
Not as a V2 recipe. That recommendation belongs to V1; the current managed flow uses RTSE and custom integrations have separate parameters.
A submitted and processed attempt can incur a network fee. Rejection before sending is different; inspect actual transaction status and charges.