AI APIエラー:401・403・429・5xx

認証、Access Policy、Rate Limit、Client Cancellation、Upstream Errorを層別に診断し、安全なRetryを判断します。

AI APIのHTTP Statusは調査の入口であり、原因の全体ではありません。Retry前にRequest ID、UTC時刻、Endpoint、Model、Key名、選択Group、構造化Error、Timingを保存し、Client、認証、Access Policy、Protocol、Routing、Model Backend、Downstream接続のどこで終わったかを切り分けます。

Status Codeの初期判断

Status 最初の見方 最初の対応
400 PayloadまたはProtocolが不正 修正し、同じ内容を再送しない
401 Keyがない、無効、停止、期限切れ Authorizationと現在のKeyを確認
403 Account、Model、Group、IPのPolicy Channelより先にKey制限を確認
404 PathまたはModel IDが違う Base URLと/v1/modelsを確認
429 Quota、Rate、Routeの制限 制限元を特定し有界Backoffを使う
499 Clientが完了前に切断 Deadline、Abort、Proxy、First Outputを確認
502/503/504 Upstream、可用性、時間予算の問題 証拠を保存し限定的にFallbackまたはRetry

Layerごとに診断する

401は通常Routing前に起きます。Authorization: Bearer ...、Keyの状態、Host、Deploymentに残る古いSecretを確認します。完全なKeyをLogやTicketへ貼らないでください。

403はProvider拒否の証明ではありません。Model Limit、IP Allowlist、Group権限、Account PolicyがChannel選択前に作用できます。同じKeyで/v1/modelsを取得し、正確なError Codeを見ます。

429ではKey、Account、Model Group、Routeのどこに制限があるかを確認します。Retry-Afterに従い、Jitter付き指数Backoffを使い、回数、総時間、Concurrencyを制限します。Keyを増やしてもAccount Limitを回避できるとは限りません。

499はDownstream接続が終了した記録です。Abort、Browser、CDN、Load Balancer、Proxyから確認し、最初の有効出力を比較します。1件だけでChannel障害とは判断できません。

Retryの判断

  • 不正Request、Key、Access:原因を修正し、同じ内容を再送しない。
  • Rate Limit:許可される場合のみ有界Backoff。
  • 一時的な502、503、504:安全に反復できる処理だけ厳しい予算でRetry。
  • Client Cancellation:結果がまだ必要で重複副作用がない場合のみ。
  • ToolやWrite:Application LevelのIdempotencyを先に用意する。

各試行は新しい処理とコストを生み得ます。共有してよい証拠はID、時刻、Endpoint、Streaming、Model、Group、Status、Error Code、Timingです。完全なKey、Prompt、Response、Body、Email、平文IPは通常のLogに含めません。原因特定後はRoutingガイドStreamingガイドを利用します。

レイヤーごとの確認事項

401の場合

Authorization: Bearer ...、余分な引用符や空白、キーの有効状態、デプロイに残った古いシークレットを確認します。通常はモデルルーティングより前に発生します。

403の場合

同じキーで許可モデル、IP許可リスト、グループアクセス、アカウントポリシーを確認します。チャネル選択前の拒否なら、プロバイダーを変えても解決しません。

429の場合

キー、アカウント、グループ、ルートのどこに制限があるか特定します。Retry-Afterに従い、揺らぎを加えた指数バックオフを使い、回数、総時間、同時実行数を制限します。

499の場合

クライアントから調べます。キャンセルシグナル、閉じたタブ、CDN、ロードバランサー、プロキシの期限を確認し、キャンセル時刻と最初の有効出力を比較します。単独の499はチャネル障害の証拠ではありません。

5xxを種類ごとに分ける

500は決定的なアダプター障害、502は無効または不完全な上流応答、503は一時的なルート不足、504は時間予算の超過を示すことがあります。元のステータスを保持し、安全な操作だけを厳しい上限付きで再試行してください。

安全に残せる診断情報

  • リクエストIDとUTC時刻。
  • エンドポイントとストリーミングモード。
  • 指定モデルと選択グループ。
  • HTTPステータスと構造化エラーコード。
  • 総時間と最初の有効出力までの時間。
  • クライアントがキャンセルしたかどうか。
  • ツールや画像など、機能を機密情報なしで表した説明。

明示的に承認された安全な手続きでない限り、完全なキー、プロンプト、応答、元のリクエスト本文、メールアドレス、平文IPは含めません。

よくある質問

403はプロバイダー停止の証拠ですか?

いいえ。アカウント、キー、モデル、グループ、IP、機能ポリシーが、プロバイダー選択前にリクエストを拒否できます。

499は一般的な上流モデルエラーですか?

いいえ。Modelflareの記録では、応答完了前に観測された下流側キャンセルを表します。

すべての5xxを再試行すべきですか?

いいえ。安全に繰り返せる処理だけを、回数と総時間を制限して再試行し、最初のエラーを残してください。