エラーコード一覧

HTTP ステータスコード

ステータスコード 意味 対処方法
200 リクエスト成功
400 リクエストパラメータエラー JSON フォーマットおよび必須パラメータの有無を確認してください
401 認証失敗 API キーが正しいか、有効期限切れや無効化されていないか確認してください
403 権限不足 このキーが対象モデルへのアクセスを許可されていない可能性があります
429 レートリミット超過 リクエスト頻度を下げるか、サポートに RPM 枠の引き上げをご相談ください
500 サーバーエラー リクエストを再試行してください。継続する場合はサポートチケットを送信してください
502/503 上流モデルサービスの異常 しばらくしてから再試行してください。別のモデルへの切り替えも可能です

エラーレスポンスのフォーマット

{
  "error": {
    "message": "Invalid API key provided: sk-nex-xxx...xxx.",
    "type": "authentication_error",
    "code": "invalid_api_key"
  }
}

よくあるエラーと解決方法

invalid_api_key

Invalid API key provided

原因: API キーが正しくないか、削除されています。

解決方法: コンソールでキーのステータスを確認し、完全なキーを再度コピーしてください。

model_not_found

Model 'xxx' not found

原因: モデル ID のスペルミス、またはそのモデルがお客様のプランで有効化されていません。

解決方法: モデル ID が正しいか確認してください(大文字・小文字を区別します)。/v1/models エンドポイントで完全なモデル一覧を取得できます。

rate_limit_exceeded

Rate limit exceeded

原因: リクエスト頻度が RPM(1分あたりのリクエスト数)の上限を超えました。

解決方法: リクエスト頻度を下げ、リクエスト間隔を広げてください。より高い上限が必要な場合はサポートにご連絡ください。

context_length_exceeded

This model's maximum context length is xxx tokens

原因: 入力と出力の合計トークン数がモデルの上限を超えました。

解決方法: 入力内容の長さを減らすか、max_tokens パラメータの値を下げてください。

リトライ戦略の推奨

429 および 5xx エラーには、エクスポネンシャルバックオフによるリトライを推奨します:

import time
import openai
 
def call_with_retry(client, max_retries=3, **kwargs):
    for attempt in range(max_retries):
        try:
            return client.chat.completions.create(**kwargs)
        except openai.RateLimitError:
            wait = 2 ** attempt
            print(f"Rate limited, waiting {wait}s...")
            time.sleep(wait)
        except openai.APIStatusError as e:
            if e.status_code >= 500:
                wait = 2 ** attempt
                time.sleep(wait)
            else:
                raise
    raise Exception("Max retries exceeded")