DISABLE_ERROR_REPORTINGでエラー報告を止める設定
Claude Codeの環境変数DISABLE_ERROR_REPORTINGは、内部エラーの送信先をオプトアウトします。既定でオンになる条件、DISABLE_TELEMETRYとの違い、設定のしかたをまとめます。
DISABLE_ERROR_REPORTING は、Claude Code自身の内部エラー(スタックトレース)をサードパーティのエラー追跡サービスへ送る動作をオプトアウトする環境変数です。対象は「送信するかどうか」だけで、コードや会話内容の扱いには関与しません。既定でオンになる条件、似た名前の変数との違い、そして値の指定で唯一注意が要る挙動を順にまとめます。
DISABLE_ERROR_REPORTINGは何を止めるか
Claude Codeは運用テレメトリを2種類送信します。ひとつはレイテンシーや成功率などの利用パターンを表す「メトリクス」、もうひとつはCLI自身が起こした内部エラーとスタックトレースを送る「エラー報告」です。DISABLE_ERROR_REPORTING が対象にするのは後者だけで、メトリクスの送信は止まりません。メトリクス側を止めたいときは DISABLE_TELEMETRY を使います。
エラー報告に含まれるのはClaude Code自身のクラッシュ・例外情報で、あなたが書いたコードやプロンプトの内容ではありません。送信前には既知のパターンのシークレット・ファイルパス・メールアドレスなどの個人情報がクライアント側で除去されてから、TLS経由でサードパーティのエラー追跡サービスに届きます。送信先のホスト名は browser-intake-us5-datadoghq.com で、プロキシやファイアウォールの許可リストにこの変数の存在も併記しておくと、後から見返したときに判断しやすくなります。
既定でオンになる条件
エラー報告は誰にでも常時オンというわけではありません。次の4条件をすべて満たすときだけ動作します。
- Claude ProまたはMaxのサブスクリプションでサインインしている
- Claude Code v2.1.198以降を使っている
- Claude APIへ直接接続している(プロキシ・LLMゲートウェイ経由ではない)
- 組織にゼロデータ保持またはHIPAA契約が無い
Amazon Bedrock・Google CloudのAgent Platform・Microsoft Foundry・Claude Platform on AWSを使っている場合、エラー報告は既定でオフです。有効化する設定項目も無く、DISABLE_ERROR_REPORTING を書く必要そのものがありません。サインイン済みのClaude apps gatewayセッションでも、ゲートウェイの認証情報自体がエラー報告を無効化しており、こちらも再有効化する設定はありません。
つまりこの変数が意味を持つのは、Claude APIに直接つなぐPro/Maxユーザーで、v2.1.198以降を使っている場合にほぼ限られます。API課金のTeam/Enterpriseプランや、そもそも上記の条件に当てはまらない環境では、変数を設定しても現状を変えないケースがあります。
設定のしかた
シェルの環境変数として渡すか、設定ファイルの env キーに書きます。
export DISABLE_ERROR_REPORTING=1
claudeチームや端末をまたいで固定したいときは、~/.claude/settings.json(自分だけ)や .claude/settings.json(プロジェクト全員、リポジトリにコミット)の env キーに書きます。
{
"env": {
"DISABLE_ERROR_REPORTING": "1"
}
}規制業種向けにゼロデータ保持やHIPAA契約を結んでいる組織はもともとエラー報告がオフなので、この変数は書かなくても同じ状態になります。書いておく実益があるのは、契約の有無にかかわらず「設定として明示しておきたい」場合や、Claude API直接接続でPro/Max・v2.1.198以降の条件に該当する場合です。
似た名前の変数との違い
エラー報告のオプトアウトには複数の入り口があり、対象範囲が少しずつ違います。
| 変数 | 止める対象 | フィーチャーフラグ取得への影響 |
|---|---|---|
DISABLE_ERROR_REPORTING | 止める対象エラー報告のみ | フィーチャーフラグ取得への影響影響なし |
DISABLE_TELEMETRY | 止める対象メトリクス + エラー報告 | フィーチャーフラグ取得への影響停止する(Remote Controlなどが使えなくなる) |
DO_NOT_TRACK | 止める対象DISABLE_TELEMETRY と同じ効果 | フィーチャーフラグ取得への影響停止する |
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC | 止める対象自動更新・テレメトリ・エラー報告・/feedback・リリースノート取得など非必須通信全般 | フィーチャーフラグ取得への影響停止する |
DISABLE_TELEMETRY や CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC を設定すると、Remote Controlが依存するフィーチャーフラグ取得も止まります。DISABLE_ERROR_REPORTING はここが唯一の例外で、エラー報告だけを止めてもフィーチャーフラグ取得は動き続けます。「エラー報告だけを個別に外したい、他の機能は普段どおり使いたい」という場面では、範囲が一致するのはこの変数だけです。
似た用途の /feedback コマンド(手動でセッションのやり取りを送る機能)は別の仕組みで、DISABLE_FEEDBACK_COMMAND が対象です。エラー報告は自動送信、/feedback は明示操作という違いがあるので、混同しないようにします。
ネットワーク制限環境での使い分け
社内ネットワークが外部通信を遮断している環境では、DISABLE_ERROR_REPORTING を設定する方法と、送信先ホスト browser-intake-us5-datadoghq.com をファイアウォールでブロックする方法の両方が選べます。どちらも結果としてエラー報告は届きませんが、性格が違います。
| 方法 | 向く場面 | 備考 |
|---|---|---|
DISABLE_ERROR_REPORTING を設定 | 向く場面全端末で確実に送信自体を止めたい | 備考Claude Code側が送信をそもそも行わない |
| ホストをファイアウォールで遮断 | 向く場面個別端末の設定を変えずに一括制御したい | 備考送信は試みられ、ネットワーク層で失敗する |
browser-intake-us5-datadoghq.com はオペレーショナルテレメトリ専用のホストで、CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC を設定するとメトリクス送信先の http-intake.logs.us5.datadoghq.com と合わせて両方が無効になります。プロキシ経由でClaude Codeを配布している場合の許可ドメイン設計はClaude Codeプロキシ設定にまとめています。
実際のコストや動作は変わらない
DISABLE_ERROR_REPORTING はあくまで送信の有無を切り替えるだけで、Claude Codeのエラー処理そのもの(リトライ・エラーメッセージの表示・セッションの継続可否)には影響しません。オフにしても、目の前で起きたエラーへの対処は普段どおり進められます。変わるのは、そのエラー情報がAnthropic側の追跡サービスに届くかどうかだけです。
設定ファイルとシェルが競合したときの優先順位
同じ変数がシェルと設定ファイルの両方で指定されていると、設定ファイル側の値が勝ちます。Claude Codeは起動時とファイル変更時に、env キーの内容をプロセスの環境変数へ書き込み直すため、シェルから継承した値は上書きされます。逆に設定ファイルからその行を削除しても、シェル側の値が自動で復活するわけではありません(削除は「未設定」を意味せず、次回起動時にシェルの値へ戻るだけです)。
設定ファイル間では、管理設定(組織の管理者が配布するもの)がユーザー設定・プロジェクト設定より優先されます。組織として一律にエラー報告を止めたい場合は管理設定に書くと、個々のユーザー設定で上書きされません。逆に、組織のポリシーとして消せない値を一時的に無効化したい場合は、env ブロックでその変数を空文字に設定すると「未設定」として扱われます(サブプロセスには空文字のまま渡ります)。
設定が効いているかを確認する
値が正しく渡っているかは、まずシェルで確認します。
echo $DISABLE_ERROR_REPORTING
claude --version空なら、export した端末とClaude Codeを起動した端末が別だった、あるいは設定ファイルの階層を勘違いしていた可能性があります。設定ファイル側に書いた場合は、Claude Codeのセッション内で /status を実行すると、管理設定が効いているかどうかも含めて確認できます。/doctor は設定ファイル自体の構文エラーや無効なエントリーを検出するので、env ブロックの記述ミスで反映されていないケースはここで見つかります。
/status
/doctorよくある質問
DISABLE_ERROR_REPORTINGを設定すると自分のコードも送られなくなりますか
もともと送られていません。エラー報告に含まれるのはClaude Code自身の内部エラーとスタックトレースで、ユーザーのコードやプロンプトの内容は対象外です。この変数は「送るかどうか」を切り替えるだけで、送信対象の範囲自体は変わりません。
Amazon Bedrock経由で使っていますが設定する意味はありますか
基本的にありません。Amazon Bedrock・Google CloudのAgent Platform・Microsoft Foundry・Claude Platform on AWSでは、エラー報告は既定でオフになっており、有効化する設定項目もありません。
元に戻したいときはどうしますか
値を 0 や false にしても止まったままです。シェルなら unset DISABLE_ERROR_REPORTING、設定ファイルなら該当行を削除して、変数そのものを未設定に戻します。設定ファイルから削除した場合、反映されるのは次回のClaude Code起動時です。
DISABLE_TELEMETRYだけ設定すればエラー報告も止まりますか
止まります。DISABLE_TELEMETRY はメトリクスとエラー報告の両方を対象にしています。ただしRemote Controlなどフィーチャーフラグ取得に依存する機能も一緒に止まるため、エラー報告だけを止めたい場合は DISABLE_ERROR_REPORTING のほうが影響範囲が狭く収まります。
まとめ
DISABLE_ERROR_REPORTING は、Claude Code自身の内部エラー報告だけをオプトアウトする環境変数です。対象はClaude Pro/Maxでサインインし、v2.1.198以降を直接API接続で使っている場合にほぼ限られ、Bedrock等のサードパーティ経由やゼロデータ保持契約下ではもとから既定オフです。0 や false を入れても無効化される点は他の多くの変数と挙動が逆なので、戻すときは変数自体を未設定にします。テレメトリ全般やフィーチャーフラグ取得まで含めて止めたい場合は DISABLE_TELEMETRY や CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC を使い分けます。環境変数全体の一覧と優先順位はClaude Code環境変数リファレンス、権限とセキュリティ設計の全体像はClaude Codeセキュリティ・権限ガイドにまとめています。