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.
Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
Maßgebliche Quelle. Die folgenden Tabellen werden aus der jeweiligen
error.rs jedes Programms in den öffentlichen Raydium-Repositories neu generiert. Wenn ein Programm aktualisiert wird und eine neue Variante hinzukommt, führen Sie die Extraktion erneut aus (Link am Ende jeder Tabelle) und fügen Sie die neue Zeile an — anstatt die Tabelle umzusortieren. Anchor-Fehlercodes werden nach Quellreihenfolge vergeben, nicht nach Name; ein Umsortieren bricht das Fehler-Handling von Integratoren.Wie Anchor-Fehlercodes funktionieren
Anchor weist jeder Variante desErrorCode-Enums eines Programms einen numerischen Code ab 6000 zu. Bei einer fehlgeschlagenen Transaktion werden folgende Informationen ausgegeben:
- Numerischer Fehlercode (z. B.
0x1771= 6001) in den Transaktions-Logs. - Fehlername (z. B.
InvalidOwner) aus dem IDL. #[msg(...)]-String, den Anchor inlog_messagesausgegeben hat.
CPMM (Standard AMM) — Fehlercodes
Programm-ID: siehe Programmadressen. Quelle:raydium-cp-swap/programs/cp-swap/src/error.rs.
| Code | Variante | #[msg]-String | Typische Ursache | Empfohlene UX-Meldung |
|---|---|---|---|---|
| 6000 | NotApproved | Not approved | Der Aufrufer ist nicht die konfigurierte Autorität für eine Admin-Anweisung. | „Nur der Pool-Admin kann diese Aktion ausführen.” |
| 6001 | InvalidOwner | Input account owner is not the program address | Ein übergebenes Konto gehört dem falschen Programm (oft ein falsches Token-Programm oder ein falscher PDA). | „Intern: Konto-Eigentümer stimmt nicht überein — bitte neu laden und erneut versuchen.” |
| 6002 | EmptySupply | Input token account empty | Das LP- oder Token-Konto-Guthaben ist null an einem Schritt, der einen positiven Betrag erfordert. | „Nichts zum Abheben.” |
| 6003 | InvalidInput | InvalidInput | Generisches ungültiges Argument (Betrag außerhalb des gültigen Bereichs, falsches Flag). | „Ungültige Eingabe — Beträge prüfen und erneut versuchen.” |
| 6004 | IncorrectLpMint | Address of the provided lp token mint is incorrect | Das übergebene LP-Mint-Konto stimmt nicht mit pool_state.lp_mint überein. | „Intern: falscher LP-Mint — Pool-Daten neu laden.” |
| 6005 | ExceededSlippage | Exceeds desired slippage limit | Der ausgeführte Preis ist schlechter als das vom Nutzer angegebene minAmountOut / maxAmountIn. | „Der Preis hat Ihre Slippage-Toleranz überschritten. Slippage erhöhen oder erneut versuchen.” |
| 6006 | ZeroTradingTokens | Given pool token amount results in zero trading tokens | Die Deposit- / Withdraw-Berechnung hat eine Seite auf null gerundet (Position zu klein). | „Betrag liegt unter dem Minimum für diesen Pool.” |
| 6007 | NotSupportMint | Not support token_2022 mint extension (Grammatikfehler im Quellcode) | Der Pool hat eine Token-2022-Extension, die nicht sicher verarbeitet werden kann (z. B. TransferHook, DefaultAccountState=Frozen). | „Dieses Token hat eine Extension, die Raydium im CPMM nicht unterstützt.” |
| 6008 | InvalidVault | invaild vault (Tippfehler im Quellcode) | Das übergebene Vault-Konto stimmt nicht mit dem in pool_state gespeicherten überein. | „Intern: falsches Vault — neu laden und erneut versuchen.” |
| 6009 | InitLpAmountTooLess | Init lp amount is too less(Because 100 amount lp will be locked) (Grammatikfehler im Quellcode) | Bei der Pool-Initialisierung liegt das berechnete LP-Angebot unter dem dauerhaft gesperrten Betrag. | „Anfängliche Liquidität zu gering. Einzahlung erhöhen.” |
| 6010 | TransferFeeCalculateNotMatch | TransferFee calculate not match | Der beobachtete Post-Transfer-Betrag für einen Token-2022-Gebühr-Mint stimmte nicht mit der vorab berechneten Erwartung überein. | „Token-Transfergebühr hat sich während der Transaktion geändert. Erneut versuchen.” |
| 6011 | MathOverflow | Math overflow | Eine Zwischenberechnung bei Swap / Deposit / Gebühren ist übergelaufen. | „Betrag ist zu groß für diesen Pool.” |
| 6012 | InsufficientVault | Insufficient vault | Das Pool-Vault-Guthaben reicht nicht aus, um den angeforderten Output zu decken. | „Nicht genug Liquidität im Pool für diese Größe.” |
| 6013 | InvalidFeeModel | Invalid fee model | Der Admin hat eine AmmConfig-Parameterkombination gesetzt, die On-Chain abgelehnt wird. | N/A — nur für Admins. |
| 6014 | NoFeeCollect | Fee is zero | collect_protocol_fee / collect_fund_fee wurde aufgerufen, obwohl keine Gebühren eingesammelt werden können. | N/A — Admin-Pfad; Tools sollten diesen Fehler ignorieren. |
CLMM — Fehlercodes
Programm-ID: siehe Programmadressen. Quelle:raydium-clmm/programs/amm/src/error.rs.
| Code | Variante | #[msg]-String | Typische Ursache | Empfohlene UX-Meldung |
|---|---|---|---|---|
| 6000 | NotApproved | Not approved | Der Aufrufer ist nicht der konfigurierte Admin für diese Anweisung. | „Nur der Pool-Admin kann diese Aktion ausführen.” |
| 6001 | InvalidUpdateConfigFlag | invalid update amm config flag | Der Admin hat einen nicht erkannten param-Wert an update_amm_config übergeben. | N/A — nur für Admins. |
| 6002 | AccountLack | Account lack | Ein erforderliches verbleibendes Konto fehlt in der Transaktion (typischerweise Tick-Array oder Oracle-Extension). | „Intern: fehlendes Konto — Pool-Daten neu laden.” |
| 6003 | ClosePositionErr | Remove liquidity, collect fees owed and reward then you can close position account | Es wurde versucht, eine Position zu schließen, die noch Liquidität, nicht eingesammelte Gebühren oder nicht eingesammelte Rewards enthält. | „Liquidität abheben und Gebühren/Rewards einsammeln, bevor die Position geschlossen wird.” |
| 6004 | InvalidTickIndex | Tick out of range | tick_lower oder tick_upper liegt außerhalb von [-443636, 443636]. | „Preisbereich außerhalb der Grenzen für diesen Pool.” |
| 6005 | TickInvalidOrder | The lower tick must be below the upper tick | tick_lower >= tick_upper. | „Der untere Preis muss unter dem oberen Preis liegen.” |
| 6006 | TickLowerOverflow | The tick must be greater, or equal to the minimum tick(-443636) | Unterer Tick unterschreitet den Mindestwert. | „Unterer Preis zu niedrig.” |
| 6007 | TickUpperOverflow | The tick must be lesser than, or equal to the maximum tick(443636) | Oberer Tick überschreitet den Maximalwert. | „Oberer Preis zu hoch.” |
| 6008 | TickAndSpacingNotMatch | tick % tick_spacing must be zero | Der übergebene Tick ist kein Vielfaches des tick_spacing des Pools. | „Preis auf das nächste gültige Inkrement anpassen.” |
| 6009 | InvalidTickArray | Invalid tick array account | Falscher PDA für einen Tick-Array-Slot übergeben. | „Intern: falsches Tick-Array — Pool-Daten neu laden.” |
| 6010 | InvalidTickArrayBoundary | Invalid tick array boundary | Off-by-one-Fehler bei der Tick-Array-Indizierung. | „Intern: Tick-Array-Grenzfehler.” |
| 6011 | SqrtPriceLimitOverflow | Square root price limit overflow | Vom Aufrufer angegebenes sqrt_price_limit außerhalb des gültigen Bereichs. | „Preislimit außerhalb des gültigen Bereichs.” |
| 6012 | SqrtPriceX64 | sqrt_price_x64 out of range | Der aktuelle Sqrt-Preis des Pools ist während eines Swaps außerhalb des gültigen Bereichs geraten. | „Swap erneut versuchen.” |
| 6013 | LiquiditySubValueErr | Liquidity sub delta L must be smaller than before | Interne Invariantenverletzung beim Verringern der Liquidität. | „Intern: Fehler in der Liquiditätsbuchhaltung.” |
| 6014 | LiquidityAddValueErr | Liquidity add delta L must be greater, or equal to before | Interne Invariantenverletzung beim Erhöhen der Liquidität. | „Intern: Fehler in der Liquiditätsbuchhaltung.” |
| 6015 | ForbidBothZeroForSupplyLiquidity | Both token amount must not be zero while supply liquidity | Increase-Liquidity-Aufruf mit sowohl amount_0_max als auch amount_1_max gleich null. | „Mindestens einen Token-Betrag angeben.” |
| 6016 | LiquidityInsufficient | Liquidity insufficient | Die Position hat nicht genug Liquidität, um den Abhebungsbetrag zu erfüllen. | „Abhebungsbetrag übersteigt die Liquidität der Position.” |
| 6017 | PriceSlippageCheck | Price slippage check | Der Ausführungspreis hat die Slippage-Absicherung des Aufrufers nicht bestanden. | „Der Preis hat Ihre Slippage-Toleranz überschritten. Slippage erhöhen oder erneut versuchen.” |
| 6018 | TooLittleOutputReceived | Too little output received | SwapBaseInput: Ausgabebetrag liegt unter other_amount_threshold. | „Slippage überschritten — Mindestausgabe nicht erreicht.” |
| 6019 | TooMuchInputPaid | Too much input paid | SwapBaseOutput: Eingabebetrag liegt über other_amount_threshold. | „Slippage überschritten — maximale Eingabe überschritten.” |
| 6020 | ZeroAmountSpecified | Swap special amount can not be zero | amount in einer Swap-Anweisung ist null. | „Einen Betrag größer als null eingeben.” |
| 6021 | InvalidInputPoolVault | Input pool vault is invalid | Das Input-Vault-Konto des Swaps stimmt nicht mit dem im Pool gespeicherten Vault überein. | „Intern: falsches Input-Vault — Pool-Daten neu laden.” |
| 6022 | TooSmallInputOrOutputAmount | Swap input or output amount is too small | Die Swap-Berechnung hat auf null gerundet — typischerweise ein sehr kleiner Staubbetrag. | „Betrag zu klein für einen Swap in diesem Pool.” |
| 6023 | NotEnoughTickArrayAccount | Not enough tick array account | Nicht genug Tick-Array-Remaining-Accounts für den Swap-Bereich angegeben. | „Intern: unzureichende Tick-Arrays — Pool-Daten neu laden.” |
| 6024 | InvalidFirstTickArrayAccount | Invalid first tick array account | Das erste übergebene Tick-Array-Konto deckt den aktuellen Tick nicht ab. | „Intern: falsches erstes Tick-Array — Pool-Daten neu laden.” |
| 6025 | InvalidRewardIndex | Invalid reward index | reward_index außerhalb von [0, 2]. | N/A — Admin-Pfad. |
| 6026 | FullRewardInfo | The init reward token reach to the max | Der Pool hat bereits die maximale Anzahl (3) an Reward-Mints konfiguriert. | N/A — Admin-Pfad. |
| 6027 | RewardTokenAlreadyInUse | The init reward token already in use | Reward-Mint dupliziert einen vorhandenen. | N/A — Admin-Pfad. |
| 6028 | ExceptRewardMint | The reward tokens must contain one of pool vault mint except the last reward | Vor Slot 2 muss der Reward-Mint einem der Vault-Mints des Pools entsprechen. | N/A — Admin-Pfad. |
| 6029 | InvalidRewardInitParam | Invalid reward init param | Ungültige Emissions-Start-/Endzeit oder Rate pro Sekunde. | N/A — Admin-Pfad. |
| 6030 | InvalidRewardInputAccountNumber | Invalid collect reward input account number | Falsche Anzahl verbleibender Accounts für CollectReward übergeben. | „Intern: falsche Kontoanzahl — neu laden und erneut versuchen.” |
| 6031 | InvalidRewardPeriod | Invalid reward period | Reward-Emissionszeitraum ungültig (end <= start, Dauer null). | N/A — Admin-Pfad. |
| 6032 | NotApproveUpdateRewardEmissions | Modification of emissions is allowed within 72 hours from the end of the previous cycle | Der Admin hat versucht, Emissionen außerhalb des 72-Stunden-Fensters um Zyklusgrenzen zu ändern. | N/A — Admin-Pfad. |
| 6033 | UnInitializedRewardInfo | uninitialized reward info | Reward-Slot nicht initialisiert, aber referenziert. | N/A — Admin-Pfad. |
| 6034 | NotSupportMint | Not support token_2022 mint extension | CLMM hat eine Token-2022-Extension angetroffen, die nicht verarbeitet werden kann. | „Dieses Token hat eine Extension, die Raydium CLMM nicht unterstützt.” |
| 6035 | MissingTickArrayBitmapExtensionAccount | Missing tickarray bitmap extension account | Der Swap hat einen Tick-Bereich überquert, der nicht vom Basis-Bitmap abgedeckt wird; das Extension-Bitmap-Konto wird benötigt. | „Intern: fehlende Tick-Array-Extension — Pool-Daten neu laden.” |
| 6036 | InsufficientLiquidityForDirection | Insufficient liquidity for this direction | In der Swap-Richtung ist nicht genug Liquidität vorhanden. | „Unzureichende Liquidität für diese Swap-Größe.” |
| 6037 | MaxTokenOverflow | Max token overflow | Eingabe-/Ausgabebetrag hat u64 überschritten. | „Betrag zu groß für diesen Pool.” |
| 6038 | CalculateOverflow | Calculate overflow | Arithmetischer Überlauf bei Gebühren- / Liquiditätsberechnung. | „Betrag zu groß für diesen Pool.” |
| 6039 | TransferFeeCalculateNotMatch | TransferFee calculate not match | Der beobachtete Token-2022-Transfergebührbetrag stimmte nicht mit dem erwarteten überein. | „Token-Transfergebühr hat sich während der Transaktion geändert. Erneut versuchen.” |
| 6040 | OrderAlreadyFilled | Order already fully filled, cannot modify | IncreaseLimitOrder / DecreaseLimitOrder wurde für eine Order aufgerufen, deren nicht gefüllter Anteil null ist. | „Diese Limit-Order ist bereits vollständig ausgeführt — abwickeln, um den Output zu erhalten.” |
| 6041 | InvalidOrderPhase | Invalid order phase | Eine Order wird mutiert, deren FIFO-Kohortenphase nicht mehr mit der aktuellen Kohorte des Ticks übereinstimmt. | „Diese Aktion kann im aktuellen Zustand der Order nicht durchgeführt werden.” |
| 6042 | InvalidLimitOrderAmount | Invalid limit order amount | Order-Eingabe liegt beim Öffnen / Erhöhen / Verringern unter dem Minimum des Pools (oder ist null). | „Order-Größe liegt unter dem Minimum des Pools.” |
| 6043 | OrderPhaseSaturated | Tick order phase saturated | Der order_phase-Zähler der Kohorte am Tick ist ausgeschöpft; weitere Orders können an diesem Tick erst nach dem Abwickeln und Rollover bestehender Kohorten geöffnet werden. | „Zu viele aktive Orders zu diesem Preis; einen benachbarten Tick versuchen oder auf die Abwicklung warten.” |
| 6044 | InvalidDynamicFeeConfigParams | Invalid dynamic fee config params | CreateDynamicFeeConfig / UpdateDynamicFeeConfig abgelehnt; oder CreateCustomizablePool hat dynamische Gebühren ohne gültige Konfiguration aktiviert. | N/A auf Admin-Pfad; „Dynamische Gebührenkonfiguration ungültig” auf Nutzerpfad. |
| 6045 | InvalidFeeOn | Invalid fee on which token (must be 0, 1, or 2) | CreateCustomizablePool hat einen collect_fee_on-Wert außerhalb von {0, 1, 2} übergeben. | „Intern: ungültiger Gebührenmodus.” |
| 6046 | ZeroSqrtPrice | sqrt_price_x64 must be greater than 0 | CreateCustomizablePool (oder ein anderer Pfad, der einen anpassbaren initialen Sqrt-Preis akzeptiert) wurde mit sqrt_price_x64 == 0 aufgerufen. | „Der Anfangspreis muss größer als null sein.” |
| 6047 | ZeroLiquidity | liquidity must be greater than 0 | Ein Liquiditäts-bereitstellender Pfad wurde mit liquidity == 0 und ohne kompensierenden Betrag aufgerufen. | „Liquiditätsbetrag muss größer als null sein.” |
| 6048 | MissingBaseFlag | base_flag is required when liquidity is zero | Ein Open-Position-by-Amount-Pfad hat liquidity == 0 berechnet, und der Aufrufer hat kein base_flag angegeben, um die Basisseite eindeutig zu bestimmen. | „Entweder einen Liquiditätsbetrag größer null angeben oder das Basis-Token festlegen.” |
| 6049 | MissingMintAccount | Mint account is required but not provided | Ein Token-2022-fähiger Pfad wurde ohne das Input-/Output-Mint-Konto aufgerufen, das zur Validierung von Extensions und Transfergebühren benötigt wird. | „Intern: fehlendes Mint-Konto — Pool-Daten neu laden.” |
| 6050 | MissingTokenProgram2022 | Token-2022 program is required but not provided | Wie oben, jedoch für das SPL-Token-2022-Programmkonto. | „Intern: fehlendes Token-2022-Programm — neu laden und erneut versuchen.” |
Hinweis zur Neunummerierung. DasExtraktionsquelle: github.com/raydium-io/raydium-clmm — error.rs.ErrorCode-Enum des CLMM wurde in dieser Version neu nummeriert: Fünf veraltete Varianten (LOK,ZeroMintAmount,InvalidLiquidity,TransactionTooOld,InvalidRewardDesiredAmount) sowie mehrere Tippfehler (Liquitity,enought,emissiones) wurden entfernt oder korrigiert, und elf neue Varianten wurden angehängt. Da Anchor Fehler nach Quellreihenfolge nummeriert, hat sich jeder Code ab6000gegenüber Pre-Release-Builds verschoben. Clients, die numerische Codes gegen eine frühere Version fest kodiert haben, müssen ihre Zuordnungen aktualisieren.
AMM v4, Farm v3 / v5 / v6, LaunchLab — Fehlercodes
Diese Programme sind in ihren jeweiligen Kapiteln dokumentiert (sieheproducts/amm-v4/instructions, products/farm-staking/instructions, products/launchlab/instructions). Da diese Programme eine Mischung aus Anchor- und einfachen Solana-Fehlerausgaben verwenden, befinden sich ihre Fehlertabellen neben der jeweiligen Anweisungsreferenz und nicht hier. Die folgenden Codes sind für diese Kapitel reserviert:
| Programm | Codebereich (nur Anchor) | Referenz |
|---|---|---|
| AMM v4 | Benutzerdefinierte u32-Codes, kein Anchor-Stil | products/amm-v4/instructions |
| Farm v3 / v5 | Benutzerdefinierte u32-Codes | products/farm-staking/instructions |
| Farm v6 | 6000+ (Anchor) | products/farm-staking/instructions |
| LaunchLab | 6000+ (Anchor) | products/launchlab/instructions |
SDK-Fehler auf Programmfehler abbilden
Das offizielle TypeScript-SDK kapselt On-Chain-Fehler inSendTransactionError und für Anchor-Programme in AnchorError:
Error Number: (\d+) ist über alle Anchor-Versionen stabil und kann sicher gematcht werden.
Tabellen neu generieren
Wenn ein Programm aktualisiert wird und einen neuen Fehler hinzufügt, extrahieren Sie ihn aus dem Quellcode neu:reference/changelog, wenn eine neue Variante hinzukommt, damit Integratoren beim SDK-Upgrade wissen, dass sie ihre Fehler-Handler aktualisieren müssen.
Quellen:


