Skip to content

非ストリーミング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分のタイムアウト後、エラーメッセージが表示されてセッションが終了するか、リトライが行われます
  • 頻繁にフォールバックが発生する場合は、ネットワーク設定やプロキシ設定を確認してください

関連情報