🎁 新規 無料登録、10回の呼び出しを進呈。最大 $1、カード不要。

トラブルシューティング

エラーの形は呼び出したプロトコルに一致します。 /v1/chat/completions および /v1/responses は OpenAI スタイルのエラーを返します。 /v1/messages は Anthropic スタイルのエラーを返します。HTTP ステータスコードは 3 つのプロトコルすべてで同一です。

エラーレスポンス形式

OpenAI 形式 (/v1/chat/completions, /v1/responses)

{
  "error": {
    "message": "Invalid API key",
    "type": "authentication_error",
    "code": "invalid_api_key"
  }
}

Anthropic 形式 (/v1/messages)

{
  "type": "error",
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key"
  }
}

401 · 認証に失敗しました authentication_error

{"error":{"message":"missing API key in Authorization header or X-API-Key","type":"authentication_error"}}

原因

  • Authorization: Bearer ヘッダー(または X-API-Key)がありません — メッセージ:missing API key in Authorization header or X-API-Key
  • キーが有効なキーのいずれにも一致しません — メッセージ:invalid API key
  • キーの有効期限が切れています — メッセージ:API key expired

対処

  1. Authorization: Bearer sk-syn-…(または X-API-Key: sk-syn-…)を送信します。
  2. キーがコンソールで有効になっており、完全にコピーされていることを確認します。

リトライ不可 — 認証情報を修正してください。

400 · 無効なリクエスト invalid_request

{"error":{"message":"model or models field is required","type":"invalid_request"}}

原因

  • model フィールドが欠落しているか、JSON ボディが空または不正な形式です。

対処

  1. model と正しい形式の JSON ボディを含めてください。Chat Completions リファレンスを参照してください。

リトライ不可 — リクエストを修正してください。

403 · クォータ枯渇 quota_exhausted

{"error":{"message":"API key quota exhausted","type":"quota_exhausted"}}

原因

  • キーまたはワークスペースのプリペイド残高を使い切りました。

対処

  1. ワークスペースの残高をチャージします。注意:残高を使い切ると Synthorai は 403 quota_exhausted を返し、429 ではありません — そのため指数バックオフは効果がなく、チャージのみで解除されます。

バックオフでのリトライは不可 — チャージしてください。

403 · コンプライアンス — データ共有なし compliance_blocked / compliance_no_data_share

{"error":{"type":"compliance_blocked","code":"compliance_no_data_share","message":"model 'MODEL' is unavailable: your workspace compliance setting disallows providers that retain/train on data"}}

原因

  • ワークスペースで no_provider_data_share が有効になっており、要求されたモデルはデータの保持/共有を必要とするプロバイダーからのみ提供されています(例:データ共有のみの Bedrock または Vertex モデル)。

対処

  1. リクエストをゼロ保持モデルにルーティングするか、そのワークロードでデータ共有が許容される場合はワークスペースのコンプライアンススイッチをオフにします。保持クラスはモデルごとのルーティング入力です — 30 日間のデータ保持の詳細を参照してください。

リトライ不可 — 一時的なエラーではなくポリシー上の判断です。

429 · レート制限 rate_limit_exceeded

{"error":{"message":"rate limit exceeded: max 60 requests per minute","type":"rate_limit_exceeded"}}

原因

  • 1 分あたりのリクエスト上限(RPM)を超えました。メッセージに正確な上限が示されます。

対処

  1. 指数バックオフ + ジッターでバックオフしてリトライします(下記スニペット)。継続的なスループットが必要な場合は上限の引き上げを申請してください。

リトライ可能 — バックオフしてリトライしてください。

502 · モデルに利用可能なチャネルがありません upstream_error

{"error":{"message":"no channels available for model \"MODEL\" in group \"default\"","type":"upstream_error"}}

原因

  • モデル id がワークスペースのルーティング可能なチャネルに一致しません — タイプミス、提供終了したモデル、またはプランでは到達できないモデルです。

対処

  1. 正確な id を最新のモデル一覧と照合してください。モデルが最近提供終了になった場合は、現行のモデルを選んでください。

そのままではリトライ不可 — モデル id を修正してください。

BYOK:上流プロバイダーのエラー

bring-your-own-key では、リクエストはあなたのプロバイダーアカウント(AWS Bedrock、Google Vertex AI、または Anthropic API)で実行されるため、Synthorai はプロバイダーの元のエラーをそのまま透過します — レスポンスには usage.is_byok: true が含まれます。修正はゲートウェイではなく、そのプロバイダーのコンソールまたは設定にあります。最も一般的なのはアカウント単位のモデルアクセスとデータ共有の設定です:

プロバイダーのエラー / 設定原因対処
model "…" is currently unavailableあなたの BYOK アカウントで、モデルが有効化されていない、提供終了した、または容量制限があります(例:Bedrock で一時的に提供終了した Claude Fable 5)。プロバイダーのコンソールでモデルアクセスを有効化するか(Bedrock → Model access、Vertex → Model Garden)、利用可能なモデルにルーティングします。
setPublisherModelConfig / dataSharingEnabledProvider: "anthropic" (Vertex AI)Google Vertex AI は、Anthropic のパートナーモデルをプロジェクト単位のデータ共有オプトインと Model Garden の利用規約への同意の後ろに置いています。setPublisherModelConfig を dataSharingEnabledProvider: "anthropic" で呼び出し、利用規約に同意します。Google の Vertex パートナーモデルのドキュメントを参照してください。
data_retention_mode: provider_data_share (AWS Bedrock)Bedrock は一部の Claude モデルをアカウント単位の明示的なデータ保持オプトインの後ろに置いており、それがないとモデルは利用不可と表示されます。アカウントで data_retention_mode: provider_data_share を設定します(必要に応じて bedrock:DataRetentionMode に対する SCP で固定します)。

上流プロバイダーのエラー

これらはモデルプロバイダーから、プロバイダー自身の HTTP ステータスと type を伴って透過されます。プロバイダー側を示すのは 500529 のみで、これら(および 429)は一時的なものとして扱いリトライし、4xx はリクエスト側を反映します。完全なリファレンス:Anthropic のエラードキュメント

ステータスタイプ意味
413request_too_largeリクエストボディがサイズ上限を超えています — ペイロードを減らしてください。
500api_error上流プロバイダーで内部エラーが発生しました — 一時的な問題です。バックオフしてリトライしてください。
529overloaded_error上流プロバイダーが一時的に過負荷になっています — 一時的な問題です。バックオフしてリトライしてください。

レート制限

レート制限は API key ごとに適用され、すべてのユーザー間で公平な利用を保証します。

デフォルトの制限

パラメータタイプ説明
RPMinteger1 分あたりのリクエスト数。デフォルト:key ごとに 60 RPM。
TPMinteger1 分あたりの token 数。デフォルト:key ごとに 100,000 TPM。
1 日あたりのクォータinteger1 日あたりの合計 token 数。管理者がユーザーごとに設定できます。

レート制限に達すると、次のレスポンスを受け取ります 429 レスポンスが返され、次のヘッダーが付きます Retry-After ヘッダーは待機時間を秒単位で示します。

実際のトークン単価に対してトークンスループットを見積もりますか?LLM API コスト計算ツールでワークロードを試算してください。

429 エラーの処理

import time
import openai

client = openai.OpenAI(base_url="https://synthorai.io/v1", api_key="YOUR_API_KEY")

for attempt in range(5):
    try:
        response = client.chat.completions.create(
            model="gpt-5.4-mini",
            messages=[{"role": "user", "content": "Hello"}]
        )
        break
    except openai.RateLimitError as e:
        wait = 2 ** attempt  # exponential backoff
        print(f"Rate limited. Retrying in {wait}s...")
        time.sleep(wait)

特定のモデルで 502 や過負荷が発生していますか?モデル価格比較からフォールバックを選んでください — すべてのルーティング可能なモデルとトークン単価が 1 つの表にまとまっています。