| 6000 | 0x1770 | MarketNotActive | Market is not active | Market.is_active is false. Wait for the operator to reactivate the market. |
| 6001 | 0x1771 | InvalidAmount | Invalid amount | A zero amount, a redeem with l_amount or s_amount at 0, more than the outstanding supply, or a token account whose mint doesn’t match the market. Keeper price writes also raise it for a move over 25% or a Stress exit that skips Recovery. It also covers a rebalance_collateral from a market to itself or between two markets that share a vault, and a wrong vault account on the collateral instructions. |
| 6002 | 0x1772 | InsufficientCollateral | Insufficient collateral in vault | A keeper single-side redeem would leave the market under 100%, or a withdrawal would take it below its target ratio. rebalance_collateral raises it when the source has nothing above its target, and deploy_collateral_to_yield when the vault holds less than the amount. User mint and redeem don’t raise it. |
| 6003 | 0x1773 | InvalidOracle | Invalid oracle account | At setup or on a Normal-state read: the oracle account isn’t the market’s OracleConfig PDA (Continuum) or doesn’t parse as a Pyth feed. A wrong oracle on mint or redeem fails Anchor’s address check (2012) instead. |
| 6004 | 0x1774 | UnsupportedOracleType | Unsupported oracle type | oracle_type is Switchboard. Only Pyth and Continuum are accepted. |
| 6005 | 0x1775 | OraclePriceUnavailable | Oracle price unavailable | No usable price: a Normal-state oracle read failed (Pyth older than 60 s, or confidence over 2% of price), the confidence band is as wide as the price, or a keeper write carried a rejected source timestamp. |
| 6006 | 0x1776 | MathOverflow | Math overflow | Arithmetic overflow. Not expected in normal use. |
| 6007 | 0x1777 | SymbolTooLong | Asset symbol too long | initialize_market symbol over 10 bytes, or create_token_metadata name over 32, symbol over 10 or URI over 200 bytes. |
| 6008 | 0x1778 | FeeTooHigh | Fee too high (max 10%) | A mint or redeem fee above 1,000 bps, or dev_tax_pct above 25. |
| 6009 | 0x1779 | MintNotAllowedInStress | Minting not allowed during Stress mode | The market is in Stress and allow_mint_in_stress is false (the default, and the setting on every live market). Use the bin book. |
| 6010 | 0x177a | RedeemNotAllowedInStress | Redeeming not allowed during Stress mode | The market is in Stress and allow_redeem_in_stress is false (the default, and the setting on every live market). Use the bin book. |
| 6011 | 0x177b | ExceedsStressMintCap | Amount exceeds stress mode mint cap | Stress only, when minting is allowed and stress_mint_cap is non-zero: the deposit is above the cap. Live markets block mint in Stress, so this can’t fire today. |
| 6012 | 0x177c | TwapNotAvailable | TWAP price not available - keeper has not updated | The market price is 0 or more than 300 s old. The keeper stops pushing while the underlying market is closed, so mint and redeem revert until it reopens. Trade on the bin book meanwhile. |
| 6013 | 0x177d | AlreadyEnabled | Multi-collateral mode already enabled | enable_multi_collateral on a market where it is already on. |
| 6014 | 0x177e | MultiCollateralNotEnabled | Multi-collateral mode not enabled | add_collateral_vault before enable_multi_collateral. |
| 6015 | 0x177f | MaxCollateralTypesExceeded | Maximum number of collateral types exceeded | A sixth collateral_vaults entry. The limit is 5. |
| 6016 | 0x1780 | InvalidWeight | Invalid weight - must be between 1 and 10000 | A collateral weight of 0 or above 10,000 bps. |
| 6017 | 0x1781 | CollateralAlreadyExists | Collateral type already exists | add_collateral_vault with a mint that is already listed. |
| 6018 | 0x1782 | CollateralNotFound | Collateral type not found | update_collateral_vault with a mint that isn’t listed. |
| 6019 | 0x1783 | BelowMinimum | Amount below minimum ($10) | A mint deposit under 10 cUSDC (10_000_000 base units), or a redeem worth under 10 cUSDC at the quoted NAV. |
| 6020 | 0x1784 | UnauthorizedKeeper | Unauthorized keeper | The signer isn’t market.keeper_authority, redeem_single_for_vault wasn’t signed by the market’s CLP PDA, or realloc_market wasn’t signed by market.authority. |
| 6021 | 0x1785 | Unauthorized | Unauthorized: not the market authority | devTokenAccount isn’t owned by market.feeRecipient, the fee waiver belongs to another wallet, or permissionless_burn isn’t signed by the account owner. fund_collateral and fund_collateral_from raise it for a signer other than market.authority, and fund_collateral_from also when funder doesn’t own funder_collateral. Other admin calls with the wrong signer usually fail with Anchor’s ConstraintHasOne (2001) instead. |
| 6022 | 0x1786 | InsufficientLiquidCollateral | Insufficient liquid collateral; recall yield deployment first | The payout is larger than this market’s liquid share (total_collateral - deployed_to_yield) or the vault balance. rebalance_collateral raises it when the source has no liquid collateral. For a redeem, queue it with request_redemption (see Redeem) or retry after the keeper recalls from lending. |
| 6023 | 0x1787 | ExceedsYieldCeiling | Deployment would exceed yield ceiling | A yield deployment above yield_ceiling_bps of total_collateral, or a ceiling above 10,000 bps. |
| 6024 | 0x1788 | YieldManagementDisabled | Collateral yield management is disabled for this market | Yield deployment or harvest while yield_enabled is false. It is true on every live market as of 11 Oct 2026, and initialize_market sets it to true on new markets. |
| 6025 | 0x1789 | RecallExceedsDeployed | Recall amount exceeds deployed_to_yield balance | A recall or impairment larger than deployed_to_yield. |
| 6026 | 0x178a | SingleSideMintStressFloor | Single-side mint would leave the vault under-collateralized under an adverse NAV shock | keeper_mint_single would leave the market’s collateral ratio below the lower of its pre-trade ratio and 100%. |
| 6027 | 0x178b | GammaMustRatchetDown | s_gamma_index may only ratchet down; raising the short decay scalar is rejected | set_s_gamma_index with a value above the current γ. |
| 6028 | 0x178c | GammaOutOfRange | s_gamma_index is outside [GAMMA_FLOOR, GAMMA_ONE]; out-of-range writes are rejected, not clamped | set_s_gamma_index outside 0.5 to 1.0 (500_000_000 to 1_000_000_000). Out-of-range values are rejected, not clamped. |
| 6029 | 0x178d | GammaStepTooLarge | unused (γ per-transaction rate cap removed) | Reserved placeholder. The per-transaction γ cap was removed and this code is never raised; it stays so later codes don’t shift. |
| 6030 | 0x178e | GammaDailyCapExceeded | unused (γ per-day rate cap removed) | Reserved placeholder. The per-day γ cap was removed and this code is never raised; it stays so later codes don’t shift. |
| 6031 | 0x178f | GammaEpochMismatch | γ epoch mismatch: this post was computed against a different epoch (a re-anchor landed in between) | expected_epoch doesn’t match gamma_epoch: a re-anchor landed after the keeper computed the write. |
| 6032 | 0x1790 | InvalidMarketAccount | Account is not a Market owned by this program (bad owner, discriminator, or length) | realloc_market on an account that isn’t a mint-redeem Market (wrong owner, too short, or wrong discriminator). |
| 6033 | 0x1791 | ReanchorNoDecay | Nothing to re-anchor: γ is already 1.0 (or unset) | reanchor_gamma while γ is already 1.0 (or unset). |
| 6034 | 0x1792 | ReanchorTooSoon | Re-anchor is inside the minimum interval since the last one | reanchor_gamma less than 14 days after the previous one. |
| 6035 | 0x1793 | ReanchorPrecisionFloor | Re-anchor would leave the short anchor without enough precision to price against | The folded initial_s_price would drop below 1,000 (0.001 cUSDC) or below 1/10,000 of its genesis value. |
| 6036 | 0x1794 | ReanchorNotValueConserving | Re-anchor failed its value-conservation invariant and was rejected | The fold would change initial_l_price × initial_s_price × γ by more than rounding. |
| 6037 | 0x1795 | ReanchorBadState | Market is in a degenerate state (zero anchor) and cannot be re-anchored | initial_l_price or initial_s_price is 0. |
| 6038 | 0x1796 | MarketNotEmpty | Cannot close a market that still has outstanding supply or collateral | close_market_admin while L or S supply, total_collateral or deployed_to_yield is non-zero. |
| 6039 | 0x1797 | CorporateActionBadRatio | Corporate-action ratio has a zero term | ratio_num or ratio_den is 0. |
| 6040 | 0x1798 | CorporateActionNoOp | Corporate-action ratio is 1:1; nothing to apply | ratio_num equals ratio_den. |
| 6041 | 0x1799 | CorporateActionRatioOutOfRange | Corporate-action ratio is implausibly large (fat-finger guard) | A ratio beyond 1,000:1 in either direction. |
| 6042 | 0x179a | CorporateActionPrecisionExhausted | Cumulative corporate-action ratio would exceed its precision budget (cash dividends are deliberately out of scope) | The reduced cumulative ratio would have a term above 1,000,000,000. |
| 6043 | 0x179b | PriceAdjustOverflow | Oracle price could not be mapped into genesis share units (corporate-action adjustment overflowed) | Applying price_adjust_num / price_adjust_den to a price overflowed or truncated it to 0. |
| 6044 | 0x179c | CorporateActionEffectiveTooFarAhead | Corporate-action effective_ts is implausibly far ahead; check the unit (seconds, not milliseconds) | effective_ts more than 400 days ahead, usually milliseconds passed as seconds. |
| 6045 | 0x179d | CorporateActionPendingExists | A future corporate action is already pending; wait until it takes effect | Another action is armed and hasn’t taken effect yet. |
| 6046 | 0x179e | UnauthorizedInitializer | Market initialization requires the program upgrade authority | initialize_market signed by anyone other than the mint-redeem program’s upgrade authority. Only the admin can list a market. |
| 6047 | 0x179f | InvalidProgramData | Market initialization requires this program's ProgramData account | initialize_market passed a program_data account that is not this program’s ProgramData. |
| 6048 | 0x17a0 | UnifiedVaultRetired | The unified vault is retired; migrate_to_unified_vault is disabled | No longer returned. migrate_to_unified_vault was removed on 11 Oct 2026. |
| 6049 | 0x17a1 | NotOnUnifiedVault | Market collateral is not held in the unified vault | No longer returned. exit_unified_vault and sweep_unified_surplus were removed on 11 Oct 2026. |
| 6050 | 0x17a2 | MixedVaultRebalance | Cannot rebalance between the unified vault and a per-market vault; exit the unified vault first | No longer returned. A rebalance_collateral between two markets that share a vault now fails with InvalidAmount (6001). |
| 6051 | 0x17a3 | UnauthorizedSweep | Sweeping the unified vault requires the program upgrade authority | No longer returned. sweep_unified_surplus was removed on 11 Oct 2026. |
| 6052 | 0x17a4 | SweepExceedsSurplus | Sweep would take collateral still attributed to a market on the unified vault | No longer returned. sweep_unified_surplus was removed on 11 Oct 2026. |
| 6053 | 0x17a5 | NothingToSettle | No part of this redemption request fits in the vault's cash now | settle_redemption on a request with nothing left, or when the vault’s cash pays out nothing for any part of it. The request stays open; the keeper retries as cash arrives, and the owner can cancel_redemption. |
| 6054 | 0x17a6 | AdvanceCapExceeded | Advance would exceed this market's advance cap | receive_advance (or the CLP’s advance_to_market) would push the outstanding advance above max_advance_bps of total_collateral. |
| 6055 | 0x17a7 | AdvanceRepayExceedsOutstanding | Repayment exceeds the outstanding advance | repay_advance or write_off_advance for more than is outstanding. |
| 6056 | 0x17a8 | AdvanceWouldTakeOwnLiquidity | Repayment would take the market's own liquid collateral | repay_advance would leave the vault with less than the market’s own liquid collateral. Only the advance’s own cash can be repaid. |
| 6057 | 0x17a9 | AdvanceLenderLocked | The advance lender can change only while nothing is outstanding | configure_market_advance with a new lender while an advance is outstanding. |
| 6058 | 0x17aa | AdvanceOutstanding | A treasury advance is outstanding: write it off or repay it first | mark_yield_impairment or close_market_admin while an advance is outstanding. |
| 6059 | 0x17ab | InvalidAdvanceLender | The advance lender must be the CLP treasury vault (GlobalClp's cUSDC account) | configure_market_advance with a lender that isn’t the GlobalClp PDA’s cUSDC account. |