エラー
HTTP ステータスを確認してからプロトコル別の構造を読み取ります。すべての応答に文字列 error.code があるとは限りません。
Anthropic 以外のゲートウェイエラー
{"error":{"code":404,"type":"invalid_request_error","message":"Model not found","gateway_code":"MODEL_NOT_FOUND"}}
error.code は数値の HTTP ステータス、error.gateway_code は詳細識別子です。X-Gateway-Trace-ID は応答ヘッダーにあります。
Anthropic Messages / count_tokens のエラー
{"type":"error","error":{"type":"invalid_request_error","message":"Model not found"},"request_id":"gw-..."}
error.type、error.message、request_id を返し、gateway_code や文字列 code は保証しません。匿名化された上流エラーでは error.code に UPSTREAM_REQUEST_FAILED または UPSTREAM_MEDIA_FETCH_FAILED が入る場合があります。これらの形式に対応してください。
主なゲートウェイ識別子
| HTTP | gateway_code | 説明 |
|---|---|---|
| 400 | MODEL_REQUIRED | model がありません |
| 400 | INVALID_REQUEST_BODY | 音声リクエスト不正。ほかはマッピング依存 |
| 400 | PROTOCOL_TRANSFORM_FAILED / AUDIO_FORMAT_UNSUPPORTED / PROTOCOL_STREAM_UNSUPPORTED | マッピング・形式・ストリーム非対応 |
| 401 | UNAUTHORIZED / INVALID_API_KEY | キーがない、または無効 |
| 402 | INSUFFICIENT_BALANCE / KEY_BUDGET_EXCEEDED / PROJECT_BUDGET_EXCEEDED | 残高・予算不足 |
| 402 / 403 | PROJECT_DISABLED | モデル・一覧は 402、ファイルは 403 |
| 403 | MODEL_NOT_ALLOWED | キーでモデルが許可されていない |
| 404 | MODEL_NOT_FOUND / MODEL_API_NOT_SUPPORTED | モデル未提供、またはプロトコル未対応 |
| 404 | UNSUPPORTED_ENDPOINT / VIDEO_TASK_NOT_FOUND | 不明なパス、または動画ハンドル不正 |
| 405 | METHOD_NOT_ALLOWED | HTTP メソッド非対応 |
| 413 | REQUEST_TOO_LARGE | 本文超過、または入口で読み取れない |
| 429 | RATE_LIMIT_EXCEEDED / ROUTE_CAPACITY_EXCEEDED | キー制限、またはルート容量不足 |
| 500 | API_KEY_LOOKUP_FAILED / MODEL_QUERY_FAILED / MODEL_LIST_QUERY_FAILED / MODEL_RULE_CHECK_FAILED / MAPPING_QUERY_FAILED | DB・内部照会失敗 |
| 502 | UPSTREAM_CONNECT_ERROR / UPSTREAM_TRANSPORT_ERROR / PROTOCOL_RESPONSE_TRANSFORM_FAILED | 接続・転送・応答変換失敗 |
| 503 | UPSTREAM_UNAVAILABLE / RATE_LIMIT_STATE_UNAVAILABLE | 上流なし、または制限状態が取得できない |
| 504 | UPSTREAM_TIMEOUT | 上流タイムアウト。処理済みの可能性あり |
不明な識別子は HTTP ステータスと Trace を保持して問い合わせます。ファイル固有のエラーはファイル API を参照してください。
再試行
402 は残高・予算・プロジェクト状態、401/403 は認証・権限を修正します。429 の Retry-After に従い、安全に再試行できる 5xx にだけ回数制限付きバックオフを使います。HTTP 200 後の SSE エラーでも停止して Trace を保持します。