エラー応答形式
Chat Completions、Responses、Messages、Gemini は公開プロトコル境界であり、Web API ではありません。ネイティブプロトコルのエラーを Web の{ success, data, error } envelope で包みません。次は Chat と Responses における OpenAI 互換 gateway エラーの例です。
message と type があり、code、param、ヒント拡張は任意です。Messages と Gemini はそれぞれのネイティブエラー形式を使用します。安全に返せる upstream validation エラーは保持され、確定的な 400/422 で channel を切り替えず、最初の byte を配信した後は retry しません。
HTTP ステータスコード
エラータイプ
認証エラー (401)
支払いエラー (402)
アクセスエラー (403)
バリデーションエラー (400)
model_not_foundを返します。
レート制限エラー (429)
当該レート制限を超えた場合:Retry-Afterヘッダーとretry_afterフィールドは、いずれも再試行するまで待つ秒数を示します。
ペイロードが大きすぎる (413)
入力またはファイルサイズが制限を超えた場合:- 画像ファイルが大きすぎる(最大20MB)
- 音声ファイルが大きすぎる(最大25MB)
- 入力テキストがモデルのコンテキスト長を超えている
上流エラー (502, 503)
すべてのチャネルが失敗した場合、レスポンスには代替モデルが含まれます:
Pythonでのエラー処理
JavaScriptでのエラー処理
ベストプラクティス
指数バックオフを実装する
指数バックオフを実装する
レート制限にかかった場合、再試行の間隔を徐々に長くしてください:
タイムアウトを設定する
タイムアウトを設定する
ハングするリクエストを避けるために、常に適切なタイムアウトを設定してください:
デバッグのためにエラーをログする
デバッグのためにエラーをログする
サポートのためにリクエストIDを含む完全なエラー応答をログに記録してください:
モデル固有のエラーを処理する
モデル固有のエラーを処理する
一部のモデルには特定の要件(例:最大トークン数、画像フォーマット)があります。
リクエストを行う前に入力を検証してください。