非ストリーミングAPIフォールバックの改善:2分タイムアウトでセッションのハング防止
原文(日本語に翻訳)
非ストリーミングAPIフォールバックを、1試行あたり2分のタイムアウトで改善し、セッションが無期限にハングすることを防止
原文(英語)
Improved non-streaming API fallback with a 2-minute per-attempt timeout, preventing sessions from hanging indefinitely
概要
Claude Code 2.1.79では、非ストリーミングAPIへのフォールバック時の挙動が改善されました。以前はフォールバック中にセッションが無期限にハング(応答なし状態)する可能性がありましたが、今回の更新により1試行あたり2分のタイムアウトが設定されます。これにより、ネットワーク問題やAPIの一時的な不具合が発生した場合でも、セッションが永遠に待機状態になることを防ぎます。
基本的な使い方
この改善は自動的に適用されます。ユーザーによる設定変更は不要です。
非ストリーミングAPIフォールバックが発生するのは以下のような状況です:
- ストリーミングAPIへの接続が不安定な場合
- 特定のネットワーク環境(プロキシ、VPN等)でストリーミングが正常に機能しない場合
実践例
ネットワーク不安定環境でのClaude Code利用
これまでは不安定なネットワーク環境でClaude Codeを使う場合、セッションがハングした状態になりClaude Codeを強制終了する必要がありました。2.1.79以降は、2分のタイムアウト後に適切なエラー処理が行われます:
bash
# 不安定なネットワーク環境でも
claude "コードのレビューをお願いします"
# 接続失敗時: 2分後にタイムアウトして再試行または終了
# (以前: 無限待機でCtrl+Cで強制終了が必要だった)プロキシ環境での利用
bash
# 企業のプロキシ環境での設定例
export HTTPS_PROXY=http://proxy.company.com:8080
claude -p "タスクを実行してください"
# フォールバック発生時も2分でタイムアウトCI/CDパイプラインでの安定性向上
yaml
# GitHub Actionsなどでの利用例
- name: Claude Code実行
run: |
claude -p "テストを生成してください"
timeout-minutes: 10
# 以前: セッションハングでパイプライン全体がタイムアウトまで止まる
# 2.1.79以降: 2分でフォールバックタイムアウトするため、より予測可能な動作に注意点
- タイムアウトは「1試行あたり2分」です。複数回の再試行が行われる場合、合計待機時間はそれより長くなる可能性があります
- この改善はストリーミングAPIが利用可能な通常の環境では発動しません
- 2分のタイムアウト後、エラーメッセージが表示されてセッションが終了するか、リトライが行われます
- 頻繁にフォールバックが発生する場合は、ネットワーク設定やプロキシ設定を確認してください
関連情報
- Claude Code ドキュメント — 公式ドキュメント
- Claude API リファレンス — APIの詳細情報