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.
Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
Source de référence. Les tableaux ci-dessous sont régénérés à partir du fichier
error.rs de chaque programme dans les dépôts publics Raydium. Lorsqu’un programme est mis à jour et qu’une nouvelle variante est ajoutée, relancez l’extraction (lien en bas de chaque tableau) et ajoutez la ligne à la fin du tableau sans réorganiser l’ordre existant — Anchor assigne les codes d’erreur selon l’ordre dans le code source, pas selon le nom, donc tout réordonnancement casse la gestion d’erreurs des intégrateurs.Fonctionnement des codes d’erreur Anchor
Anchor attribue à chaque variante de l’enumErrorCode d’un programme un code numérique à partir de 6000. Une transaction en échec expose :
- Le code d’erreur numérique (p. ex.
0x1771= 6001) dans les logs de transaction. - Le nom de l’erreur (p. ex.
InvalidOwner) issu de l’IDL. - La chaîne
#[msg(...)]qu’Anchor a émise danslog_messages.
Erreurs CPMM (AMM Standard)
Program ID : voir reference/program-addresses. Source :raydium-cp-swap/programs/cp-swap/src/error.rs.
| Code | Variante | Chaîne #[msg] | Cause typique | Message UX recommandé |
|---|---|---|---|---|
| 6000 | NotApproved | Not approved | L’appelant n’est pas l’autorité configurée pour une instruction d’administration. | « Seul l’administrateur du pool peut effectuer cette action. » |
| 6001 | InvalidOwner | Input account owner is not the program address | Un compte transmis appartient au mauvais programme (souvent un mauvais programme de tokens ou un PDA du mauvais programme). | « Erreur interne : propriétaire de compte incorrect — actualisez et réessayez. » |
| 6002 | EmptySupply | Input token account empty | Le solde du compte LP ou de tokens est nul à une étape qui requiert un montant positif. | « Rien à retirer. » |
| 6003 | InvalidInput | InvalidInput | Argument générique invalide (montant hors plage, flag incorrect). | « Entrée invalide — vérifiez les montants et réessayez. » |
| 6004 | IncorrectLpMint | Address of the provided lp token mint is incorrect | Le compte mint LP transmis ne correspond pas à pool_state.lp_mint. | « Erreur interne : mauvais mint LP — actualisez les données du pool. » |
| 6005 | ExceededSlippage | Exceeds desired slippage limit | Le prix d’exécution est moins favorable que le minAmountOut / maxAmountIn de l’utilisateur. | « Le prix a dépassé votre tolérance au slippage. Augmentez le slippage ou réessayez. » |
| 6006 | ZeroTradingTokens | Given pool token amount results in zero trading tokens | Le calcul du dépôt / retrait a arrondi un côté à zéro (position trop petite). | « Le montant est inférieur au minimum pour ce pool. » |
| 6007 | NotSupportMint | Not support token_2022 mint extension (grammaire dans le source) | Le pool a rencontré une extension Token-2022 qu’il ne peut pas gérer de façon sûre (p. ex. TransferHook, DefaultAccountState=Frozen). | « Ce token possède une extension non prise en charge par Raydium dans CPMM. » |
| 6008 | InvalidVault | invaild vault (faute de frappe dans le source) | Le compte vault transmis ne correspond pas à celui enregistré dans pool_state. | « Erreur interne : mauvais vault — actualisez et réessayez. » |
| 6009 | InitLpAmountTooLess | Init lp amount is too less(Because 100 amount lp will be locked) (grammaire dans le source) | À l’initialisation du pool, l’offre LP calculée est inférieure au montant de verrouillage permanent. | « Liquidité initiale trop faible. Augmentez le dépôt. » |
| 6010 | TransferFeeCalculateNotMatch | TransferFee calculate not match | Le montant post-transfert observé pour un mint Token-2022 avec frais ne correspond pas à l’estimation pré-calculée. | « Les frais de transfert de token ont changé en cours de transaction. Réessayez. » |
| 6011 | MathOverflow | Math overflow | Un calcul intermédiaire de swap / dépôt / frais a provoqué un dépassement arithmétique. | « Le montant est trop élevé pour ce pool. » |
| 6012 | InsufficientVault | Insufficient vault | Le solde du vault du pool est trop faible pour couvrir la sortie demandée. | « Liquidité insuffisante dans le pool pour cette taille. » |
| 6013 | InvalidFeeModel | Invalid fee model | L’administrateur a défini une combinaison de paramètres AmmConfig rejetée on-chain. | N/A — chemin réservé à l’administration. |
| 6014 | NoFeeCollect | Fee is zero | collect_protocol_fee / collect_fund_fee appelé alors que les frais collectables sont nuls. | N/A — chemin admin ; l’outillage doit ignorer silencieusement. |
Erreurs CLMM
Program ID : voir reference/program-addresses. Source :raydium-clmm/programs/amm/src/error.rs.
| Code | Variante | Chaîne #[msg] | Cause typique | Message UX recommandé |
|---|---|---|---|---|
| 6000 | NotApproved | Not approved | L’appelant n’est pas l’administrateur configuré pour cette instruction. | « Seul l’administrateur du pool peut effectuer cette action. » |
| 6001 | InvalidUpdateConfigFlag | invalid update amm config flag | L’administrateur a transmis une valeur param non reconnue à update_amm_config. | N/A — chemin réservé à l’administration. |
| 6002 | AccountLack | Account lack | Un compte restant requis est absent de la transaction (généralement un tick-array ou une extension oracle). | « Erreur interne : compte manquant — actualisez les données du pool. » |
| 6003 | ClosePositionErr | Remove liquidity, collect fees owed and reward then you can close position account | Tentative de fermeture d’une position qui contient encore de la liquidité, des frais non collectés ou des récompenses non collectées. | « Retirez toute la liquidité et réclamez les frais/récompenses avant de fermer la position. » |
| 6004 | InvalidTickIndex | Tick out of range | tick_lower ou tick_upper est en dehors de [-443636, 443636]. | « La plage de prix est hors limites pour ce pool. » |
| 6005 | TickInvalidOrder | The lower tick must be below the upper tick | tick_lower >= tick_upper. | « Le prix inférieur doit être en dessous du prix supérieur. » |
| 6006 | TickLowerOverflow | The tick must be greater, or equal to the minimum tick(-443636) | Dépassement inférieur du tick bas. | « Prix inférieur trop bas. » |
| 6007 | TickUpperOverflow | The tick must be lesser than, or equal to the maximum tick(443636) | Dépassement supérieur du tick haut. | « Prix supérieur trop élevé. » |
| 6008 | TickAndSpacingNotMatch | tick % tick_spacing must be zero | Le tick soumis n’est pas un multiple du tick_spacing du pool. | « Alignez le prix sur l’incrément valide le plus proche. » |
| 6009 | InvalidTickArray | Invalid tick array account | Un mauvais PDA a été transmis pour un slot de tick-array. | « Erreur interne : mauvais tick array — actualisez les données du pool. » |
| 6010 | InvalidTickArrayBoundary | Invalid tick array boundary | Erreur de décalage d’un dans l’indexation des tick-arrays. | « Erreur interne : erreur de limite de tick-array. » |
| 6011 | SqrtPriceLimitOverflow | Square root price limit overflow | Le sqrt_price_limit fourni par l’appelant est en dehors de la plage valide. | « Limite de prix hors plage. » |
| 6012 | SqrtPriceX64 | sqrt_price_x64 out of range | Le sqrt price actuel du pool a dérivé hors de la plage en cours de swap. | « Réessayez le swap. » |
| 6013 | LiquiditySubValueErr | Liquidity sub delta L must be smaller than before | Violation d’invariant interne lors d’une diminution de liquidité. | « Erreur interne : erreur de comptabilité de liquidité. » |
| 6014 | LiquidityAddValueErr | Liquidity add delta L must be greater, or equal to before | Violation d’invariant interne lors d’une augmentation de liquidité. | « Erreur interne : erreur de comptabilité de liquidité. » |
| 6015 | ForbidBothZeroForSupplyLiquidity | Both token amount must not be zero while supply liquidity | Appel d’augmentation de liquidité avec amount_0_max et amount_1_max tous deux à zéro. | « Fournissez au moins un token. » |
| 6016 | LiquidityInsufficient | Liquidity insufficient | La position ne dispose pas de suffisamment de liquidité pour satisfaire le retrait. | « Le montant de retrait dépasse la liquidité de la position. » |
| 6017 | PriceSlippageCheck | Price slippage check | Le prix d’exécution a échoué à la vérification de slippage de l’appelant. | « Le prix a dépassé votre tolérance au slippage. Augmentez le slippage ou réessayez. » |
| 6018 | TooLittleOutputReceived | Too little output received | SwapBaseInput : montant de sortie inférieur à other_amount_threshold. | « Slippage dépassé — sortie minimale non atteinte. » |
| 6019 | TooMuchInputPaid | Too much input paid | SwapBaseOutput : montant d’entrée supérieur à other_amount_threshold. | « Slippage dépassé — entrée maximale dépassée. » |
| 6020 | ZeroAmountSpecified | Swap special amount can not be zero | Montant amount nul dans une instruction de swap. | « Saisissez un montant supérieur à zéro. » |
| 6021 | InvalidInputPoolVault | Input pool vault is invalid | Le compte vault d’entrée du swap ne correspond pas au vault enregistré dans le pool. | « Erreur interne : mauvais vault d’entrée — actualisez les données du pool. » |
| 6022 | TooSmallInputOrOutputAmount | Swap input or output amount is too small | Le calcul du swap a arrondi à zéro, généralement pour de très petites quantités résiduelles. | « Montant trop faible pour être swappé dans ce pool. » |
| 6023 | NotEnoughTickArrayAccount | Not enough tick array account | Pas assez de comptes tick-array restants fournis pour la plage du swap. | « Erreur interne : tick-arrays insuffisants — actualisez les données du pool. » |
| 6024 | InvalidFirstTickArrayAccount | Invalid first tick array account | Le premier compte tick-array transmis ne couvre pas le tick actuel. | « Erreur interne : mauvais premier tick array — actualisez les données du pool. » |
| 6025 | InvalidRewardIndex | Invalid reward index | reward_index en dehors de [0, 2]. | N/A — chemin admin. |
| 6026 | FullRewardInfo | The init reward token reach to the max | Le pool a déjà le nombre maximum (3) de mints de récompense configurés. | N/A — chemin admin. |
| 6027 | RewardTokenAlreadyInUse | The init reward token already in use | Le mint de récompense fait doublon avec un existant. | N/A — chemin admin. |
| 6028 | ExceptRewardMint | The reward tokens must contain one of pool vault mint except the last reward | Avant le slot 2, le mint de récompense doit correspondre à l’un des mints de vault du pool. | N/A — chemin admin. |
| 6029 | InvalidRewardInitParam | Invalid reward init param | Mauvaise heure de début/fin d’émission ou taux par seconde invalide. | N/A — chemin admin. |
| 6030 | InvalidRewardInputAccountNumber | Invalid collect reward input account number | Nombre incorrect de comptes restants transmis à CollectReward. | « Erreur interne : nombre de comptes incorrect — actualisez et réessayez. » |
| 6031 | InvalidRewardPeriod | Invalid reward period | Période d’émission de récompense invalide (end <= start, durée nulle). | N/A — chemin admin. |
| 6032 | NotApproveUpdateRewardEmissions | Modification of emissions is allowed within 72 hours from the end of the previous cycle | L’administrateur a tenté de modifier les émissions en dehors de la fenêtre de 72 heures autour des limites de cycle. | N/A — chemin admin. |
| 6033 | UnInitializedRewardInfo | uninitialized reward info | Slot de récompense référencé mais non initialisé. | N/A — chemin admin. |
| 6034 | NotSupportMint | Not support token_2022 mint extension | Le CLMM a rencontré une extension Token-2022 qu’il ne peut pas gérer. | « Ce token possède une extension non prise en charge par Raydium CLMM. » |
| 6035 | MissingTickArrayBitmapExtensionAccount | Missing tickarray bitmap extension account | Le swap a franchi une plage de ticks non couverte par le bitmap de base ; le compte bitmap d’extension est requis. | « Erreur interne : extension tick-array manquante — actualisez les données du pool. » |
| 6036 | InsufficientLiquidityForDirection | Insufficient liquidity for this direction | La liquidité est insuffisante dans la direction du swap. | « Liquidité insuffisante pour cette taille de swap. » |
| 6037 | MaxTokenOverflow | Max token overflow | Le montant d’entrée/sortie dépasse u64. | « Montant trop élevé pour ce pool. » |
| 6038 | CalculateOverflow | Calculate overflow | Dépassement arithmétique dans le calcul des frais / de la liquidité. | « Montant trop élevé pour ce pool. » |
| 6039 | TransferFeeCalculateNotMatch | TransferFee calculate not match | Le montant observé lors d’un transfert Token-2022 avec frais ne correspond pas à l’attendu. | « Les frais de transfert de token ont changé en cours de transaction. Réessayez. » |
| 6040 | OrderAlreadyFilled | Order already fully filled, cannot modify | IncreaseLimitOrder / DecreaseLimitOrder appelé sur un ordre dont la portion non exécutée est nulle. | « Cet ordre limite est déjà entièrement exécuté — réglez-le pour recevoir la sortie. » |
| 6041 | InvalidOrderPhase | Invalid order phase | Modification d’un ordre dont la phase de cohorte FIFO ne correspond plus à la cohorte actuelle du tick. | « Cette action n’est pas possible dans l’état actuel de l’ordre. » |
| 6042 | InvalidLimitOrderAmount | Invalid limit order amount | Le montant de l’ordre est inférieur au minimum du pool (ou nul) lors de l’ouverture / augmentation / diminution. | « La taille de l’ordre est inférieure au minimum du pool. » |
| 6043 | OrderPhaseSaturated | Tick order phase saturated | Le compteur order_phase de la cohorte sur le tick est saturé ; aucun ordre supplémentaire ne peut être ouvert à ce tick tant que les cohortes existantes ne sont pas réglées et réinitialisées. | « Trop d’ordres actifs à ce prix ; essayez un tick voisin ou attendez que des ordres soient réglés. » |
| 6044 | InvalidDynamicFeeConfigParams | Invalid dynamic fee config params | CreateDynamicFeeConfig / UpdateDynamicFeeConfig rejeté ; ou CreateCustomizablePool a activé les frais dynamiques sans configuration valide. | N/A sur le chemin admin ; « Configuration de frais dynamiques invalide » sur le chemin utilisateur. |
| 6045 | InvalidFeeOn | Invalid fee on which token (must be 0, 1, or 2) | CreateCustomizablePool a transmis une valeur collect_fee_on en dehors de {0, 1, 2}. | « Erreur interne : mode de frais invalide. » |
| 6046 | ZeroSqrtPrice | sqrt_price_x64 must be greater than 0 | CreateCustomizablePool (ou un autre chemin acceptant un sqrt price initial personnalisable) a été appelé avec sqrt_price_x64 == 0. | « Le prix initial doit être supérieur à zéro. » |
| 6047 | ZeroLiquidity | liquidity must be greater than 0 | Un chemin de fourniture de liquidité a été appelé avec liquidity == 0 sans montant compensatoire. | « Le montant de liquidité doit être supérieur à zéro. » |
| 6048 | MissingBaseFlag | base_flag is required when liquidity is zero | Un chemin d’ouverture de position par montant a calculé liquidity == 0 et l’appelant n’a pas fourni de base_flag pour préciser quel côté est la base. | « Fournissez une liquidité non nulle ou indiquez quel token est la base. » |
| 6049 | MissingMintAccount | Mint account is required but not provided | Un chemin compatible Token-2022 a été appelé sans le compte mint d’entrée/sortie nécessaire pour valider les extensions et les frais de transfert. | « Erreur interne : compte mint manquant — actualisez les données du pool. » |
| 6050 | MissingTokenProgram2022 | Token-2022 program is required but not provided | Identique au précédent, pour le compte du programme SPL-Token-2022. | « Erreur interne : programme Token-2022 manquant — actualisez et réessayez. » |
Note sur la renumérotation. L’enumSource de régénération : github.com/raydium-io/raydium-clmm — error.rs.ErrorCodedu CLMM a été renumérotée dans cette version : cinq variantes héritées (LOK,ZeroMintAmount,InvalidLiquidity,TransactionTooOld,InvalidRewardDesiredAmount) et plusieurs fautes de frappe (Liquitity,enought,emissiones) ont été supprimées ou corrigées, et onze nouvelles variantes ont été ajoutées à la fin. Anchor numérotant les erreurs selon l’ordre dans le code source, tous les codes à partir de6000ont décalé par rapport aux versions pré-release. Les clients ayant codé en dur des codes numériques pour une version antérieure doivent effectuer une correspondance.
Erreurs AMM v4, Farm v3 / v5 / v6, LaunchLab
Ces programmes sont documentés dans leurs chapitres respectifs (voirproducts/amm-v4/instructions, products/farm-staking/instructions, products/launchlab/instructions). Ces programmes utilisant un mélange de surfaces d’erreur Anchor et Solana brutes, leurs tableaux d’erreurs se trouvent à côté de la référence d’instructions plutôt qu’ici. Les codes ci-dessous sont réservés par ces chapitres :
| Programme | Plage de codes (Anchor uniquement) | Référence |
|---|---|---|
| AMM v4 | Codes u32 personnalisés, pas de style Anchor | products/amm-v4/instructions |
| Farm v3 / v5 | Codes u32 personnalisés | products/farm-staking/instructions |
| Farm v6 | 6000+ (Anchor) | products/farm-staking/instructions |
| LaunchLab | 6000+ (Anchor) | products/launchlab/instructions |
Correspondance entre erreurs SDK et erreurs de programme
Le SDK TypeScript officiel encapsule les erreurs on-chain dansSendTransactionError et, pour les programmes Anchor, dans AnchorError :
Error Number: (\d+) est stable entre les versions d’Anchor et peut être utilisé sans risque pour les correspondances.
Régénération de ces tableaux
Lorsqu’un programme est mis à jour et ajoute une nouvelle erreur, réextrayez depuis le code source :reference/changelog lorsqu’une nouvelle variante est ajoutée, afin que les intégrateurs qui mettent à jour le SDK sachent qu’ils doivent actualiser leurs gestionnaires d’erreurs.
Sources :


