Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
Esta página fue traducida automáticamente por IA. La versión en inglés es la fuente autorizada.Ver versión en inglés →
Fuente de verdad. Las tablas a continuación se regeneran desde el archivo
error.rs de cada programa en los repositorios públicos de Raydium. Cuando un programa se actualiza y se añade una nueva variante, vuelve a ejecutar la extracción (enlace al final de cada tabla) y añade filas al final en lugar de reorganizar — los códigos de error de Anchor se asignan por orden en el código fuente, no por nombre, por lo que reorganizarlos rompe el manejo de errores de los integradores.Cómo funcionan los códigos de error de Anchor
Anchor asigna a cada variante del enumErrorCode de un programa un código numérico a partir de 6000. Una transacción fallida expone:
- Código de error numérico (p. ej.
0x1771= 6001) en los logs de la transacción. - Nombre del error (p. ej.
InvalidOwner) desde el IDL. - Cadena
#[msg(...)]que Anchor emitió enlog_messages.
Errores de CPMM (AMM estándar)
Program ID: ver reference/program-addresses. Fuente:raydium-cp-swap/programs/cp-swap/src/error.rs.
| Código | Variante | Cadena #[msg] | Causa típica | UX recomendado |
|---|---|---|---|---|
| 6000 | NotApproved | Not approved | El invocador no es la autoridad configurada para una instrucción de administrador. | ”Solo el administrador del pool puede realizar esta acción.” |
| 6001 | InvalidOwner | Input account owner is not the program address | Una cuenta pasada es propiedad del programa incorrecto (generalmente un programa de token erróneo o un PDA de programa equivocado). | ”Error interno: propietario de cuenta no coincide — recarga e inténtalo de nuevo.” |
| 6002 | EmptySupply | Input token account empty | El saldo de la cuenta LP o de token es cero en un paso que requiere un monto positivo. | ”No hay nada que retirar.” |
| 6003 | InvalidInput | InvalidInput | Argumento incorrecto genérico (monto fuera de rango, flag incorrecto). | ”Entrada no válida — revisa los montos e inténtalo de nuevo.” |
| 6004 | IncorrectLpMint | Address of the provided lp token mint is incorrect | La cuenta LP mint pasada no coincide con pool_state.lp_mint. | ”Error interno: LP mint incorrecto — recarga los datos del pool.” |
| 6005 | ExceededSlippage | Exceeds desired slippage limit | El precio ejecutado es peor que el minAmountOut / maxAmountIn del usuario. | ”El precio superó tu tolerancia de slippage. Aumenta el slippage o inténtalo de nuevo.” |
| 6006 | ZeroTradingTokens | Given pool token amount results in zero trading tokens | La matemática de depósito/retiro redondeó un lado a cero (posición demasiado pequeña). | ”El monto está por debajo del mínimo para este pool.” |
| 6007 | NotSupportMint | Not support token_2022 mint extension (gramática en el fuente) | El pool encontró una extensión de Token-2022 que no puede manejar de forma segura (p. ej. TransferHook, DefaultAccountState=Frozen). | ”Este token tiene una extensión que Raydium no admite en CPMM.” |
| 6008 | InvalidVault | invaild vault (typo en el fuente) | La cuenta vault pasada no coincide con la registrada en pool_state. | ”Error interno: vault incorrecto — recarga e inténtalo de nuevo.” |
| 6009 | InitLpAmountTooLess | Init lp amount is too less(Because 100 amount lp will be locked) (gramática en el fuente) | En la inicialización del pool, el suministro LP calculado está por debajo del monto de bloqueo permanente. | ”Liquidez inicial demasiado pequeña. Aumenta el depósito.” |
| 6010 | TransferFeeCalculateNotMatch | TransferFee calculate not match | El monto post-transferencia observado para un mint con comisión de Token-2022 no coincidió con la expectativa precalculada. | ”La comisión de transferencia del token cambió a mitad de la transacción. Inténtalo de nuevo.” |
| 6011 | MathOverflow | Math overflow | Un cálculo intermedio de swap/depósito/comisión sufrió desbordamiento. | ”El monto es demasiado grande para este pool.” |
| 6012 | InsufficientVault | Insufficient vault | El saldo del vault del pool es demasiado bajo para cubrir la salida solicitada. | ”No hay suficiente liquidez en el pool para este tamaño.” |
| 6013 | InvalidFeeModel | Invalid fee model | El administrador configuró una combinación de parámetros AmmConfig que es rechazada on-chain. | N/A — ruta solo para administradores. |
| 6014 | NoFeeCollect | Fee is zero | Se llamó a collect_protocol_fee / collect_fund_fee con comisiones colectables en cero. | N/A — ruta de administrador; las herramientas deben ignorarlo. |
Errores de CLMM
Program ID: ver reference/program-addresses. Fuente:raydium-clmm/programs/amm/src/error.rs.
| Código | Variante | Cadena #[msg] | Causa típica | UX recomendado |
|---|---|---|---|---|
| 6000 | NotApproved | Not approved | El invocador no es el administrador configurado para esta instrucción. | ”Solo el administrador del pool puede realizar esta acción.” |
| 6001 | InvalidUpdateConfigFlag | invalid update amm config flag | El administrador pasó un valor param no reconocido a update_amm_config. | N/A — ruta solo para administradores. |
| 6002 | AccountLack | Account lack | Falta una cuenta restante requerida en la tx (generalmente un tick-array o extensión de oráculo). | ”Error interno: cuenta faltante — recarga los datos del pool.” |
| 6003 | ClosePositionErr | Remove liquidity, collect fees owed and reward then you can close position account | Se intentó cerrar una posición que aún tiene liquidez, comisiones no cobradas o recompensas no cobradas. | ”Retira toda la liquidez y reclama comisiones/recompensas antes de cerrar la posición.” |
| 6004 | InvalidTickIndex | Tick out of range | tick_lower o tick_upper está fuera de [-443636, 443636]. | ”Rango de precio fuera de los límites para este pool.” |
| 6005 | TickInvalidOrder | The lower tick must be below the upper tick | tick_lower >= tick_upper. | ”El precio inferior debe ser menor que el precio superior.” |
| 6006 | TickLowerOverflow | The tick must be greater, or equal to the minimum tick(-443636) | Desbordamiento inferior del tick. | ”El precio inferior es demasiado bajo.” |
| 6007 | TickUpperOverflow | The tick must be lesser than, or equal to the maximum tick(443636) | Desbordamiento superior del tick. | ”El precio superior es demasiado alto.” |
| 6008 | TickAndSpacingNotMatch | tick % tick_spacing must be zero | El tick enviado no es múltiplo del tick_spacing del pool. | ”Ajusta el precio al incremento válido más cercano.” |
| 6009 | InvalidTickArray | Invalid tick array account | Se pasó un PDA incorrecto para un slot de tick-array. | ”Error interno: tick array incorrecto — recarga los datos del pool.” |
| 6010 | InvalidTickArrayBoundary | Invalid tick array boundary | Error de uno en la indexación del tick-array. | ”Error interno: error en el límite del tick-array.” |
| 6011 | SqrtPriceLimitOverflow | Square root price limit overflow | El sqrt_price_limit proporcionado por el invocador está fuera del rango válido. | ”El límite de precio está fuera de rango.” |
| 6012 | SqrtPriceX64 | sqrt_price_x64 out of range | El sqrt price actual del pool se desplazó fuera de rango a mitad del swap. | ”Vuelve a intentar el swap.” |
| 6013 | LiquiditySubValueErr | Liquidity sub delta L must be smaller than before | Violación de invariante interna al reducir liquidez. | ”Error interno: error en la contabilidad de liquidez.” |
| 6014 | LiquidityAddValueErr | Liquidity add delta L must be greater, or equal to before | Violación de invariante interna al aumentar liquidez. | ”Error interno: error en la contabilidad de liquidez.” |
| 6015 | ForbidBothZeroForSupplyLiquidity | Both token amount must not be zero while supply liquidity | Llamada a increase-liquidity con amount_0_max y amount_1_max ambos en cero. | ”Proporciona al menos un token.” |
| 6016 | LiquidityInsufficient | Liquidity insufficient | La posición no tiene suficiente liquidez para satisfacer el retiro. | ”El monto a retirar supera la liquidez de la posición.” |
| 6017 | PriceSlippageCheck | Price slippage check | El precio de ejecución no pasó la protección de slippage del invocador. | ”El precio superó tu tolerancia de slippage. Aumenta el slippage o inténtalo de nuevo.” |
| 6018 | TooLittleOutputReceived | Too little output received | SwapBaseInput: monto de salida por debajo de other_amount_threshold. | ”Slippage superado — mínimo de salida no alcanzado.” |
| 6019 | TooMuchInputPaid | Too much input paid | SwapBaseOutput: monto de entrada por encima de other_amount_threshold. | ”Slippage superado — máximo de entrada excedido.” |
| 6020 | ZeroAmountSpecified | Swap special amount can not be zero | amount en cero en una instrucción de swap. | ”Introduce un monto mayor que cero.” |
| 6021 | InvalidInputPoolVault | Input pool vault is invalid | La cuenta del vault de entrada del swap no coincide con el vault registrado del pool. | ”Error interno: vault de entrada incorrecto — recarga los datos del pool.” |
| 6022 | TooSmallInputOrOutputAmount | Swap input or output amount is too small | La matemática del swap redondeó a cero, típicamente con montos muy pequeños de polvo. | ”Monto demasiado pequeño para hacer swap en este pool.” |
| 6023 | NotEnoughTickArrayAccount | Not enough tick array account | No se proporcionaron suficientes cuentas restantes de tick-array para el rango del swap. | ”Error interno: tick-arrays insuficientes — recarga los datos del pool.” |
| 6024 | InvalidFirstTickArrayAccount | Invalid first tick array account | La primera cuenta de tick-array pasada no cubre el tick actual. | ”Error interno: primer tick array incorrecto — recarga los datos del pool.” |
| 6025 | InvalidRewardIndex | Invalid reward index | reward_index fuera de [0, 2]. | N/A — ruta de administrador. |
| 6026 | FullRewardInfo | The init reward token reach to the max | El pool ya tiene el máximo (3) de mints de recompensa configurados. | N/A — ruta de administrador. |
| 6027 | RewardTokenAlreadyInUse | The init reward token already in use | El mint de recompensa duplica uno existente. | N/A — ruta de administrador. |
| 6028 | ExceptRewardMint | The reward tokens must contain one of pool vault mint except the last reward | En slots previos al 2, el mint de recompensa debe coincidir con uno de los mints vault del pool. | N/A — ruta de administrador. |
| 6029 | InvalidRewardInitParam | Invalid reward init param | Tiempo de inicio/fin de emisión o tasa por segundo incorrectos. | N/A — ruta de administrador. |
| 6030 | InvalidRewardInputAccountNumber | Invalid collect reward input account number | Número incorrecto de cuentas restantes pasadas a CollectReward. | ”Error interno: número de cuentas incorrecto — recarga e inténtalo de nuevo.” |
| 6031 | InvalidRewardPeriod | Invalid reward period | Período de emisión de recompensas no válido (end <= start, duración cero). | N/A — ruta de administrador. |
| 6032 | NotApproveUpdateRewardEmissions | Modification of emissions is allowed within 72 hours from the end of the previous cycle | El administrador intentó modificar las emisiones fuera de la ventana de 72 horas alrededor de los límites del ciclo. | N/A — ruta de administrador. |
| 6033 | UnInitializedRewardInfo | uninitialized reward info | Se referenció un slot de recompensa no inicializado. | N/A — ruta de administrador. |
| 6034 | NotSupportMint | Not support token_2022 mint extension | CLMM encontró una extensión de Token-2022 que no puede manejar. | ”Este token tiene una extensión que Raydium CLMM no admite.” |
| 6035 | MissingTickArrayBitmapExtensionAccount | Missing tickarray bitmap extension account | El swap cruzó un rango de ticks no cubierto por el bitmap base; se requiere la cuenta de bitmap de extensión. | ”Error interno: extensión de tick-array faltante — recarga los datos del pool.” |
| 6036 | InsufficientLiquidityForDirection | Insufficient liquidity for this direction | No existe suficiente liquidez en la dirección del swap. | ”Liquidez insuficiente para el tamaño de este swap.” |
| 6037 | MaxTokenOverflow | Max token overflow | El monto de entrada/salida superó u64. | ”El monto es demasiado grande para este pool.” |
| 6038 | CalculateOverflow | Calculate overflow | Desbordamiento aritmético en comisiones/liquidez. | ”El monto es demasiado grande para este pool.” |
| 6039 | TransferFeeCalculateNotMatch | TransferFee calculate not match | El monto observado de la comisión de transferencia Token-2022 no coincidió con el esperado. | ”La comisión de transferencia del token cambió a mitad de la transacción. Inténtalo de nuevo.” |
| 6040 | OrderAlreadyFilled | Order already fully filled, cannot modify | Se llamó a IncreaseLimitOrder / DecreaseLimitOrder en una orden cuya porción no ejecutada es cero. | ”Esta orden limitada ya está completada — liquídala para recibir la salida.” |
| 6041 | InvalidOrderPhase | Invalid order phase | Se modificó una orden cuya fase de cohorte FIFO ya no coincide con la cohorte actual del tick. | ”No se puede realizar esta acción en el estado actual de la orden.” |
| 6042 | InvalidLimitOrderAmount | Invalid limit order amount | El monto de entrada de la orden está por debajo del mínimo del pool (o es cero) al abrir/aumentar/disminuir. | ”El tamaño de la orden está por debajo del mínimo del pool.” |
| 6043 | OrderPhaseSaturated | Tick order phase saturated | El contador order_phase de la cohorte en el tick está saturado; no se pueden abrir más órdenes en ese tick hasta que las cohortes existentes liquiden y roten. | ”Demasiadas órdenes activas en este precio; prueba un tick cercano o espera a que las órdenes se liquiden.” |
| 6044 | InvalidDynamicFeeConfigParams | Invalid dynamic fee config params | CreateDynamicFeeConfig / UpdateDynamicFeeConfig rechazado; o CreateCustomizablePool habilitó la comisión dinámica sin una configuración válida. | N/A en ruta de administrador; “Configuración de comisión dinámica no válida” en ruta de usuario. |
| 6045 | InvalidFeeOn | Invalid fee on which token (must be 0, 1, or 2) | CreateCustomizablePool pasó un valor collect_fee_on fuera de {0, 1, 2}. | ”Error interno: modo de comisión no válido.” |
| 6046 | ZeroSqrtPrice | sqrt_price_x64 must be greater than 0 | Se llamó a CreateCustomizablePool (u otra ruta que acepta un sqrt price inicial personalizable) con sqrt_price_x64 == 0. | ”El precio inicial debe ser mayor que cero.” |
| 6047 | ZeroLiquidity | liquidity must be greater than 0 | Se llamó a una ruta de provisión de liquidez con liquidity == 0 y sin monto compensatorio. | ”El monto de liquidez debe ser mayor que cero.” |
| 6048 | MissingBaseFlag | base_flag is required when liquidity is zero | Una ruta de apertura de posición por monto calculó liquidity == 0 y el invocador no proporcionó un base_flag para indicar cuál lado es la base. | ”Proporciona una liquidez distinta de cero o especifica cuál token es la base.” |
| 6049 | MissingMintAccount | Mint account is required but not provided | Se llamó a una ruta con soporte Token-2022 sin la cuenta de mint de entrada/salida necesaria para validar extensiones y comisiones de transferencia. | ”Error interno: cuenta de mint faltante — recarga los datos del pool.” |
| 6050 | MissingTokenProgram2022 | Token-2022 program is required but not provided | Igual que el anterior, pero para la cuenta del programa SPL-Token-2022. | ”Error interno: programa Token-2022 faltante — recarga e inténtalo de nuevo.” |
Nota sobre la renumeración. El enumFuente de regeneración: github.com/raydium-io/raydium-clmm — error.rs.ErrorCodede CLMM fue renumerado en esta versión: se eliminaron/corrigieron cinco variantes heredadas (LOK,ZeroMintAmount,InvalidLiquidity,TransactionTooOld,InvalidRewardDesiredAmount) y varios errores tipográficos (Liquitity,enought,emissiones), y se añadieron once nuevas variantes al final. Dado que Anchor numera los errores por orden en el código fuente, todos los códigos a partir de6000se han desplazado respecto a las versiones previas al lanzamiento. Los clientes que tenían códigos numéricos codificados de forma fija para una versión anterior deben actualizar su mapeo.
Errores de AMM v4, Farm v3 / v5 / v6 y LaunchLab
Estos programas están documentados en sus capítulos respectivos (verproducts/amm-v4/instructions, products/farm-staking/instructions, products/launchlab/instructions). Como esos programas utilizan una combinación de Anchor y superficies de error de Solana nativo, sus tablas de errores están junto a la referencia de instrucciones y no aquí. Los códigos a continuación están reservados por esos capítulos:
| Programa | Rango de códigos (solo Anchor) | Referencia |
|---|---|---|
| AMM v4 | Códigos u32 personalizados, no estilo Anchor | products/amm-v4/instructions |
| Farm v3 / v5 | Códigos u32 personalizados | products/farm-staking/instructions |
| Farm v6 | 6000+ (Anchor) | products/farm-staking/instructions |
| LaunchLab | 6000+ (Anchor) | products/launchlab/instructions |
Mapeo de errores del SDK a errores del programa
El SDK oficial de TypeScript envuelve los errores on-chain enSendTransactionError y, para programas Anchor, en AnchorError:
Error Number: (\d+) es estable entre versiones de Anchor y es seguro usarlo para comparaciones.
Regeneración de estas tablas
Cuando un programa se actualiza y añade un nuevo error, vuelve a extraerlo del código fuente:reference/changelog cuando se añada una nueva variante, para que los integradores que actualicen el SDK sepan que deben refrescar sus manejadores de errores.
Fuentes:


