Error codes / Orca Whirlpools
Orca Whirlpools error codes
Every custom error code published by Orca Whirlpools, with what it means and what to do about it.
whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc
- 6000 · 0x1770InvalidEnum
Enum value could not be converted
- 6001 · 0x1771InvalidStartTick
Invalid start tick index provided.
- 6002 · 0x1772TickArrayExistInPool
Tick-array already exists in this whirlpool
- 6003 · 0x1773TickArrayIndexOutofBounds
The tick arrays passed with this Orca swap do not cover the price the pool is at now: the route was built for a price range the pool has since left. A swap cannot be re-pointed at other accounts after the fact.
- 6004 · 0x1774InvalidTickSpacing
Tick-spacing is not supported
- 6005 · 0x1775ClosePositionNotEmpty
Position is not empty It cannot be closed
- 6006 · 0x1776DivideByZero
Unable to divide by zero
- 6007 · 0x1777NumberCastError
Unable to cast number into BigInt
- 6008 · 0x1778NumberDownCastError
Unable to down cast number
- 6009 · 0x1779TickNotFound
Tick not found within tick array
- 6010 · 0x177aInvalidTickIndex
Provided tick index is either out of bounds or uninitializable
- 6011 · 0x177bSqrtPriceOutOfBounds
Provided sqrt price out of bounds
- 6012 · 0x177cLiquidityZero
Liquidity amount must be greater than zero
- 6013 · 0x177dLiquidityTooHigh
Liquidity amount must be less than i64::MAX
- 6014 · 0x177eLiquidityOverflow
An arithmetic operation inside the program went out of range. In exchanges this usually means the amount, price or liquidity at that moment produced a number the pool cannot represent, often a trade far larger than the pool can absorb.
- 6015 · 0x177fLiquidityUnderflow
An arithmetic operation inside the program went out of range. In exchanges this usually means the amount, price or liquidity at that moment produced a number the pool cannot represent, often a trade far larger than the pool can absorb.
- 6016 · 0x1780LiquidityNetError
Tick liquidity net underflowed or overflowed
- 6017 · 0x1781TokenMaxExceeded
Exceeded token max
- 6018 · 0x1782TokenMinSubceeded
Did not meet token min
- 6019 · 0x1783MissingOrInvalidDelegate
Position token account has a missing or invalid delegate
- 6020 · 0x1784InvalidPositionTokenAmount
Position token amount must be 1
- 6021 · 0x1785InvalidTimestampConversion
Timestamp should be convertible from i64 to u64
- 6022 · 0x1786InvalidTimestamp
Timestamp should be greater than the last updated timestamp
- 6023 · 0x1787InvalidTickArraySequence
The tick arrays passed with this Orca swap do not cover the price the pool is at now: the route was built for a price range the pool has since left. A swap cannot be re-pointed at other accounts after the fact.
- 6024 · 0x1788InvalidTokenMintOrder
Token Mint in wrong order
- 6025 · 0x1789RewardNotInitialized
Reward not initialized
- 6026 · 0x178aInvalidRewardIndex
Invalid reward index
- 6027 · 0x178bRewardVaultAmountInsufficient
Reward vault requires amount to support emissions for at least one day
- 6028 · 0x178cFeeRateMaxExceeded
Exceeded max fee rate
- 6029 · 0x178dProtocolFeeRateMaxExceeded
Exceeded max protocol fee rate
- 6030 · 0x178eMultiplicationShiftRightOverflow
Multiplication with shift right overflow
- 6031 · 0x178fMulDivOverflow
An arithmetic operation inside the program went out of range. In exchanges this usually means the amount, price or liquidity at that moment produced a number the pool cannot represent, often a trade far larger than the pool can absorb.
- 6032 · 0x1790MulDivInvalidInput
Invalid div_u256 input
- 6033 · 0x1791MultiplicationOverflow
An arithmetic operation inside the program went out of range. In exchanges this usually means the amount, price or liquidity at that moment produced a number the pool cannot represent, often a trade far larger than the pool can absorb.
- 6034 · 0x1792InvalidSqrtPriceLimitDirection
The client passed a sqrt_price_limit on the wrong side of the current price for this swap's direction. Orca rejects the swap before touching the pool. This is a bug in how the transaction was built, not a market move.
- 6035 · 0x1793ZeroTradableAmount
There are no tradable amount to swap.
- 6036 · 0x1794AmountOutBelowMinimum
The swap would have paid out less than the minimum this transaction allowed (or cost more than its maximum). The price moved between the moment the quote was taken and the moment the transaction executed, by more than the slippage tolerance set in the swap.
- 6037 · 0x1795AmountInAboveMaximum
Amount in above maximum threshold
- 6038 · 0x1796TickArraySequenceInvalidIndex
The tick arrays passed with this Orca swap do not cover the price the pool is at now: the route was built for a price range the pool has since left. A swap cannot be re-pointed at other accounts after the fact.
- 6039 · 0x1797AmountCalcOverflow
An arithmetic operation inside the program went out of range. In exchanges this usually means the amount, price or liquidity at that moment produced a number the pool cannot represent, often a trade far larger than the pool can absorb.
- 6040 · 0x1798AmountRemainingOverflow
An arithmetic operation inside the program went out of range. In exchanges this usually means the amount, price or liquidity at that moment produced a number the pool cannot represent, often a trade far larger than the pool can absorb.
- 6041 · 0x1799InvalidIntermediaryMint
Invalid intermediary mint
- 6042 · 0x179aDuplicateTwoHopPool
The program keeps a nonce per order and this one was already used: the same order was sent twice and the second copy failed. The first copy is the one that counts; there is nothing to resend.
- 6043 · 0x179bInvalidBundleIndex
Bundle index is out of bounds
- 6044 · 0x179cBundledPositionAlreadyOpened
Position has already been opened
- 6045 · 0x179dBundledPositionAlreadyClosed
Position has already been closed
- 6046 · 0x179ePositionBundleNotDeletable
Unable to delete PositionBundle with open positions
- 6047 · 0x179fUnsupportedTokenMint
Token mint has unsupported attributes
- 6048 · 0x17a0RemainingAccountsInvalidSlice
Invalid remaining accounts
- 6049 · 0x17a1RemainingAccountsInsufficient
The account does not hold enough of the token or SOL this instruction tried to spend.
- 6050 · 0x17a2NoExtraAccountsForTransferHook
Unable to call transfer hook without extra accounts
- 6051 · 0x17a3IntermediateTokenAmountMismatch
Output and input amount mismatch
- 6052 · 0x17a4TransferFeeCalculationError
Transfer fee calculation failed
- 6053 · 0x17a5RemainingAccountsDuplicatedAccountsType
Same accounts type is provided more than once
- 6054 · 0x17a6FullRangeOnlyPool
This whirlpool only supports full-range positions
- 6055 · 0x17a7TooManySupplementalTickArrays
Too many supplemental tick arrays provided
- 6056 · 0x17a8DifferentWhirlpoolTickArrayAccount
TickArray account for different whirlpool provided
- 6057 · 0x17a9PartialFillError
Trade resulted in partial fill
- 6058 · 0x17aaPositionNotLockable
Position is not lockable
- 6059 · 0x17abOperationNotAllowedOnLockedPosition
Operation not allowed on locked position
- 6060 · 0x17acSameTickRangeNotAllowed
Cannot reset position range with same tick range
- 6061 · 0x17adInvalidAdaptiveFeeConstants
Invalid adaptive fee constants
- 6062 · 0x17aeInvalidFeeTierIndex
Invalid fee tier index
- 6063 · 0x17afInvalidTradeEnableTimestamp
Invalid trade enable timestamp
- 6064 · 0x17b0TradeIsNotEnabled
Trade is not enabled yet