Skip to main content
Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
Maßgebliche Quelle. Die Tabellen unten werden aus der error.rs jedes Programms in den öffentlichen Raydium-Repositories regeneriert. Wenn ein Programm aktualisiert wird und eine neue Variante hinzugefügt wird, führen Sie die Extraktion erneut aus (Link am Ende jeder Tabelle) und hängen Sie sie an die Tabelle an, anstatt sie umzuordnen – Anchor-Fehlercodes werden nach Quellreihenfolge zugewiesen, nicht nach Name, daher bricht eine Umordnung die Fehlerbehandlung von Integratoren.

Wie Anchor-Fehlercodes funktionieren

Anchor weist jeder Variante des ErrorCode-Enums eines Programms einen numerischen Code ab 6000 zu. Eine fehlgeschlagene Transaktion zeigt:
  • Numerischer Fehlercode (z. B. 0x1771 = 6001) in den Transaktionsprotokollen.
  • Fehlername (z. B. InvalidOwner) aus der IDL.
  • #[msg(...)]-String, den Anchor in log_messages ausgegeben hat.
Integratoren sollten auf den numerischen Code abgleichen, nicht auf die Nachrichtenzeichenkette (die Zeichenkette kann umformuliert werden, ohne eine Version zu erhöhen).

CPMM (Standard-AMM) Fehler

Programm-ID: siehe /de/reference/program-addresses. Quelle: raydium-cp-swap/programs/cp-swap/src/error.rs. Regenerierungsquelle: github.com/raydium-io/raydium-cp-swap — error.rs.

CLMM-Fehler

Programm-ID: siehe reference/program-addresses. Quelle: raydium-clmm/programs/amm/src/error.rs.
Hinweis zur Neunummerierung. Die CLMM ErrorCode-Enumeration wurde in dieser Version neu nummeriert: fünf Legacy-Varianten (LOK, ZeroMintAmount, InvalidLiquidity, TransactionTooOld, InvalidRewardDesiredAmount) und mehrere Tippfehler (Liquitity, enought, emissiones) wurden entfernt/behoben, und elf neue Varianten wurden angehängt (6040–6050) durch die Limit-Order-Version; 6051 (InvalidTickArrayBitmapExtensionAccount) kam aus einer separaten, späteren Änderung. Das ergab 52 Varianten, 6000–6051, was die Anzahl ist, die die aktuell bereitgestellte Programm-On-Chain-IDL meldet. Das Upgrade vom 2026-09-30 hängt 6052 an, ohne etwas zu verschieben, für insgesamt 53. Da Anchor Fehler nach Quellreihenfolge nummeriert, hat jeder Code bei oder nach 6000 sich relativ zu Pre-Release-Builds verschoben. Clients, die numerische Codes gegen eine frühere Version hartcodiert haben, müssen neu zuordnen.
Regenerierungsquelle: github.com/raydium-io/raydium-clmm — error.rs.

AMM v4, Farm v3 / v5 / v6, LaunchLab – Fehler

Diese Programme sind in ihren jeweiligen Kapiteln dokumentiert (siehe products/amm-v4/instructions, products/farm-staking/instructions, products/launchlab/instructions). Da diese Programme eine Mischung aus Anchor- und reinen Solana-Fehleroberflächen verwenden, befinden sich ihre Fehlertabellen neben der Anweisungsreferenz und nicht hier. Die folgenden Codes sind durch diese Kapitel reserviert: Die neuesten LaunchLab-Versionen behalten die Codes 6000–6021 unverändert. Die Version vom 2026-08-17 entfernte die früheren plattformglobalen Zugriffsfehler und ordnete 6022 dem Validierungsfehler für das Allow-Account zu; die Version vom 2026-08-24 fügt 6023 hinzu; die Version vom 2026-08-31 fügt 6024–6030 hinzu; die Version vom 2026-09-09 fügt 6031 hinzu: Die alten Varianten PlatformGlobalAccessDenied (6022) und InvalidPlatformGlobalAccess (6023) sind entfernt. Dekodieren Sie 6022 nicht mit dem vorherigen IDL, und beachten Sie, dass 6023 – von der Version vom 2026-08-17 freigegeben – von der Version vom 2026-08-24 für einen nicht verwandten Fehler wiederverwendet wird, daher darf es nicht mit einem IDL aus einer früheren Version dekodiert werden. 6020 wird absichtlich beibehalten. Anchor nummeriert Varianten nach Position, daher würde das Löschen alle Codes danach verschieben und jeden Client brechen, der 6021–6031 dekodiert.

AMM v4: AmmError ist nicht Anchor-nummeriert

AMM v4 stammt aus der Zeit vor Anchor. AmmError ist ein einfaches thiserror-Enum mit FromPrimitive, konvertiert über ProgramError::Custom(e as u32), daher beginnen seine Codes bei 0, nicht 6000 – und werden wie bei Anchor nach Quellreihenfolge zugewiesen. Das Upgrade vom 2026-09 fügt eine Variante hinzu: Die Codes 0–59 bleiben unverändert, daher verschiebt sich nichts. In Transaktionsprotokollen wird dies als custom program error: 0x3c angezeigt. Regenerierungsquelle: github.com/raydium-io/raydium-amm — error.rs.

SDK-Fehler auf Programm-Fehler abbilden

Das offizielle TypeScript SDK umhüllt On-Chain-Fehler in SendTransactionError und für Anchor-Programme in AnchorError:
Wenn Sie Anchor nicht auf der Client-Seite verwenden, analysieren Sie die Transaktionsprotokolle:
Das Muster Error Number: (\d+) ist über Anchor-Versionen hinweg stabil und sicher zum Abgleichen.

Diese Tabellen neu generieren

Wenn ein Programm aktualisiert wird und einen neuen Fehler hinzufügt, extrahieren Sie erneut aus der Quelle:
Aktualisieren Sie immer reference/changelog, wenn eine neue Variante hinzugefügt wird, damit Integratoren, die das SDK aktualisieren, ihre Fehlerbehandlung auffrischen können. Quellen: