LogoToRouterドキュメント
LogoToRouterドキュメント
ホームToRouter とは5 分で始めるコアコンセプト
よくある HTTP エラーレートリミット超過 — 対処法キーがブロックまたは失効した上流プロバイダエラーとフェイルオーバー本番運用ベストプラクティス
トラブルシューティング

レートリミット超過 — 対処法

ToRouter から 429 が返る原因は 3 種類あります。それぞれの見分け方と対処方法。

ToRouter が返す 429 Too Many Requests は 3 つの異なる原因で発生します。エラーボディを見ればどれかが分かります。

3 つの発生源

クライアント側:バックオフ付きリトライ

キー単位のレートリミットに対しては、バックオフしてリトライするのが最も低コストです。OpenAI と Anthropic の SDK は max_retries を設定すれば自動的に行います。生 HTTP の場合は自前で指数バックオフを実装します:

python
import time, random
from openai import OpenAI, RateLimitError

client = OpenAI(api_key="sk-***", base_url="https://portal.torouter.ai/v1")

def call_with_retry(**kwargs):
    for attempt in range(6):
        try:
            return client.chat.completions.create(**kwargs)
        except RateLimitError:
            time.sleep((2 ** attempt) + random.random())
    raise
node
async function callWithRetry(fn) {
  for (let attempt = 0; attempt < 6; attempt++) {
    try {
      return await fn();
    } catch (err) {
      if (err.status !== 429) throw err;
      await new Promise(r => setTimeout(r, (2 ** attempt) * 1000 + Math.random() * 1000));
    }
  }
  throw new Error('rate-limited after 6 retries');
}

API_KEY_QUOTA_EXHAUSTED や USAGE_LIMIT_EXCEEDED を リトライしてはいけません — 上限を引き上げるかウィンドウがリセットされるまで状態は固着します。リトライループでは終端エラーとして扱ってください。

恒久的な対処

  • キーの RPM/RPH/RPD を引き上げる — /keys で。アカウント所有者なら最速です。
  • 複数キーを使う — ファンアウトの大きいワークロードでクライアント側でロードバランシング。
  • チャージする — INSUFFICIENT_BALANCE(402)の場合。これは 429 ではありませんが関連します。

次のステップ

キー単位の上限

RPM、モデルホワイトリスト、IP ホワイトリスト、有効期限、支出上限を設定。

利用状況の詳細

壁にぶつかる前に消費を観察。

キーがブロック / 失効した

429 が 403/401 に変わるとき。

よくある HTTP エラー

ToRouter が返す 400 / 401 / 403 / 404 / 429 / 5xx レスポンスのクイックリファレンスと対処法。

キーがブロックまたは失効した

昨日まで動いていた ToRouter キーが急に使えなくなる原因と、復旧方法。

目次

3 つの発生源クライアント側:バックオフ付きリトライ恒久的な対処次のステップ