# エラーのフォーマット エラーが発生する可能性のある状況をすべて挙げることは不可能です。トランスポートレイヤーで発生する場合(ネットワーク接続が失われる場合など)には、使用しているクライアントとトランスポートに応じてその結果は異なります。ただし、`rippled`サーバがリクエストを正常に受信した場合、サーバは標準のエラー形式でのレスポンスを試みます。 リクエストの結果がエラーになった場合、レスポンスの一部としてリクエスト全体がコピーされます。このため、エラーのデバッグに取り組むことができます。ただし、これにはリクエストで渡した機密情報がすべて含まれます。エラーメッセージを共有するときには、アカウントの重要な機密情報を他のユーザに誤って公開することがないように、十分に注意してください。 エラーの例: WebSocket ```json { "id": 3, "status": "error", "type": "response", "error": "ledgerIndexMalformed", "request": { "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", "command": "account_info", "id": 3, "ledger_index": "-", "strict": true } } ``` JSON-RPC ```json HTTP Status: 200 OK { "result": { "error": "ledgerIndexMalformed", "request": { "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", "command": "account_info", "ledger_index": "-", "strict": true }, "status": "error" } } ``` コマンドライン ```json { "result": { "error": "ledgerIndexMalformed", "request": { "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", "command": "account_info", "ledger_index": "-", "strict": true }, "status": "error" } } ``` ## WebSocketフォーマット | `Field` | 型 | 説明 | | --- | --- | --- | | `id` | (多様) | このレスポンスのリクエスト元となったWeb Socketリクエストに指定されていたID | | `status` | 文字列 | `"error"`: リクエストが原因でエラーが発生した場合 | | `type` | 文字列 | 通常は`"response"`。これは、コマンドに対し正常にレスポンスしたことを示します。 | | `error` | 文字列 | 発生したエラータイプの一意のコード。 | | `request` | オブジェクト | このエラーが発生したリクエストのコピー(JSONフォーマット)。**注意:** リクエストにアカウントの機密情報が含まれている場合、ここにコピーされます。 | | `api_version` | 数値 | *(省略可)* リクエストで`api_version`を指定していた場合は、その値。 | ## JSON-RPCフォーマット 一部のJSON-RPCリクエストは、HTTPレイヤーでエラーコードでレスポンスします。この場合、レスポンスはレスポンス本文にプレーンテキストで記述されます。たとえば`method`パラメータでコマンドを指定し忘れた場合、レスポンスは次のようになります。 ``` HTTP Status: 400 Bad Request Null method ``` HTTPステータスコード200 OKが返されるその他のエラーの場合、レスポンスはJSONフォーマットで、以下のフィールドが使用されます。 | `Field` | 型 | 説明 | | --- | --- | --- | | `result` | オブジェクト | クエリーに対するレスポンスが含まれているオブジェクト | | `result.error` | 文字列 | 発生したエラータイプの一意のコード。 | | `result.status` | 文字列 | `"error"`: リクエストが原因でエラーが発生した場合 | | `result.request` | オブジェクト | このエラーが発生したリクエストのコピー(JSONフォーマット)。**注意:** リクエストにアカウントの機密情報が含まれている場合、ここにコピーされます。**注記:** 発行されるリクエストにかかわらず、リクエストはWebSocketフォーマットに再設定されます。 | ## 汎用エラー すべてのメソッドは、以下のいずれかの値の`error`コードを返す可能性があります。 - `amendmentBlocked` - サーバの状態が[Amendmentブロック](/ja/docs/concepts/networks-and-servers/amendments#amendment-blocked)されたであるため、XRP Ledgerネットワークとの同期を維持するために最新バージョンに更新する必要があります。 - `failedToForward` - ([レポートモード](/ja/docs/concepts/networks-and-servers/rippled-server-modes#%E3%83%AC%E3%83%9D%E3%83%BC%E3%83%88%E3%83%A2%E3%83%BC%E3%83%89)のサーバのみ)サーバはこのリクエストをP2Pモードサーバに転送しようとしましたが、接続に失敗しました。 - `invalid_API_version` - サーバはリクエストの[APIバージョン番号](/ja/docs/references/http-websocket-apis/api-conventions/request-formatting#api%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E7%AE%A1%E7%90%86)をサポートしていません。 - `jsonInvalid` -(WebSocketのみ)リクエストは適切なJSONオブジェクトではありません。 - この場合JSON-RPCは、代わりに400 Bad Request HTTPエラーを返します。 - `missingCommand` -(WebSocketのみ)リクエストに`command`フィールドが指定されていませんでした。 - この場合JSON-RPCは、代わりに400 Bad Request HTTPエラーを返します。 - `noClosed` - サーバに閉鎖済みレジャーがありません。通常、このエラーは起動が完了していないことが原因で発生します。 - `noCurrent` - 高い負荷、ネットワークの問題、バリデータ障害、誤った構成、またはその他の問題が原因で、サーバが現行のレジャーを認識できません。 - `noNetwork` - サーバとXRP Ledgerピアツーピアネットワークのその他の部分との接続で問題が発生しています(サーバがスタンドアロンモードで実行されていません)。 - `unknownCmd` - リクエストに、`rippled`サーバが認識する[コマンド](/ja/docs/references/http-websocket-apis)が含まれていません。 - `tooBusy` - サーバの負荷が高すぎるため、現在このコマンドを実行できません。管理者として接続している場合は、通常このエラーが返されることはありません。 - `wsTextRequired` -(WebSocketのみ)リクエストの[opcode](https://tools.ietf.org/html/rfc6455#section-5.2)がテキストではありません。