Skip to content

原文(日本語に翻訳)

APIが到達不能な場合に、非ストリーミングフォールバックリトライが数分間ハングする問題を修正しました。

原文(英語)

Fixed non-streaming fallback retries causing multi-minute hangs when the API is unreachable.

概要

Claude Code v2.1.110では、AnthropicのAPIが到達不能な状態(ネットワーク障害やサービスダウンなど)のとき、非ストリーミングフォールバックのリトライ処理が数分間ハングしてしまう問題が修正されました。以前はAPIに接続できない状況でもリトライを繰り返し、ユーザーが長時間待たされていましたが、今回の修正により適切なタイムアウトとエラーハンドリングが実装されました。

基本的な使い方

この修正はバグフィックスのため、v2.1.110へのアップデートで自動的に改善されます。

bash
# アップデート
npm update -g @anthropic-ai/claude-code

# 接続状態の確認
claude doctor

実践例

ユースケース1: ネットワーク障害時の動作確認

// 修正前の動作(APIが到達不能な場合)
$ claude "コードをレビューして"
[応答なし... 1分経過]
[応答なし... 2分経過]
[応答なし... 数分後にやっとエラー]

// 修正後の動作
$ claude "コードをレビューして"
エラー: APIに接続できません。ネットワーク接続を確認してください。
(数秒〜十数秒以内にエラーが返る)

ユースケース2: API障害時のフォールバック動作

ストリーミングAPIが利用できない場合の非ストリーミングフォールバック。

bash
# 環境変数でストリーミングを制御
CLAUDE_STREAMING=false claude "質問に答えて"

v2.1.110以降、フォールバックリトライが失敗した場合も素早くエラーが返るようになります。

ユースケース3: タイムアウト設定のカスタマイズ

bash
# 接続タイムアウトの設定(環境変数)
export ANTHROPIC_TIMEOUT=10000  # 10秒でタイムアウト
claude "処理を実行して"

ユースケース4: オフライン環境でのテスト

bash
# ネットワークを切断した状態でのテスト(開発・デバッグ用)
# v2.1.110以降はすぐにエラーが返るため、スクリプトでのエラーハンドリングが容易に

claude "テスト実行" || echo "APIに接続できません。後でリトライしてください。"

ユースケース5: CI/CDパイプラインでの利用

yaml
# GitHub Actions でのClaude Code利用例
- name: コードレビュー
  run: |
    timeout 60 claude "このPRをレビューして" || {
      echo "Claude Code API接続エラー: スキップして続行"
      exit 0
    }

v2.1.110以降はAPI障害時に素早くタイムアウトするため、CIパイプラインが長時間ブロックされなくなります。

注意点

  • 影響のあるシナリオ — APIが完全に到達不能な場合(ネットワーク障害、サービスダウン)に影響します。通常の遅延やレート制限は別のメカニズムで処理されます。
  • リトライ間隔 — リトライは行われますが、適切な間隔とタイムアウトが設定されるようになりました。
  • エラーメッセージ — 接続エラー時のエラーメッセージがより明確になりました。
  • プロキシ環境 — 企業のプロキシ環境では、プロキシの設定を確認してください。適切な設定がないと接続エラーが発生します。
  • ANTHROPIC_BASE_URL — カスタムのAPIエンドポイントを設定している場合、そのエンドポイントが正しく動作しているか確認してください。

関連情報