Saylor InnovationsSAYLOR INNOVATIONS

Home / Guides / On-chain & DeFi

Meteora and Orca LP Exit Resolver

On-chain & DeFi advanced 6 min read Free to read · $0.02 via agent API Updated 2026-08-22

A procedure for resolving a failed Meteora/Orca LP withdrawal, harvest, close, or zap-out: verifying position ownership and protocol identity, inventorying liquidity/fees/rewards/lock state and range/bin composition, reading the first failing instruction from simulation logs rather than the generic wallet error, using the official manual harvest-then-withdraw-then-close sequence instead of a risky bundled zap, and reconciling token/SOL/rent balances before ever closing the position NFT.

A failed zap-out or a position that "shows value" but won't close usually isn't locked funds — it's a bundled transaction failing on one sub-step. This guide walks through isolating exactly which one, using the official manual sequence instead of fighting the all-in-one button.

Free to read here. AI agents can also fetch this guide directly over x402 for $0.02 — no account, structured JSON delivery.

Agent API →
Interactive resolver

What are you seeing?

Pick the symptom closest to yours — this pulls the likely layer, the first decisive check to run, and what the result means straight from the guide below.

Pick a symptom above to see the match.

The result you are building

A confirmed LP exit in which position ownership, lock/vesting, and range/bin state are understood; liquidity, fees, and rewards are withdrawn in the required order; tokens and rent reconcile; and the position NFT/account is kept or closed intentionally.

Use this guide when: a Meteora/Orca withdraw, close, harvest, or zap-out fails, and you need to distinguish locked value, a one-sided position, insufficient SOL for rent/fees, a stale quote, account issues, and RPC issues from each other.

Do not use it as a substitute for: burning or transferring a position NFT before all value and rights are understood, or repeatedly widening slippage and signing unknown "cleanup" transactions hoping something works.

Before you change anything, collect: protocol/product/pool and the exact position mint/address; wallet public address/ownership and the position NFT/account; liquidity, fees, rewards, lock/vesting/permanent-lock status, and the current bin/range state; failed signature/simulation logs, SOL balance, token accounts, and the requested exit mode.

Stop before proceeding if position ownership is unclear, liquidity is permanently locked, an NFT burn/transfer is proposed before value removal, or the transaction instructions don't match the official protocol flow.

Understand the system before fixing it

  • The position NFT/account represents control. Transferring or burning it can transfer or destroy your ability to manage the position — treat it as a key, not a collectible.
  • Out-of-range can legitimately return only one token. Concentrated-liquidity composition depends on the current price relative to your range; this is not necessarily missing value.
  • Close is a sequence, not a single action. Collect rewards/fees, decrease liquidity, then close the account/NFT in the order the protocol requires — one failed sub-step can block the entire bundled transaction.

Evidence-to-decision map

EvidenceLikely layerFirst decisive checkWhat the result means
Position not found/ownedOwnership/walletResolve NFT/account owner and connected walletWrong wallet, a transferred/burned NFT, a compressed/legacy position, or UI indexing lag
Locked/unlocked amount is zeroLock/vestingRead the on-chain lock type/expiryA permanent lock can't withdraw the underlying; vesting releases on schedule
Slippage/min-amount failureQuote/marketGet a fresh quote, check range/bin composition and token accountsRequote and review the one-sided output and price impact
Insufficient SOLFees/rent/accountsCheck fee-payer SOL and account creation/close rentKeep enough SOL reserved; rent may only return on a successful close
Bundled zap failsInstructionSimulate and isolate harvest/decrease/close/swap individuallyFind the first failing program step; use the manual official sequence instead

Step-by-step procedure

01. Verify position and protocol. A wrong pool/product/position makes every UI assumption wrong. Confirm the official Meteora/Orca domain, cluster, pool, position mint/address, token program, and connected wallet ownership via RPC/explorer — the NFT/account owner must match your recovery wallet.

02. Inventory all position value and constraints. Liquidity, fees, rewards, and rent are separate line items. Record deposited/current liquidity, accrued fees/rewards, range/bin/current price, token composition, lock/permanent-lock/vesting/expiry, NFT choice, and refundable vs. non-refundable rent. A permanent lock changes the whole outcome; being out-of-range explains a one-sided withdrawal.

03. Read the first failed instruction. A generic wallet error hides which sub-action actually failed. Reconcile the signature, then capture simulation logs, the instruction index/program/custom error, blockhash, and compute budget; check fee-payer SOL and token accounts. Never retry an action that already landed or is permanently locked.

04. Use the official manual sequence. A zap/bundle combines swap and close risk in one transaction. If safe, harvest rewards/fees, withdraw/decrease liquidity with fresh minimum amounts, then close the account/NFT only after value reaches zero — use the official UI/SDK flow and review every wallet prompt.

05. Confirm and reconcile. The UI disappearing doesn't prove funds returned. For each signature, confirm success and check pre/post token/SOL balances, fees, rewards, and rent; verify liquidity is actually zero and the position/NFT status is what you intended. An unexpected missing amount should stop further action.

06. Handle residuals and record the outcome. Dust, rewards, or locked value can keep a position technically open. Identify what remains and whether it's economically/technically recoverable, and only retry the corrected failure with fresh state. The final record should distinguish recovered, intentionally kept, permanently locked, and unrecoverable/unknown.

Worked example

Starting problem: a Meteora zap-out repeatedly fails while the position still shows value.

Evidence collected: the position is owned and unlocked; SOL balance barely covers one fee but not the creation/swap/close sequence; the bundled simulation first fails while creating the destination token account; a manual withdraw without the swap needs less SOL and has clear token outputs.

Decision: fee/rent and bundled account creation are blocking the zap — the liquidity itself is withdrawable.

Actions taken: added only a safe SOL reserve to the fee payer after verifying no compromise; used the official manual withdraw, confirmed returned tokens, then harvested and closed in the required order; reconciled token/SOL balances and rent.

Proof of completion: liquidity is zero, fees/rewards are accounted for, returned tokens match the transactions, the position closes intentionally, and no duplicate/burn mistake occurs.

Why this matters: isolating the first bundled instruction turned a vague zap failure into a controlled sequence.

Verify, recover, and hand off

An exit is complete only when: the official protocol/pool/position/wallet ownership is verified; lock/vesting/permanent status and any one-sided composition is understood; each signature is confirmed before the next action; returned tokens, fees, rewards, network costs, and rent all reconcile; liquidity is zero before close/burn; and the NFT/account's final state is intentional and documented.

If the UI shows no position, verify the owner/account via RPC and official support rather than assuming loss — it may be the wrong wallet/network/indexer, or the NFT was transferred. If you receive only one token, compare the current price/range against the transaction — it may just be out-of-range composition, not an error. If close fails after a successful withdraw, inspect residual fees/rewards/dust/account requirements directly. If the lock is permanent, report it as such — only fees may remain claimable, per the protocol.

Reusable handoff record: protocol/pool/position/owner and pre-state; liquidity/fees/rewards/range/lock/rent inventory; the failure instruction/log diagnosis; withdrawal/harvest/close signatures and balance reconciliation; final position/NFT state, residuals, limits, and disclaimer.

For agents

An agent troubleshooting a failed LP exit should always request and read the simulation logs / failed instruction index before proposing a retry — resubmitting an already-failing bundled transaction wastes fees and can worsen state. Prefer decomposing into the manual harvest → withdraw → close sequence over retrying a one-click zap.

Official references: https://docs.meteora.ag/user-guides/how-to-use-damm-v2/damm-v2-pool-detail · https://docs.meteora.ag/user-guides/getting-started-with-meteora · https://docs.orca.so/liquidity/manage/withdraw · https://docs.orca.so/liquidity/manage/close

*This is educational technical and risk-analysis information, not financial, investment, legal, or tax advice. Blockchain transactions can be irreversible and no checklist can guarantee safety or profit.*