エラーとデバッグ
推論APIのエラーは、呼び出したAPIに合わせた形式で返ります。
どのエラーでも cache-control: no-store が付き、本文にモデル提供元の応答をそのまま載せることはありません。
形式
OpenAI互換のパスは次の形です。
{
"error": {
"message": "Invalid API key",
"type": "authentication_error",
"code": "invalid_api_key"
}
}Anthropic互換のパスは次の形です。
{
"type": "error",
"error": {
"type": "authentication_error",
"message": "Invalid API key"
}
}ボディの検証で止まったエラーは、Anthropic互換のパスでもOpenAI互換の形式で返り、type と code はどちらも bad_request になります。
JSONとして壊れたボディ、オブジェクトでないボディ、送信できないフィールド、キャッシュの非対応、max_tokens や n の不正値がこれにあたります。
クライアント側では両方の形を受け取れるようにしてください。
ステータスとcode
| ステータス | code | 内容 |
|---|---|---|
400 | bad_request | ボディの形式、送信できないフィールド、キャッシュの非対応、出力上限の不正値 |
400 | invalid_request | モデル提供元が受け付けなかったリクエスト |
400 | guardrail_blocked | プロンプトインジェクションのガードレールが拒否 |
400 | auto_resolution_failed | auto を指定したが実行できる候補がない |
401 | invalid_api_key | APIキーが不正、無効、または認証ヘッダーの重複 |
402 | insufficient_balance | 前払いのクレジット残高が不足 |
403 | account_inactive | 組織が利用できる状態ではない |
403 | project_inactive | プロジェクトが利用できる状態ではない |
403 | budget_guardrail_exceeded | 予算の上限を超えた |
403 | model_not_allowed | 許可モデルに含まれていない |
403 | auto_required | 自動選択が必須の設定 |
403 | permission_denied | モデル提供元がリクエストを許可しなかった |
404 | model_not_found | 指定したモデルが見つからない |
404 | not_found | 指定したリソースが見つからない |
413 | payload_too_large | ボディが10 MiBを超えた |
429 | rate_limit_exceeded | 認証試行、同時受付枠、RPM・TPM、プロバイダーのレート制限 |
500 | internal_error | 想定していない失敗 |
502 | upstream_error | モデル提供元から正しい応答を受け取れなかった |
503 | service_unavailable | 推論に必要な処理、BYOKの認証情報、価格情報のいずれかが利用できない |
402 はOpenAI互換では type が insufficient_quota、Anthropic互換では billing_error になります。
413 はAnthropic互換では type が invalid_request_error です。
429 には retry-after が付く場合があります。
再実行の目安
429 と 503 は時間をおいた再実行で解決する場合があります。
間隔を空けずに繰り返すと認証試行や同時受付枠の制限に触れるため、指数バックオフで間隔を広げてください。
400、401、402、403、404 は設定またはリクエストを直さない限り同じ結果になります。
ステータスから当たりをつける
| ステータス | まず確認すること |
|---|---|
400 | リクエストの形式と、指定したパラメーターがそのエンドポイントで受け付けられるか |
401 | APIキーが正しいか、無効化・再生成されていないか。認証ヘッダーを2つ以上送っていないか |
402 | 前払いのクレジット残高と、処理中のチャージ |
403 | 組織・プロジェクト・APIキーの状態と権限、許可モデル、予算の上限 |
404 | 指定したモデルIDが GET /v1/models の一覧にあるか |
413 | リクエストボディのサイズ |
429 | APIキーだけでなくプロジェクトと組織のRPM・TPM、プロバイダー側のレート制限 |
503 | 選択中のBYOK認証情報を確認し、問題がなければ時間をおいて再実行する |
設定が反映されないとき
エラーが返らないのに指定した設定が反映されない場合は、そのフィールドがエンドポイントの受け付ける一覧にあるかを確認してください。 一覧にないフィールドはエラーにならず読み飛ばされます。 受け付けるフィールドは、APIリファレンスのエンドポイントごとのページにあります。
モデル提供元の認証やルーティングを上書きするフィールドは、クライアントから送ると 400 が返ります。
認証情報とルーティングはロリポップ!AIゲートウェイが管理します。
送信できないフィールドの一覧は推論APIの概要にあります。