6000 | InvalidStartBinIndex | Invalid start bin index | A bin array start index cannot be represented or does not align with the expected bin-array boundary in state/bin.rs. |
6001 | InvalidBinId | Invalid bin id | A bin ID is outside the position range, outside the valid bin array range, or otherwise cannot be used for the requested liquidity or resize operation. |
6002 | InvalidInput | Invalid input data | A generic guard failed, such as an empty input vector, reversed min/max bin range, invalid preset field, invalid permission bits, or zero swap amount. |
6003 | ExceededAmountSlippageTolerance | Exceeded amount slippage tolerance | The actual token amount in or out after simulation/execution is worse than the caller’s amount slippage limit. Refresh the quote or widen tolerance. |
6004 | ExceededBinSlippageTolerance | Exceeded bin slippage tolerance | The active bin moved outside the caller’s allowed bin range before or during the instruction. Refresh the quote and active bin. |
6005 | CompositionFactorFlawed | Composition factor flawed | A liquidity composition calculation produced an invalid factor for the selected strategy or bin distribution. |
6006 | NonPresetBinStep | Non preset bin step | Pool creation used a bin_step that does not match the selected preset parameter account. |
6007 | ZeroLiquidity | Zero liquidity | The liquidity calculation produced zero shares or a funding amount was too small to create any usable liquidity. |
6008 | InvalidPosition | Invalid position | The position account or requested bin range does not match the operation, such as withdrawing outside the position’s lower/upper bin IDs. |
6009 | BinArrayNotFound | Bin array not found | A required bin array account for the target bin range was not provided or could not be found. |
6010 | InvalidTokenMint | Invalid token mint | Swap or pool accounts use mismatched token mints, identical input/output mints, or mints that are not the pool’s token X/Y mints. |
6011 | InvalidAccountForSingleDeposit | Invalid account for single deposit | Single-sided deposit accounts do not match the side being deposited, usually token X versus token Y account ordering. |
6012 | PairInsufficientLiquidity | Pair insufficient liquidity | A swap or quote path cannot find enough liquidity across the provided bin arrays to satisfy the requested amount. |
6013 | InvalidFeeOwner | Invalid fee owner | The signer or destination does not match the fee owner recorded on the position. |
6014 | InvalidFeeWithdrawAmount | Invalid fee withdraw amount | A protocol-fee or position-fee withdrawal amount is invalid for the fee state being withdrawn. |
6015 | InvalidAdmin | Invalid admin | An admin-only operation was signed by an address that is not the configured admin or authorized operator. |
6016 | IdenticalFeeOwner | Identical fee owner | A fee-owner update tried to set the new fee owner to the current fee owner. |
6017 | InvalidBps | Invalid basis point | A basis-point value exceeds the maximum allowed basis points, for example more than 10000 for full withdrawal. |
6018 | MathOverflow | Math operation overflow | Checked arithmetic, exponentiation, shifting, multiplication, division, or fee/liquidity math overflowed. |
6019 | TypeCastFailed | Type cast error | A numeric conversion failed, commonly when converting between large math types and narrower onchain integer types. |
6020 | InvalidRewardIndex | Invalid reward index | The reward index is outside the supported reward slots or cannot be converted to a valid array index. |
6021 | InvalidRewardDuration | Invalid reward duration | Reward initialization or duration update used a duration outside the allowed range. |
6022 | RewardInitialized | Reward already initialized | The selected reward slot is already initialized and cannot be initialized again. |
6023 | RewardUninitialized | Reward not initialized | A claim, fund, or update instruction targeted a reward slot that has not been initialized. |
6024 | IdenticalFunder | Identical funder | A reward-funder update tried to set the funder to the current funder. |
6025 | RewardCampaignInProgress | Reward campaign in progress | A reward duration change was attempted while the current reward campaign is still active. |
6026 | IdenticalRewardDuration | Reward duration is the same | A reward duration update used the same duration already stored on the reward. |
6027 | InvalidBinArray | Invalid bin array | A provided bin array has the wrong index, wrong relationship to the requested bin, or does not match the expected contiguous array set. |
6028 | NonContinuousBinArrays | Bin arrays must be continuous | Multiple bin arrays were provided in an order or sequence with gaps where the instruction requires continuous arrays. |
6029 | InvalidRewardVault | Invalid reward vault | The reward vault account does not match the reward slot’s configured vault. |
6030 | NonEmptyPosition | Position is not empty | A close or shrink operation was attempted while the position still has liquidity, fees, rewards, or non-empty bin data. |
6031 | UnauthorizedAccess | Unauthorized access | The action is not permitted for the pool type, pair status, operator, creator, or permissionless operation configuration. |
6032 | InvalidFeeParameter | Invalid fee parameter | Fee parameter updates failed bounds checks such as factor, period, decay, reduction, or activation constraints. |
6033 | MissingOracle | Missing oracle account | An operation that needs the oracle account did not include it. |
6034 | InsufficientSample | Insufficient observation sample | Oracle lookup could not find enough observation samples for the requested timestamp or TWAP calculation. |
6035 | InvalidLookupTimestamp | Invalid lookup timestamp | Oracle lookup was requested for a timestamp that is not valid for the stored observation window. |
6036 | BitmapExtensionAccountIsNotProvided | Bitmap extension account is not provided | The target bin array index is outside the default bitmap range, but the bitmap extension account was not supplied. |
6037 | CannotFindNonZeroLiquidityBinArrayId | Cannot find non-zero liquidity binArrayId | Bitmap search could not find the next bin array with non-zero liquidity in the requested direction. |
6038 | BinIdOutOfBound | Bin id out of bound | A bin ID is outside the min/max bin IDs supported by the program’s price and bin math. |
6039 | InsufficientOutAmount | Insufficient amount in for minimum out | The resulting output amount is below the caller’s minimum output amount, or a zap output amount is zero. |
6040 | InvalidPositionWidth | Invalid position width | Position initialization or resize would create a width outside the allowed position length or dynamic-position limits. |
6041 | ExcessiveFeeUpdate | Excessive fee update | Fee update logic detected too much elapsed time or too large an update step for the variable fee state. |
6042 | PoolDisabled | Pool disabled | The pool status disallows the requested action, such as swap or add liquidity while that action is disabled. |
6043 | InvalidPoolType | Invalid pool type | The stored pool type cannot be decoded or the instruction is not valid for that pool type. |
6044 | ExceedMaxWhitelist | Whitelist for wallet is full | A whitelist update would exceed the maximum number of whitelisted wallets. |
6045 | InvalidIndex | Invalid index | An index into a pool bitmap, reward array, bin array list, or similar indexed structure is invalid. |
6046 | RewardNotEnded | Reward not ended | Ineligible reward withdrawal was attempted before the reward campaign ended. |
6047 | MustWithdrawnIneligibleReward | Must withdraw ineligible reward | Reward funding or updates require ineligible rewards to be withdrawn first. |
6048 | UnauthorizedAddress | Unauthorized address | A supplied address is not the configured authority, funder, owner, or allowed address for the requested action. |
6049 | OperatorsAreTheSame | Cannot update because operators are the same | A position operator update tried to set the new operator to the current operator. |
6050 | WithdrawToWrongTokenAccount | Withdraw to wrong token account | Fee, reward, or liquidity withdrawal destination token accounts do not match the expected mint or owner. |
6051 | WrongRentReceiver | Wrong rent receiver | A close instruction supplied a rent receiver that is not allowed to receive the closed account lamports. |
6052 | AlreadyPassActivationPoint | Already activated | Activation point, fee, or pool setup changes were attempted after the configured activation point has already passed. |
6053 | ExceedMaxSwappedAmount | Swapped amount is exceeded max swapped amount | A pre-activation or capped swap flow would exceed the configured maximum swapped amount. |
6054 | InvalidStrategyParameters | Invalid strategy parameters | Liquidity strategy parameters are inconsistent, outside allowed ranges, or incompatible with the active bin. |
6055 | LiquidityLocked | Liquidity locked | A remove-liquidity or rebalance remove step was attempted before the position’s lock release point. |
6056 | BinRangeIsNotEmpty | Bin range is not empty | A bin range expected to be empty still contains liquidity or position data. |
6057 | NotExactAmountOut | Amount out is not matched with exact amount out | Exact-out swap execution did not produce the requested exact output amount. |
6058 | InvalidActivationType | Invalid activation type | The activation type byte cannot be decoded into a supported activation type. |
6059 | InvalidActivationDuration | Invalid activation duration | The activation duration or activation window is outside the allowed range for that pair type. |
6060 | MissingTokenAmountAsTokenLaunchProof | Missing token amount as token launch owner proof | A launch-owner proof flow expected token amount evidence, but the required amount/account proof was missing. |
6061 | InvalidQuoteToken | Quote token must be SOL or USDC | A restricted launch or pool creation flow used a quote token other than SOL or USDC. |
6062 | InvalidBinStep | Invalid bin step | A preset or pool creation request used a bin step outside the program’s allowed range. |
6063 | InvalidBaseFee | Invalid base fee | Preset fee fields calculate to a base fee outside the allowed bounds. |
6064 | InvalidPreActivationDuration | Invalid pre-activation duration | Pre-activation duration is too long, too short, or invalid for the pair’s activation configuration. |
6065 | AlreadyPassPreActivationSwapPoint | Already pass pre-activation swap point | The pre-activation swap address or pre-activation setting was changed after the pre-activation swap point passed. |
6066 | InvalidStatus | Invalid status | A status byte cannot be decoded or a status update tried to set the pool to its current status. |
6067 | ExceededMaxOracleLength | Exceed max oracle length | Oracle length expansion would exceed the maximum oracle observation capacity. |
6068 | InvalidMinimumLiquidity | Invalid minimum liquidity | A bin or position operation would violate the minimum liquidity requirement after adding or removing liquidity. |
6069 | NotSupportMint | Not support token_2022 mint extension | A Token-2022 mint contains an extension that the pool creation or token validation path does not support. |
6070 | UnsupportedMintExtension | Unsupported mint extension | Token-2022 validation found a mint extension outside the supported extension set. |
6071 | UnsupportNativeMintToken2022 | Unsupported native mint token2022 | The native mint was supplied through the Token-2022 path, which is not supported. |
6072 | UnmatchTokenMint | Unmatch token mint | A token account, mint account, or remaining account does not match the expected pool or reward mint. |
6073 | UnsupportedTokenMint | Unsupported token mint | The token mint is not supported for the requested pool or token path. |
6074 | InsufficientRemainingAccounts | Insufficient remaining accounts | Token-2022 transfer hooks, reward accounts, or other extension paths require more remaining accounts than were provided. |
6075 | InvalidRemainingAccountSlice | Invalid remaining account slice | The encoded remaining-account slice metadata does not line up with the remaining accounts passed to the instruction. |
6076 | DuplicatedRemainingAccountTypes | Duplicated remaining account types | The same remaining-account category was supplied more than once. |
6077 | MissingRemainingAccountForTransferHook | Missing remaining account for transfer hook | A Token-2022 mint has a transfer hook, but the required extra accounts for the hook were not included. |
6078 | NoTransferHookProgram | Remaining account was passed for transfer hook but there’s no hook program | Transfer-hook remaining accounts were supplied for a mint that has no transfer-hook program. |
6079 | ZeroFundedAmount | Zero funded amount | Reward funding was attempted with an amount of zero. |
6080 | InvalidSide | Invalid side | A resize or single-sided operation used a side value that cannot be decoded into the supported side enum. |
6081 | InvalidResizeLength | Invalid resize length | Position resize length is zero, exceeds limits, or would shrink/grow the account in an invalid way. |
6082 | NotSupportAtTheMoment | Not support at the moment | The requested flow is recognized but intentionally disabled or not implemented in the current program path. |
6083 | InvalidRebalanceParameters | Invalid rebalance parameters | Rebalance add/remove/resize/shrink parameters are inconsistent, exceed slippage, or produce invalid target amounts. |
6084 | InvalidRewardAccounts | Invalid reward accounts | Reward accounts provided to a rebalance or reward claim flow do not match the expected reward mints/vaults. |
6085 | UndeterminedError | Undetermined error | A defensive fallback branch was reached in bin, rebalance, or resize logic where no more specific error applied. |
6086 | ReallocExceedMaxLengthPerInstruction | Realloc exceed max length per instruction | Dynamic position resizing would reallocate more bytes than the program allows in a single instruction. |
6087 | InvalidBaseFeeMantissa | Mantissa cannot more than two significant digits | Preset base-fee mantissa has more precision than the program accepts. |
6088 | InvalidPositionOwner | Invalid position owner | The position owner is invalid, missing, or mismatched with the signer/position account for initialization. |
6089 | InvalidPoolAddress | Invalid pool address | A position account is being initialized or used with an lb_pair address that does not match the expected pool. |
6090 | InvalidTokenBadgeType | Invalid token badge type | Token badge validation found an unsupported badge type. |
6091 | InvalidTransferHookAuthority | Invalid transfer hook authority | The configured transfer-hook authority is not the authority expected by the Token-2022 validation path. |
6092 | AmountXIsNegative | Amount x is negative | Rebalance math produced a negative token X amount where only unsigned token amounts are valid. |
6093 | AmountYIsNegative | Amount y is negative | Rebalance math produced a negative token Y amount where only unsigned token amounts are valid. |
6094 | InvalidPoolCreator | Invalid pool creator | A creator-only operation was signed by an address that is not the pool creator. |
6095 | InvalidFunctionType | Invalid function type | A fee or reward flow used a function type that cannot be decoded or is not supported for the operation. |
6096 | InvalidPermission | Invalid permission | Operator or permission-bit configuration includes a permission outside the supported permission mask. |
6097 | IncorrectATA | Incorrect ATA | A token account is not the associated token account for the expected owner and mint. |
6098 | InvalidWithdrawProtocolFeeZapAccounts | Invalid withdraw protocol fee zap accounts | Protocol-fee zap account ordering, token accounts, vaults, or fee accounts do not match the expected zap layout. |
6099 | MintRestrictedFromZap | SOL,USDC protocol fee cannot be withdrawn via zap | Protocol fees for restricted SOL/USDC mints were routed through zap, which the program forbids. |
6100 | CpiDisabled | CPI disabled | The zap flow attempted to CPI into a program or path that is disabled by configuration. |
6101 | MissingZapOutInstruction | Missing zap out instruction | The instruction sysvar did not contain the expected zap-out instruction at the required position. |
6102 | InvalidZapAccounts | Invalid zap accounts | Zap accounts are missing, out of order, duplicated incorrectly, or do not match the expected pool/token accounts. |
6103 | InvalidZapOutParameters | Invalid zap out parameters | Zap-out instruction data, route parameters, amount, direction, or decoded fields are invalid. |
6104 | InsufficientInAmount | Insufficient in amount | The input amount available to a swap, bin, or zap calculation is not enough to continue the operation. |
6105 | InvalidPlaceLimitOrderParameters | Invalid place limit order parameters | Limit order placement parameters are invalid, such as inconsistent bins, side, amount, or active-bin relationship. |
6106 | InvalidLimitOrderOwner | Invalid limit order owner | The signer is not the owner allowed to create, update, or cancel the limit order account. |
6107 | InvalidCancelLimitOrderParameters | Invalid cancel limit order parameters | Cancel parameters do not match an existing order bin, side, amount, or cancellation constraints. |
6108 | CannotFindLimitOrderByBinId | Cannot find limit order by bin id | The limit order account does not contain an order entry for the requested bin ID. |
6109 | CancelNonEmptyLimitOrder | Cannot cancel non-empty limit order | A limit order close/cancel path expected the limit order to be empty, but order data remains. |
6110 | InvalidCollectFeeMode | Invalid collect fee mode | The stored collect-fee mode byte cannot be decoded into a supported collect fee mode. |