Skip to content

原文(日本語に翻訳)

ストリーミングが失敗したときのノンストリーミングフォールバックを無効にする CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK 環境変数を追加しました。

原文(英語)

Added CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK env var to disable the non-streaming fallback when streaming fails

概要

CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1 を設定すると、ストリーミング API が失敗した場合のノンストリーミングフォールバックを無効にできます。ストリーミングエラーをそのままエラーとして表面化させたい場合や、フォールバック動作によって問題がマスクされることを防ぎたい場合に有用です。

なお、2.1.83 ではノンストリーミングフォールバックのトークン上限が 21k → 64k、タイムアウトが 120s → 300s(ローカル)に引き上げられ、フォールバック時の切り詰めが起きにくくなっています。

基本的な使い方

bash
# ノンストリーミングフォールバックを無効化
export CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1
claude

または ~/.claude/settings.json で永続化:

json
{
  "env": {
    "CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK": "1"
  }
}

実践例

ストリーミングエラーのデバッグ

ストリーミングに問題がある場合にフォールバックを無効化して原因を特定:

bash
# フォールバックを無効にしてエラーを明確に表示
CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1 claude --print "テスト" 2>&1

フォールバックが有効だとストリーミングエラーが隠れてしまうため、デバッグ時はこの環境変数で無効化します。

ネットワーク品質の確認

ストリーミングが安定しているかを確認:

bash
# フォールバックなしでストリーミングのみ使用
CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1 claude
# ストリーミングエラーが発生すればネットワーク問題の可能性あり

CI/CD でのエラー明確化

CI パイプラインでエラーを明確にキャッチする:

yaml
- name: Claude Code でコード生成
  env:
    ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
    CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK: "1"
  run: |
    claude --print "コードを生成してください"
    # ストリーミングエラーが明示的に失敗として返る

注意点

  • フォールバックを無効にするとストリーミング障害時にエラーになります。安定した接続環境以外での常時無効化は推奨しません
  • 2.1.83 のフォールバック改善(64k トークン、300s タイムアウト)により、通常使用ではフォールバックは十分に機能します
  • デバッグ目的での一時的な使用が主なユースケースです
  • CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK を設定しない(デフォルト)とフォールバックが有効になります

関連情報