OpenClaw 429エラーでフェイルオーバーしない問題:原因と完全修正ガイド2026
🚨 このような状況に心当たりがありますか?
Error: 429 Too Many Requests - Rate limit exceeded for claude-3-5-sonnet
Fallback model configured: gpt-4o
Warning: Failover not activated - session already in progress
フォールバックモデルを設定しているのに、429エラーが発生しても自動的に切り替わらない。これはGitHub Issue #19249・#17478で多数のユーザーが報告している既知のバグです。OpenClaw v1.x系に存在するフェイルオーバーの設計上の問題を、このガイドで完全に解説します。
目次
- フェイルオーバーが機能しない根本原因
- 429エラーとレート制限の基本を理解する
- フォールバックが機能するケース・しないケース
- auth-profiles.jsonの正しい設定方法
- セッション中の手動モデル切替で乗り越える
- Gatewayを再起動せずにフェイルオーバーを強制する
- 自動リカバリしない問題(PR #18045の内容)
- プロバイダ別の429エラー対処法
- OpenRouterを活用した高度なフェイルオーバー構成
- VPN環境での429エラー特有の問題と対策
フェイルオーバーが機能しない根本原因
OpenClawのフェイルオーバー(フォールバック)機能は、設計上の重大な制約を抱えています。多くのユーザーが「フォールバックモデルを設定しているのに切り替わらない」と報告していますが、これはバグというよりアーキテクチャ上の根本的な問題です。
OpenClawのフェイルオーバーメカニズムはセッション作成時にのみ機能する設計になっています。つまり、エージェントが起動して会話セッションが確立された後に429エラーが発生しても、実行中のセッションに対してモデルを動的に切り替えることはできません。
🔄 フェイルオーバーが機能しない構造
セッション開始時:OpenClawはauth-profiles.jsonを読み込み、フォールバックモデルリストを確認
このタイミングなら✅フェイルオーバーは機能する:起動時にプライマリが使えなければ、フォールバックに切り替わる
セッション稼働中(会話中)に429エラーが発生:この時点ではフェイルオーバーは❌機能しない
auth-profiles.jsonのfile-basedクールダウン設定は、実行中のセッションには反映されない → エラーが継続
429エラーとレート制限の基本を理解する
OpenClawで発生する429エラーは、接続先のAIプロバイダ(Anthropic、OpenAI、Googleなど)が設定したAPI呼び出し回数の上限に達した場合に返されるHTTPステータスコードです。OpenClaw自体の問題ではなく、各プロバイダのレート制限ポリシーに起因します。
🔴 Anthropic Claude
- 無料プラン:20万トークン/月
- Pro:100万トークン/月
- Max:最大1000万トークン/月
- 1分あたりの最大リクエスト数制限あり
- 429後の待機時間:60秒〜数時間
🔵 OpenAI GPT
- Tier 1:月$10以上の課金で上限緩和
- RPM(分あたりリクエスト)制限あり
- TPM(分あたりトークン)制限あり
- Retry-Afterヘッダーで待機時間を通知
- 429後:指数バックオフが有効
🟢 Google Gemini
- Free:1分15リクエスト
- Pay-as-you-go:より高い上限
- プロジェクト単位でレート管理
- RESOURCE_EXHAUSTEDエラーも同種
- 429後の待機:通常60秒
フォールバックが機能するケース・しないケース
✅ フォールバックが機能するケース
- 起動時にプライマリが応答しない:Gatewayがセッション開始前にチェック
- 新しいエージェントセッションの開始時:その時点でのモデル可用性を確認
- Gatewayを再起動した後:再起動で新しいセッションが始まるため
- cronジョブで定期的に再起動している場合:次のサイクルから適用
❌ フォールバックが機能しないケース
- セッション実行中に429が発生:最も頻繁に起きる問題
- 長時間会話の途中:コンテキストが積み上がった状態で発生
- heartbeatや自律タスク実行中:バックグラウンド処理の途中
- スキル実行中に発生:スキルのワークフロー内でエラーが起きる
auth-profiles.jsonの正しい設定方法
フォールバックが機能する起動時のタイミングを最大限に活用するには、auth-profiles.jsonを正しく設定することが重要です。多くのユーザーがこの設定を誤って理解しています。
{
"profiles": {
"primary": {
"provider": "anthropic",
"model": "claude-3-5-sonnet-20241022",
"apiKey": "sk-ant-...",
"fallbackOnRateLimit": true,
"rateLimitCooldown": 3600,
"fallbackProfile": "secondary"
},
"secondary": {
"provider": "openai",
"model": "gpt-4o",
"apiKey": "sk-proj-...",
"fallbackOnRateLimit": true,
"rateLimitCooldown": 1800,
"fallbackProfile": "tertiary"
},
"tertiary": {
"provider": "google",
"model": "gemini-2.0-flash",
"apiKey": "AIza...",
"fallbackOnRateLimit": false
}
},
"activeProfile": "primary",
"autoRecoveryEnabled": true,
"autoRecoveryCheckInterval": 300
}
⚠️ 重要な注意点:autoRecoveryEnabledの制限
上記のautoRecoveryEnabledをtrueにしても、現在実行中のセッションには反映されません。これはIssue #17478で報告されている問題で、次回のセッション開始時からのみ有効です。PR #18045で修正が提案されており、将来のバージョンでランタイム中の自動リカバリが実装される予定です。
セッション中の手動モデル切替で乗り越える
フェイルオーバーが自動で機能しない現状では、手動での対処が最も確実です。OpenClawのチャットインターフェース(Discord、Telegram、WhatsAppなど)から直接コマンドを送信してモデルを切り替えられます。
方法1:/modelコマンドで直接切替
# 429エラーが出たらすぐにチャットに送信 /model gpt-4o # またはプロファイル指定で切替 /model --profile secondary # 切り替え後に現在のモデルを確認 /status
このコマンドは現在のセッションに即時反映されます。ただし次のセッション開始時は元のモデルに戻ります。
方法2:プロファイルを一時的に変更する
# auth-profiles.jsonのactiveProfileを変更
# ターミナルから実行
python3 -c "
import json
with open('/Users/$(whoami)/.openclaw/auth-profiles.json', 'r') as f:
config = json.load(f)
config['activeProfile'] = 'secondary'
with open('/Users/$(whoami)/.openclaw/auth-profiles.json', 'w') as f:
json.dump(config, f, indent=2)
print('Profile switched to secondary')
"
# Gateway再起動で新しいプロファイルを適用
openclaw gateway --restart
Gateway再起動が必要ですが、確実にフォールバックモデルでセッションを再開できます。
方法3:CLIから直接切替コマンドを実行
# ターミナルからCLIコマンドで切替 openclaw models use gpt-4o --temp # 一時的な切替(セッション終了まで有効) openclaw models use claude-3-haiku --session-only # 現在のモデル使用状況を確認 openclaw models status
--tempオプションで一時的な切替、--session-onlyで現在のセッションのみに適用できます。
Gatewayを再起動せずにフェイルオーバーを強制する
Gateway再起動なしでフェイルオーバーを強制する方法として、OpenClawのhot-reload機能を活用します。この方法はコンテキスト(記憶・会話履歴)を保持したままモデルを切り替えられる利点があります。
# ステップ1:現在のモデルの状態を確認 openclaw models status # Output例: # Primary: claude-3-5-sonnet (RATE_LIMITED - 429, cooldown: 3547s remaining) # Secondary: gpt-4o (available) # ステップ2:クールダウンをスキップして強制切替 openclaw models failover --force --target secondary # ステップ3:現在のセッションにホットリロードを送信 openclaw gateway --signal SIGUSR1 # ステップ4:切替確認 openclaw models status # Output例: # Active: gpt-4o (secondary profile) # Primary: claude-3-5-sonnet (RATE_LIMITED - cooling down)
💡 SIGUSR1シグナルとは
OpenClaw GatewayはUnixシグナルSIGUSR1を受信すると設定ファイルをリロードします。これはGatewayプロセスを停止させずに設定変更を反映させる方法です。ただしWindowsではopenclaw gateway --reloadコマンドを使います。
自動リカバリしない問題(PR #18045の内容)
OpenClawには「一度フォールバックモデルに切り替わったら、プライマリモデルのレート制限が解除されても自動的に戻らない」という追加の問題があります(Issue #17478)。これはPR #18045で修正が実装中の既知バグです。
PR #18045が実装する自動リカバリの仕組み
フォールバック後はずっとフォールバックモデルを使い続ける(コスト増加の原因)
PR #18045適用後:設定した間隔(例:300秒ごと)でプライマリモデルの可用性を確認し、復旧していれば自動的に戻る
PR #18045がマージされるまでの回避策として、cronジョブで定期的にプライマリに切り戻すスクリプトを設定できます。
#!/bin/bash
# /usr/local/bin/openclaw-model-recovery.sh
PRIMARY_MODEL="claude-3-5-sonnet-20241022"
CHECK_URL="https://api.anthropic.com/v1/messages"
API_KEY="sk-ant-..."
# プライマリの可用性テスト
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" \
-X POST "$CHECK_URL" \
-H "x-api-key: $API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"'$PRIMARY_MODEL'","max_tokens":1,"messages":[{"role":"user","content":"hi"}]}')
if [ "$RESPONSE" = "200" ]; then
# プライマリが使える場合は切り戻す
openclaw models use $PRIMARY_MODEL --primary
echo "$(date): Recovered to primary model $PRIMARY_MODEL"
fi
# crontab設定:5分ごとに実行
# */5 * * * * /usr/local/bin/openclaw-model-recovery.sh >> /var/log/openclaw-recovery.log 2>&1
プロバイダ別の429エラー対処法
Anthropic Claude:指数バックオフ設定
# openclaw.json
{
"anthropic": {
"retryConfig": {
"maxRetries": 5,
"initialDelay": 1000,
"maxDelay": 60000,
"backoffMultiplier": 2.0,
"retryOn": [429, 529]
}
}
}
529はAnthropicの過負荷エラー。429と同様に扱う設定が推奨されます。
OpenAI GPT:Retry-Afterヘッダーを尊重する
# openclaw.json
{
"openai": {
"retryConfig": {
"maxRetries": 3,
"respectRetryAfterHeader": true,
"defaultRetryDelay": 30000
}
}
}
OpenAIはRetry-Afterヘッダーで待機時間を指示します。これを尊重することでBAN回避にもなります。
Google Gemini:プロジェクト別APIキーでレート分散
# 複数プロジェクトのAPIキーをローテーションする設定
{
"google": {
"apiKeys": ["AIza...key1", "AIza...key2", "AIza...key3"],
"keyRotationStrategy": "round-robin",
"keyRotationOnRateLimit": true
}
}
無料枠ユーザーは複数のGCPプロジェクトにAPIキーを作成しローテーションすることで実質的な上限を増やせます。
OpenRouterを活用した高度なフェイルオーバー構成
最も根本的な解決策は、OpenRouterをOpenClawの中間プロバイダとして使用することです。OpenRouter自体がレート制限に応じた自動ルーティング機能を持っているため、フェイルオーバーの責任をOpenRouterに委ねられます。
# auth-profiles.jsonにOpenRouterプロファイルを追加
{
"profiles": {
"openrouter-auto": {
"provider": "openrouter",
"model": "auto",
"apiKey": "sk-or-v1-...",
"openrouter": {
"fallback_models": [
"anthropic/claude-3-5-sonnet",
"openai/gpt-4o",
"google/gemini-2.0-flash"
],
"route": "fallback"
}
}
}
}
# OpenClawでの設定コマンド
openclaw models add openrouter-auto
openclaw models use openrouter-auto
🌐 OpenRouter利用の利点と注意点
✅ 利点
- 複数プロバイダへの自動ルーティング
- セッション中でもリアルタイム切替
- 1つのAPIキーで全モデルを管理
- モデル間の互換性変換を自動処理
⚠️ 注意点
- OpenRouter経由のコストは割高になる場合あり
- モデルIDの二重プレフィックス問題に注意(openrouter/openrouter/auto など)
- レスポンス速度がわずかに遅くなる
- OpenRouter自体のダウン時には全滅する
VPN環境での429エラー特有の問題と対策
VPNを使用してOpenClawを運用している場合、通常の429エラーとは異なる追加の問題が発生することがあります。特に海外のAI APIに接続する際、VPNのIPアドレスがレート制限を引き起こすケースが報告されています。
💡 VPN利用時の429エラー発生パターン
- IPシェアリング問題:同じVPNサーバーを使う複数ユーザーが同一IPからAPIを叩くため、1ユーザーの使用量が他ユーザーのレート制限に影響
- IP切替時の認証不整合:VPNがIPを変更した際にAPIキーとIPの対応がリセットされ、一時的に429が多発
- 地域制限によるブロック:一部APIプロバイダはVPN IPをレート制限ではなく直接ブロックすることがある
- 接続不安定による偽の429:遅いVPN経由でAPIがタイムアウトし、実際は429ではないエラーが429として記録される
VPN使用時の推奨設定
- 専用IP付きVPNを使用:共有IPではなく専用IPでAPIを叩くことでIPシェアリング問題を回避
- 1000Mbps以上の高速VPN:APIタイムアウトによる偽の429を防ぐ
- VPN接続中のAPI接続先を固定:VPN切替をOpenClaw稼働中に行わない
- スプリットトンネリング活用:OpenClawのAI API通信だけVPN経由にしてトラフィックを最適化
VPN07 - 429エラー防止に最適なVPN
OpenClawの安定運用に欠かせない1000Mbps千兆回線。70か国以上の拠点から専用IP接続が可能で、AI APIへの安定したアクセスを10年以上提供し続けています。
よくある質問
Q:フォールバックモデルを設定したのに全く切り替わりません。設定ミスですか?
A:設定ミスではなく仕様上の制限です。auth-profiles.jsonのフォールバック設定は「セッション開始時」にのみ機能します。稼働中のセッションで429が発生した場合は手動で/modelコマンドを使って切り替えてください。完全な自動切替はPR #18045実装後に対応予定です。
Q:フォールバックに切り替わった後、クロードの制限が解除されても戻りません。
A:これはIssue #17478で報告されている「自動リカバリなし」の問題です。現状は手動で/model claudeコマンドを実行するか、Gatewayを再起動する必要があります。本記事で紹介したcronスクリプトを使うと自動化できます。
Q:429エラーが1日に何度も出て困っています。根本的な解決策はありますか?
A:最も根本的な解決策はOpenRouterを中間層として使用することです。OpenRouter自体が複数プロバイダへの自動ルーティング機能を持っており、個々のプロバイダのレート制限をOpenRouter側で吸収してくれます。月$10程度のOpenRouter有料プランへのアップグレードも効果的です。
📌 429フェイルオーバー問題の対処優先順位
- 即時対処:/modelコマンドで手動切替
- 短期対策:auth-profiles.jsonでフォールバックチェーンを正しく設定
- 中期対策:OpenRouterを中間層として導入する
- 長期対策:PR #18045のマージを待ち、自動リカバリ機能を活用する
- 予防策:1000Mbps以上の安定VPNでAPI接続品質を確保
VPN07でOpenClawを安定運用
429エラーを最小化する1000Mbpsグローバル回線
OpenClawの429エラーを防ぐには、AI APIへの安定した高速接続が不可欠です。VPN07の1000Mbps千兆回線と70か国以上の拠点で、タイムアウトによる偽の429エラーをゼロにします。10年の実績、月額$1.5・30日間返金保証付き。