HTTPステータスコード
| ステータス | 意味 | リトライ可能 |
|---|---|---|
| 200 | 成功 | N/A |
| 400 | 不正リクエスト(無効なパラメータ、無効なミント、非対応トークンプログラム) | いいえ |
| 401 | 未認証(APIキーの欠落または無効) | いいえ |
| 404 | 非対応マーケットまたはミント未インデックス | いいえ(下記参照) |
| 422 | 処理不能(有効なリクエストだが実行可能なルートなし) | いいえ |
| 429 | レート制限 | はい |
| 502 | Bad Gateway(上流RPCまたはDEX障害) | はい |
| 503 | サービス利用不可(ルーター未準備またはポーズ中) | はい |
| 500 | 内部サーバーエラー | はい |
レスポンスエンベロープ
成功
非対応マーケット
サポートされているDEXでミントに実行可能なルートがない場合に返されます。messageフィールドは人間とAIが読める説明を提供します。
| 理由 | ステータス | 説明 |
|---|---|---|
no_route | 404 | サポートされているDEXにこのミントのプールがない |
invalid_mint | 400 | ミントアドレスがオンチェーンに存在しない |
unsupported_token_program | 400 | トークンがSPL TokenまたはToken-2022以外のプログラムを使用 |
未インデックス
ミントは存在するがまだ解決されていない場合に返されます。短い遅延後にリトライしてください。エラー
バリデーション失敗、レート制限、サーバーエラーの一般的なエラーレスポンスです。ExitApiError型を通じて提供します。
ExitApiErrorの種類
すべてのSDKはkind識別子を持つExitApiError(または同等のもの)を公開します:
| 種類 | トリガー | リトライ可能 |
|---|---|---|
transport | ネットワーク障害、DNSエラー、タイムアウト | はい |
http_status | 非2xx HTTPレスポンス | ステータスが500以上または429の場合はい |
envelope_status | サーバーが{ "status": "error" }を返した | いいえ |
parse | レスポンスボディをJSONとして解析できなかった | いいえ |
リトライ可能性の確認
組み込みリトライ動作
すべてのSDKには以下のデフォルトで自動リトライが含まれています:| 設定 | デフォルト値 |
|---|---|
| 最大試行回数 | 2 |
| 初期バックオフ | 25 ms |
| 最大バックオフ | 25 ms |
| ジッター | 25 ms |
| 接続タイムアウト | 200 ms |
| 試行タイムアウト | 900 ms |
isRetryable()がtrueを返すエラー(トランスポート障害、5xxレスポンス、429レート制限)に対してのみ発動します。
リトライポリシーのカスタマイズ
ベストプラクティス
400、401、422エラーはリトライしないでください。コードで修正すべきリクエストまたは認証の問題を示しています。"status": "unsupported"の404はリトライしないでください。ミントにサポートされているマーケットがありません。"status": "not_indexed"の404は1回リトライしてください。ミントの解決に少し時間が必要な場合があります。429レスポンスには指数バックオフで待機してください。組み込みリトライがこれを自動処理します。502および503エラーにはバックオフ付きでリトライしてください。一時的なインフラ問題です。- デバッグ用に
kind、status、bodyを含むエラー詳細をログに記録してください。 - 一貫して
envelope_statusエラーが発生する場合は、mintアドレスとuser_pubkeyが正しいことを確認してください。

