エラー一覧
Claude Code が実行中に出すエラーを、サーバー・利用上限・認証・ネットワーク・リクエスト・コマンドラインなど分類ごとに、文言・原因・対処で引けるエラー一覧です。
Claude Code が実行中に表示するエラーの文言と、その意味・対処を分類別にまとめた一覧です。モデルの応答は Claude API を呼んで得るため、多くのエラーは API のエラーコードに対応します。インストール時の command not found や TLS の失敗は インストールとログイン を見てください。ラッパーと IDE のエラー(起動したプログラムが出すもの)を除き、ここの内容は CLI・デスクトップアプリ・クラウド(Web) に共通です(3つとも同じ Claude Code CLI を包んでいるため)。
- 一時的な失敗は、エラーを見せる前に Claude Code が自動で再試行します(最初の節)
- 文言が分かっていれば、その分類の表から探せます。分類の順は、サーバー・利用上限・認証・ネットワーク・リクエスト・インストール・コマンドライン・プラグイン・ツール・バックグラウンドセッション・ラッパーと IDE・巻き戻し・セッション保存・設定の警告です
- 原因が分からないときは、
/statusで有効な認証情報を、/doctorで環境の点検を確かめます。応答の質が落ちたと感じるときは末尾の節を見ます - 出力のうち
<model>や<tool>のような山括弧の部分は、実際の名前に置き換わって表示されます
自動の再試行#
Claude Code は、一時的な失敗を、指数バックオフで最大10回再試行してから、エラーを表示します。応答の途中で起きた失敗は、いつも再試行するわけではありません。このページのエラーが表示された時点で、その失敗に当てはまる再試行はもう済んでいます。
再試行するもの:
- 応答がまだ流れ始める前に届いた、サーバーエラー・過負荷の応答・リクエストのタイムアウト
- 切断された接続。Claude が応答の一部(思考を含む)を完了する前に切れたら、同じバックオフでリクエストを出し直し、ターンは続く。思考を終えたあと、テキストやツール呼び出しの前に切れたら、短い間隔で最大2回出し直す
- コンピューターのスリープでリクエストの途中が切れたと検出された接続。再試行の表示に理由が出ると
Connection lost while your computer was asleepと読め、思考のあと、テキストやツール呼び出しの前でターンが終わるとYour computer went to sleep before a response was producedと出る - 思考を終えたあと、テキストやツール呼び出しの前に接続が切れる、または応答が止まったままだと、ターンは
Connection lost before a response was producedやThe response stalled before a response was producedで終わる(v2.1.227 より前は、それぞれConnection closed while thinking, before producing a responseとResponse stalled while thinking, before producing a response) - 思考を終えたあと、テキストやツール呼び出しを始める前に届いた、サーバーエラーや過負荷の応答。最大2回再試行する(v2.1.284 より前は、そこでエラーを出してターンを終えていた)
- 止まった応答のストリーム(ヘッダーは届いたが応答が届かない、または思考は終えたがテキストもツール呼び出しも始まらない)。止まった接続を中断して、上の10回の枠とは別に、最大1回だけ出し直す。思考を終えたあとに2回目も止まると、ターンを終える
- 最初のバイトの期限を迎えたまま、ヘッダーが一度も返らないストリーミングのリクエスト。期限で中断して、1回のモデルリクエストにつき最大1回出し直し、それでも返らなければ「No response from API」でターンを終える
- 一時的な 429 のスロットル(ゲートウェイの利用額の上限の
429は、スロットルではないので対象外)。claude.ai のサブスクリプションでサインインしているときは、プランのクォータのヘッダーを持たない 429 も対象。v2.1.199 より前は、API キーと Enterprise のサインインだけが再試行された - 入力と
max_tokensの合計が文脈の上限を超えたために拒否されたリクエスト。同じ形での再送は同じように失敗するので、max_tokensを減らして再試行する。減らす余地がないとき(会話そのものが文脈ウィンドウをほぼ埋めている)や、これ以上減らせないときは、再試行をやめて圧縮する - Google Cloud の Agent Platform での、期限切れや不足している認証情報、または手元で読み込めない AWS の認証情報。キャッシュした認証情報を捨てて最大2回再試行し、そのあとすぐ再認証できるようにエラーを出す
- Anthropic の API から、直接または LLM ゲートウェイ経由で返った
401や403(apiKeyHelperのスクリプトが認証情報を供給しているとき)。スクリプトを再実行し、新しい出力で、再試行の枠の全体の中で再試行する
再試行しないもの:
- TLS 証明書の検証の失敗(TLS を検査するプロキシ・
NODE_EXTRA_CA_CERTSのバンドルの欠落・期限切れの証明書など)。最初の試行でエラーを出す - Claude がテキストやツール呼び出しのブロックを完了したあと(または思考のあとにそれらを始めたあと)、応答を終える前に届いた、サーバーエラー・切断・止まったストリーム。同じツール呼び出しを2回実行しかねないので、再実行しない。Claude が完了したぶんは残す
- Claude が応答を終えたあとに届いた失敗。再試行は不要なので、完全な応答を残して普通にターンを終える
- Amazon Bedrock のストリーミング応答で、content-type が想定外のもの(ゲートウェイやプロキシが書き換えているなら、再試行も同じように書き換えられるため。v2.1.208 以降)
- ストリーミングのリクエストの失敗後の、非ストリーミングでの再試行が、成功の状態なのに本文に Claude API のメッセージが無い場合。そのエラーでターンを終える
- 組織のポリシーの確認が拒否したリクエスト。
API Error:の行に拒否のメッセージが付いて表示される(管理者が Claude Enterprise の機能の inference hooks で設定した確認) - API の出力コンテンツフィルターがブロックした応答。「Output blocked by content filtering policy」をすぐ表示し、そのリクエストを再試行も再送もしない
再試行や待機中の表示#
再試行中は、エラーのラベルのあとに Retrying in Ns · attempt x/y のカウントダウンが出ます。すぐ対処できる失敗(ネットワークの切断・TLS のハンドシェイクの失敗・レート制限)では、最初の試行から具体的な理由がラベルに出ます。それ以外のエラーは、最初は API error と表示されます。v2.1.198 以降は、再試行中、通常のスピナーのヒントは出ません。理由が出たあと、529 の過負荷なら、カウントダウンの下の行に、状態を見る場所が出ます(Anthropic の API なら status.claude.com、それ以外ならメッセージに出るプロバイダーかゲートウェイのホスト)。
- リクエストが保留のまま、応答のストリームにデータが20秒届かないと、再試行が始まる前に
Waiting for API response · will retry in … · check your networkと出ます。まだ失敗ではなく、カウントダウンは、止まった接続を中断する時点まで進みます。v2.1.185 より前は、10秒後に別の文言で出ていました - データが再開するか再試行が成功すると、この表示は自然に消えます。再試行のたびに出るなら、ネットワークの問題として扱います(下の「ネットワークと接続のエラー」)
- アドバイザーに相談しているあいだは、長いレビューで20秒を超えて何も届かないことがあるため、バナーは20秒でなく90秒後に出ます(v2.1.214 より前は、アドバイザーの呼び出し中も20秒でした)
- Claude が応答のブロックを完了する前なら、再試行するかエラーでターンを終えます。ブロックを完了したあと応答を終える前なら、完了したぶんを残して、終えたツール呼び出しからターンを続け、「The response above may be incomplete」を出します。応答を終えたあとなら、普通にターンを終えます
再試行の調整#
| 環境変数 | 既定 | 効果 |
|---|---|---|
CLAUDE_CODE_MAX_RETRIES |
10 | 再試行の回数。v2.1.186 以降は 15 が上限で、v2.1.199 以降は CLAUDE_CODE_RETRY_WATCHDOG が既定を引き上げて上限をなくす。スクリプトで失敗を早く出すには下げる |
CLAUDE_CODE_RETRY_WATCHDOG |
未設定 | CI のような無人のセッションで 1 にすると、429 と 529 の容量のエラーを、CLAUDE_CODE_MAX_RETRIES の回数で失敗せず無期限に再試行する。標準速度のリクエストが、利用額の上限や枯渇を報告する 429 を受けたときは、すぐ失敗する |
API_TIMEOUT_MS |
600000 | リクエストごとのタイムアウト(ミリ秒)。遅いネットワークやプロキシなら上げる。応答ヘッダーを待つ上限にもなる(「No response from API」を見る) |
CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS |
未設定 | ストリーミングのリクエストの最初の応答バイトの期限(ミリ秒)。v2.1.242 以降。未設定のときの決まり方は「No response from API」を見る |
CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES |
未設定 | タイムアウトした非ストリーミングのリクエストの再送の上限。上限に達すると失敗する。Claude の応答の生成がタイムアウトより長いと再送のたびに同じくタイムアウトするので、早く失敗させるには 0 のような低い値にする。非ストリーミングの1回の試行は、ローカルのセッションでは300秒、API_TIMEOUT_MS に正の値を設定していればその時間でタイムアウトする。v2.1.285 以降 |
環境変数は 環境変数一覧、ネットワークの待ち時間の仕組みは ネットワークと LLM ゲートウェイ を見てください。
サーバーのエラー#
これらの多くは、推論のプロバイダー(Anthropic API では Anthropic のサービス、Amazon Bedrock・Google Cloud の Agent Platform・Microsoft Foundry・独自のゲートウェイでは、そのエンドポイントの裏のサービス)が出すものです。
| 文言 | 意味 | 対処 |
|---|---|---|
API Error: 500 Internal server error. This is a server-side issue, usually temporary — try again in a moment. If it persists, check https://status.claude.com. |
API 側の想定外の失敗(5xx)。プロンプト・設定・アカウントのせいではない。文末の案内は、プロバイダーごとに違う。プロキシやロードバランサーが HTML のエラーページを返すと、API Error: 502 Bad Gateway のようにステータスコードとページの題が出る(題のないページは標準の名前)。v2.1.281 より前は、題のあるページではステータスコードが落ちていた |
status.claude.com か、メッセージの示すプロバイダーの状況ページで障害を確認し、1分ほど待ってからもう一度送る(元のメッセージは会話に残っており、長いプロンプトは try again と打てばよい)。障害の告知なしに続くなら /feedback で報告する |
API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary. Try again in a moment. If it persists, check https://status.claude.com. |
API が全ユーザーを通して一時的に容量の上限。Claude Code は表示の前に何度か再試行済み。利用上限ではなく、クォータにも数えられない | 状況ページで容量の告知を確認し、数分後に再試行する。容量はモデルごとに追跡されるので、/model で別のモデルに切り替える。1つのモデルの負荷が高いと Opus is experiencing high load, please use /model to switch to Sonnet と案内する(Fable のモデルでは Fable の名前が出る)。デスクトップアプリの Code タブや Cowork では Opus is experiencing high load. Switch to Sonnet. と出て、アプリのモデル選択で切り替える |
Request timed out |
接続の期限までに API が応答しなかった。高負荷のときや、非常に大きな応答を生成しているときに起きる。既定のタイムアウトは10分 | 再試行する。遅いネットワークやプロキシが原因なら API_TIMEOUT_MS を上げる。ネットワークが正常なのに頻発するなら、ネットワークと接続のエラーを見る |
API Error: No response from API (waited 3m, then 10m on the retry). If a proxy or gateway on your network holds responses until they complete, raise API_TIMEOUT_MS or CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS to wait longer. |
ストリーミングのリクエストに対し、最初のバイトの期限内に応答ヘッダーが返らず、API_TIMEOUT_MS(既定10分)の全体を待たずに中断した。再試行の枠が許せば最大1回出し直す。初回は CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS(1以上なら10秒〜30分に丸める)、未設定なら Claude Code のバイト単位の監視のタイムアウトで待つ。再試行は API_TIMEOUT_MS より1秒短い時間。Bedrock の再試行は、初回と同じ期限で、メッセージの時間も1つになる。API_TIMEOUT_MS が11秒未満の正の値なら、期限を無効にする。v2.1.242 より前は 10 分待ち、v2.1.261 より前は再試行も初回と同じ期限で、時間の表示がなかった |
メッセージをもう一度送る。繰り返すなら、ネットワークかプロキシの問題として扱う。プロキシやゲートウェイが応答の完了まで保持するなら、API_TIMEOUT_MS を上げる(Bedrock では CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS も)。初回が時間切れを繰り返し再試行で成功するなら、CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS を上げる |
API Error: Server error mid-response. The response above may be incomplete. ほか6種(下の表) |
ストリーミング中の失敗。Claude がテキストやツール呼び出しのブロックを完了したあとに起きた。再送すると同じツール呼び出しを2回実行しかねないので、完了したぶんを残して、この通知を足す | 下の説明を見る |
<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again. |
auto モードが操作を分類するモデルが、判断を出せなかった。作業ディレクトリ内の読み取り・検索・編集は、分類を通らないので動き続ける。原因の種類が分かるときは temporarily unavailable の後ろの括弧に出る:(rate-limited)・(overloaded)・(server error)・(timed out) など。種類が合わない、または複数の失敗があるときは括弧なし。Amazon Bedrock(Mantle エンドポイントを含む)では、AWS アカウントがメッセージの示すモデルを呼び出せないときも出る |
数秒後に再試行する(Claude も同じメッセージを見て、たいてい自分で再試行する)。一時的な失敗は auto モードの対象かどうかとは無関係で、設定を変える必要はない。再試行が続くなら、読み取り専用の作業を続けて、止まった操作はあとで戻る。Bedrock で毎回出るなら、アカウントがそのモデルを呼び出せるか確認する(標準モデルは IAM のポリシー、Mantle のモデル ID は AWS のアカウントチームへ) |
Auto mode could not evaluate this action and is blocking it for safety — run with --debug for details |
分類器が、解析できない応答を返した | 操作を再試行する(たいてい次で成功する)。claude --debug で操作を繰り返し、デバッグログで詳細を見る |
Auto mode could not evaluate this action and is blocking it for safety — a safety check separate from auto mode blocked this request because of earlier conversation content — it isn't about the action itself — run with --debug for details |
auto モードが会話を分類器へ送ったとき、会話の以前の内容が API の安全フィルターに引っかかった。操作自体の判断ではなく、Claude には「危険という判断ではない」「再試行せず別の作業を続ける」と伝える。auto モードの一時停止のしきい値には数えない。-p で --input-format stream-json なしの実行のバックグラウンドのサブエージェントには、Agent aborted: auto mode classifier request refused by the safety safeguard in headless mode を含むエラーを返す。それ以外は拒否を Claude に返す。v2.1.225 より前は、しきい値に数え、本物の分類器の拒否と同じメッセージだった |
再試行しても、同じ会話内容が同じフィルターを起こすので意味がない。対話のセッションでは、別の権限モードに切り替えて、確認が出たときに自分で承認する。引き金の内容を含まない新しい会話を始める |
Auto mode classifier transcript exceeded context window — falling back to manual approval (try /compact to reduce conversation size) |
会話が、分類器の文脈ウィンドウより大きくなった。対話のセッションでは、その操作を通常の権限の確認に切り替える。-p で --input-format stream-json なしの実行のバックグラウンドのサブエージェントには、Agent aborted: auto mode classifier transcript exceeded context window を含むエラーの結果を返す。--permission-prompt-tool のない -p の実行のそれ以外では、確認先がないので操作は実行されず、実行は続く |
対話のセッションでは、出た確認で承認か拒否を選ぶ。/compact で会話を小さくして、以降の操作が分類器のウィンドウに収まるようにする |
The server-side auto mode classifier gave no verdict (timed out), so auto mode cannot determine the safety of <tool>. |
サーバー側の分類器のレビューで、サーバーが判定を返さなかったため、auto モードがその操作を拒否した。原因の種類が分かるときは括弧に出る(timed out など)。メッセージの残りに、1回の再試行が有効かが書かれる。一部の拒否の前には待機が入り、対話のセッションではスピナーに Auto mode check unavailable とカウントダウンが出て、Esc で中断できる。v2.1.280 より前は、判定のない応答ごとに即座に拒否し、ターンを止めなかった |
Claude に再試行させる(メッセージを送ると回数が初期化される)。繰り返すなら、LLM ゲートウェイやプロキシがストリーミング応答を途中で切る・書き換えていないか確認する。CLAUDE_CODE_AUTO_MODE_SERVER=0 を設定して起動し、Claude Code 自身の分類器のリクエストを使わせる(v2.1.281 より前は、Anthropic API への直接の接続では読まれない)。自分で承認するなら、auto モードから切り替える |
Auto mode is unavailable — the server returned no safety verdict for the last 10 responses, so Claude stopped. Send a message to try again, or switch out of auto mode. |
判定のない応答が10回続いたので、auto モードがターンを止めた。対話のセッションでは警告として表示され、ターンが終わる。-p の実行では、実行が終わって実行エラーを報告し、既定のテキスト出力では標準エラーに出る。サブエージェントが上限に当たると、完成前に止まり、Claude は出たぶんと「auto モードが止めた」という注記を受け取る |
メッセージを送って、Claude にもう一度試させる(数え直しになる) |
Agent terminated early due to an API error: <error detail> |
サブエージェントの API リクエストが、利用上限や、サーバーエラーの再試行切れなどで最終的に失敗し、タスクの完了前に止まった(v2.1.199 以降)。すでにテキストを出力した前面のサブエージェントが、レート制限・過負荷・サーバーエラーで中断されたときは、このエラーでなく、不完全な印の付いた途中の出力が Claude に渡る | コロンのあとの詳細を、このページの該当する節に当てて、その手順に従う。原因が解消したら、Claude にタスクを再試行させるか、サブエージェントを再開する(サブエージェント) |
「The response above may be incomplete」の種類#
| 表示 | 意味 |
|---|---|
API Error: Server error mid-response. The response above may be incomplete. |
ストリームの途中での、過負荷か 5xx のサーバーエラー(v2.1.199 以降。それ以前は、途中の出力を捨てて、ターン全体をエラーにしていた) |
API Error: Connection lost mid-response. The response above may be incomplete. |
接続が切れた。プロキシやゲートウェイが、応答の完了前に本文をきれいに閉じたときにも出る(v2.1.227 より前は Connection closed mid-response) |
API Error: Your computer went to sleep mid-response. The response above may be incomplete. |
応答の受信中にコンピューターがスリープしたと検出された。復帰すると、接続を壊れたものとして扱い、読むのをやめる |
API Error: The response stopped arriving. The response above may be incomplete. |
接続は開いたままデータが来なくなり、ストリームのアイドル監視が中断した(v2.1.227 より前は Response stalled mid-stream。v2.1.222 より前は、サーバーの keep-alive が続くゲートウェイでも出ることがあった) |
API Error: Part of the response never arrived. The response above may be incomplete. |
API と Claude Code の間でストリームのイベントが落ち、後のイベントが届いていない内容を参照した(v2.1.281 より前は API Error: Content block not found でターンが終わった) |
API Error: The response stream was malformed. The response above may be incomplete. |
すでに終わったブロックへのイベントが来た、またはイベントが壊れていた(データが有効な JSON でない・内容が欠けている・内容がイベントの種類と合わない)。v2.1.284 より前は、パーサーの生のエラーが出た |
- Claude がテキストやツール呼び出しを始める前に、イベントが落ちる・重複する・壊れたときは、この通知は出ません。思考だけを完了していたなら、Claude Code がリクエストを出し直し、同じ壊れ方が続くと
Part of the response never arrived and no response was produced. Try again.かThe response stream was malformed and no response was produced. Try again.でターンを終えます。何も完了していなければ、ストリーミングなしで再送します(CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACKでそれを無効にしていると、落ちたイベントはAPI Error: Content block not found、重複したイベントはAPI Error: Content block already closedで終わります) - 非対話のセッション(
-p・Agent SDK・クラウドセッション)では、途切れた応答がメインの会話にあり、テキストを含むがツール呼び出しを含まないとき、continueを自分で送る必要はありません。サブエージェントでも、途切れた応答がテキストを含みツール呼び出しを含まないなら、Claude Code が続けるよう促し、その回数を使い切ってから、この通知がサブエージェントの最後のメッセージになります - 対処(対話のセッション):画面に残った応答を読みます(完了したブロックはすべて残り、中断した最後のブロックはターンの終了時に捨てられるので、最後の文やツール呼び出しが無いことがあります)。
continueと返すと、完了した最後のブロックから Claude が続けます - 対処(
-p):既定のテキスト出力では、ターンの早い時点から保持している、完了した最後のテキストブロックを出力して、そのあとにこのメッセージを出します(何も保持していなければ、メッセージだけ。たとえばターンの途中で圧縮して、そのテキストを消した場合)。--output-format jsonかstream-jsonでは、resultフィールドに報告されます。接続が安定したら、セッションを再開してcontinueを送ります(ヘッドレス実行(-p))
利用上限のエラー#
この節のほとんどは、アカウントやプランに結びついたクォータに達したという意味です。ただし「Server is temporarily limiting requests」はプランのクォータと無関係なサーバー側のスロットルで、「Usage credits required for 1M context」は利用額の枯渇でなく権利の確認です。
| 文言 | 意味 | 対処 |
|---|---|---|
You've hit your session limit · resets 3:45pm / You've hit your weekly limit · resets Mon 12:00am / You've hit your Opus limit · resets 3:45pm / You've hit your Sonnet limit · resets 3:45pm |
サブスクリプションの、ローリングの利用枠が尽きた。表示された時刻まで、Claude Code はリクエストを止める。セッションと週次の上限は全モデルで共有されるので、モデルを替えても戻らない。Opus と Sonnet の上限は、そのモデル系統だけに適用される。claude.ai のサブスクリプションでサインインした対話のセッションでは、開いたまま待って、リセットの直後に中断したタスクを続けられる。使用量はセッションと週次の枠に同時に数えられ、大きなワークフローの展開のような集中した使い方で、セッションの枠のリセット前に週次の枠を使い切ることがある | 表示されたリセット時刻まで待つ。デスクトップアプリの Code タブでは、セッション上限のカードに「Auto-continue when limits reset」のチェックボックスがあり(週次上限のカードにはない)、有効にするとリセットのあとに、中断したターンを再試行して、再試行の時刻をカードに出す。Opus や Sonnet の上限では、/model でその系統以外のモデルへ切り替えて続ける(モデルごとに prompt cache が別なので、次のリクエストは会話全体を、キャッシュなしで読み直す)。/usage でプランの上限とリセットの時刻を見る。/usage-credits で、Pro と Max では追加の利用分を購入し、Team と Enterprise では管理者に依頼する。基本の上限を上げるにはプランを上げる。上限の前に You've used 85% of your session limit · resets 3:45pm のような警告が出ることがある。残りを継続的に見るには、カスタムのステータスラインに rate_limits のフィールドを足す(ステータスライン) |
API Error: Usage credits required for 1M context · run /usage-credits to turn them on (they take effect after you restart Claude Code), or /model to switch to standard context |
選んだモデルが 1M トークンの拡張文脈ウィンドウを使い、プランがそれを usage credits でだけ含んでいる。権利の確認で、セッションと週次の枠に余裕があっても起きる。デスクトップアプリが動かすセッションでは、コマンドを示さず、claude.ai の利用設定のページを指す(Team と Enterprise では、claude.ai/admin-settings/usage で usage credits をオンにするか、管理者に頼むと書く)。会話の途中で、文脈が 200K トークンを超えて出たときは、Claude Code が標準の文脈の上限へ自動で圧縮し、以降はその上限に保つので対処は不要(v2.1.172 より前は、増え続けるたびにエラーが繰り返された)。v2.1.268 より前は、再起動に触れていなかった | /model で [1m] の付かない変種を選び、標準の文脈ウィンドウに戻す。メッセージが /usage-credits を示すなら、それを実行し、Pro と Max では 1M の変種の従量課金をオンに、Team と Enterprise では管理者に依頼する。オンにしたあとは、メッセージに従って、Claude Code を再起動するか新しいセッションを始める。/model のあとも続くなら、ほかの場所に 1M のモデル ID が設定されている(モデル・effort・fast mode)。1M の変種をモデル選択から外すには CLAUDE_CODE_DISABLE_1M_CONTEXT=1 を設定する |
Fable limit reached · continuing on Fable 5.1 uses usage credits, and the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change / Fable 5.1 now uses usage credits · the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change |
アカウントが Fable の usage credits への同意を求めるとき、Fable の請求の前に確認が出る。誰も答えないまま確認が閉じると、ターンをこのメッセージで終える。セッションのモデル名が入る(Fable 5 なら Fable 5)。v2.1.257 より前は、1つ目が Fable 5 limit reached で始まった。リモートコントロールのセッション・バックグラウンドセッション・エージェントチームの teammate のセッション・Agent SDK 経由で別のアプリが動かすセッションで起きる。v2.1.236 より前は、このメッセージが出ず、リモートコントロールのクライアントが接続しているあいだ、60秒待ってから既定のモデルでターンを続けた |
セッションが動いている場所(ターミナルかホストのアプリ)で、もう一度プロンプトを送り、再び出る確認に答える。バックグラウンドのセッションは、先にエージェントビューから接続する。/model で、usage credits を請求しないモデルに切り替える。時間の余裕には、dialogExpiry を長い値か "never" にする |
API Error: Server is temporarily limiting requests (not your usage limit) |
API が、短時間のスロットルをかけた。プランのクォータとは無関係。本物の上限の応答が持つ、統合されたクォータのヘッダーが無いことで区別される。v2.1.199 以降は、認証の方法を問わず、表示の前にバックオフ付きで自動で再試行される | 少し待ってもう一度試す。続くなら status.claude.com を見る |
API Error: Request rejected (429) · this may be a temporary capacity issue. If it persists, check https://status.claude.com. |
API キー・Amazon Bedrock のプロジェクト・Google Cloud のプロジェクトに設定されたレート制限に達した。文末の案内はプロバイダーごとに違う。プロキシやゲートウェイが自前の HTML の 429 ページを返したときは、· の後ろにそのページの題が出る(Too Many Requests など。v2.1.281 より前はページのマークアップ全体) |
/status で有効な認証情報が想定のものか確認する(環境に残った ANTHROPIC_API_KEY が、サブスクリプションでなく低い階層のキーに流すことがある)。プロバイダーのコンソールで上限を確認し、必要なら上の階層を依頼する。Anthropic API のキーは、レート制限のリファレンスで階層とワークスペースごとの上限を見る。並列度を下げる(CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY を下げる、並列のサブエージェントを避ける、量の多い自動実行は /model で小さなモデルにする) |
You've hit your monthly spend limit · raise it at claude.ai/settings/usage / You've hit your individual spend limit · ask your admin for a higher limit / You've hit your org's monthly spend limit · visit claude.ai/admin-settings/usage to raise it / You've hit your team's shared budget · ask your admin to raise it at claude.ai/admin-settings/usage / You've hit your channel's monthly spend limit · an org owner or channel manager can raise it in the channel's Claude settings |
プランに含まれる利用分では、このリクエストを賄えず、代わりに払うはずの usage credits が利用額の上限に達した。プランの利用枠のどれかが尽きたとき、またはリクエストが usage credits を要するときに起きる。team's shared budget は、所属するグループに管理者が割り当てた共有の予算で、グループ名は出ない。channel's monthly spend limit は、セッションが動く1つの Slack チャンネルの予算で、組織にはその外に予算が残っていることがある。プランの枠が尽きた場合は、· your session limit resets 3:45pm のようにリセットの時刻も出て、上限を上げなくてもその時刻に戻る。従量課金の組織では、spend limit の代わりに usage limit と出る。v2.1.239 より前は、プランの枠のリセット時刻を示さなかった。v2.1.268 より前は、グループの共有の予算が team's shared budget でなく individual spend limit のメッセージになった |
Pro と Max では、claude.ai の「Settings > Usage」で月の上限を上げるか、/usage-credits を実行する。Team と Enterprise では、請求を管理するなら「Organization settings > Usage」で上げるか、管理者に頼む(/usage-credits が管理者に依頼を送る)。チャンネルの上限は、組織のオーナーかチャンネルの管理者に、claude.ai で上げてもらう(Slack と Claude Tag)。メッセージにプランの枠のリセット時刻があれば、待つこともできる。/usage でプランの枠とリセットの時刻を見る |
spend limit reached (daily; resets 2026-08-09 00:00 UTC) |
Claude apps gateway 経由で接続していて、ゲートウェイの運用者が設定した利用額の上限を超えた。名指しされた期間がリセットされるか、運用者が上限を上げるまで、ゲートウェイがリクエストを止める。メッセージに期間とリセットの時刻が出て、運用者が blocked_message を設定していれば、その指示が続く。v2.1.225 より前は spend limit reached だけで、古いゲートウェイは短い形を送る。関連する spend limit unavailable は、ゲートウェイが利用額の記録を読めず、念のために止めた(上限を超えたからではない)。たいてい自然に解消する |
メッセージの示すリセットの時刻まで待つか、運用者の指示に従う。常に当たるなら、運用者に上限を上げてもらう。spend limit unavailable が続くなら運用者へ知らせる(Claude apps gateway) |
Credit balance is too low |
Console の組織が、前払いのクレジットを使い切った。またはサブスクリプションを使うつもりなのに、Console の API キーでリクエストを送っている | Pro・Max・Team・Enterprise のプランで出るなら、/status で API key の行を確認する(承認済みの ANTHROPIC_API_KEY が、サブスクリプションでなくそのキーに流す)。現在のシェルで unset し、シェルのプロファイルからも消してから再起動する。platform.claude.com/settings/billing でクレジットを足し、残高がゼロになる前に補充されるよう自動チャージを検討する。Console のワークスペースごとの上限で、1つのプロジェクトが組織の残高を使い切るのを防ぐ(コストを抑える) |
Could not update your spend limit: <reason from the server> / Could not update your spend limit. Press Enter to retry. |
利用額の上限に達したときに出るプロンプトからした、上限の変更を、サーバーが拒否した。サーバーが理由を説明するなら、メッセージは理由で終わり、同じ値の再試行は同じように失敗する。切断など、サーバーの理由がない失敗では2つ目の形になり、再試行が成功することもある | 理由があるなら、それを満たす上限を選ぶ(たとえば低い額)。一般的な形なら再試行する。失敗が続くなら、ブラウザの claude.ai の請求設定から変更する |
認証のエラー#
これらのエラーは、Claude Code が API に対して自分が誰かを証明できないという意味です。/status で、いま有効な認証情報を確認できます。認証の優先順位は インストールとログイン を見てください。
ログインと API キー#
| 文言 | 原因 | 対処 |
|---|---|---|
Not logged in · Please run /login |
このセッションで使える有効な認証情報がない。デスクトップアプリが動かすセッション(Code タブや Cowork)では Authentication required · Sign in again to continue と出て、アプリからサインインし直す。同じ設定ディレクトリを使う別の Claude Code のウィンドウで claude.ai のアカウントでサインインすると、このメッセージを出している対話のセッションは、再起動しなくても自動でそのログインを使い始める。v2.1.286 より前の macOS では、別のウィンドウでサインインしたあともメッセージが出続けることがあり、その版ではメッセージの出ているセッションを再起動する |
/login で認証する。環境変数での認証を期待していたなら、claude を起動したシェルで ANTHROPIC_API_KEY が設定され export されているか確認する。CI などの自動実行では、起動時にキーを取る apiKeyHelper スクリプトを設定する。何度もログインを求められるなら、システムの時計の確認と、macOS の認証情報の保存先の復旧手順を見る(インストールとログイン) |
Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted |
セッションが認証情報なしで API クライアントに届いた。バックグラウンドセッションとクラウドセッションで、ワーカーが認証情報なしで起動したときに出る。対話・-p・Agent SDK の実行は、同じ状態を「Not logged in」として報告する。v2.1.174 より前は、事前に初期化された待機中のワーカーに割り当てられたバックグラウンドセッションが、正しい認証情報があっても失敗することがあった。v2.1.176 より前は、起動前に待機していたクラウドセッションでも起きた |
バックグラウンドかクラウドのセッションで、認証情報を設定済みなのに出るなら、v2.1.176 以降へ更新する。ANTHROPIC_API_KEY・CLAUDE_CODE_OAUTH_TOKEN・クラウドプロバイダーの認証情報が、対話シェルだけでなくワーカーを起動する環境にも設定されているか確認する。Agent SDK は Agent SDK の基本 を見る。同じ環境の対話セッションで /status を実行して、どの認証情報が使われるか確認する |
Invalid API key · Fix external API key |
ANTHROPIC_API_KEY か apiKeyHelper が返したキーを API が拒否した、または Claude Code が送る前にブロックした。Fix external API key のあとに Invalid X-Api-Key header value from ANTHROPIC_API_KEY: it contains a line break at character 41 (120 characters on 2 lines). のような説明が続くときは、API はキーを見ておらず、HTTP ヘッダーに載せられない文字を Claude Code が見つけて止めた |
打ち間違いと、Console でキーが失効していないかを確認する。同じシェルで env | grep ANTHROPIC(PowerShell は Get-ChildItem Env:ANTHROPIC*)を実行する(direnv・dotenv のシェルプラグイン・IDE のターミナルは、プロジェクトの .env から古いキーを読み込むことがある)。ANTHROPIC_API_KEY を unset して /login でサブスクリプションの認証にする。apiKeyHelper なら、スクリプトを直接実行して標準出力に有効なキーが出るか確かめる。/status で使われている認証情報を確認する |
Your apiKeyHelper script is failing · This usually means you need to re-authenticate with your provider · Run /status to see the script's error output |
apiKeyHelper のコマンドを実行したがキーが返らなかった(エラー終了かタイムアウト・標準出力が空・ログインのバナーやログ行などキー以外が出力された)。キーなしだとプレースホルダーの認証情報で API に届いて 401 になる。キー以外が出た場合、パネルに returned output that cannot be used as an API key と出る(出力は繰り返さない)。非対話モードでは標準エラーに apiKeyHelper failed: で始まる理由が出る。スクリプトを再実行して最大2回さらに再試行し、3回以内に表面化する。v2.1.208 より前は、再試行の枠全体を、プレースホルダーの認証情報で再送した。/login は効かない(設定がある限り、ヘルパーの出力が保存済みのログインより優先される) |
apiKeyHelper に設定したコマンドを、シェルで直接実行して失敗を再現する。セッションの期限切れなら、認証情報の提供元(SSO や保管庫)へ再認証する。コマンドが、キーだけを標準出力に1つの印字可能な ASCII のトークン(最大16,384文字)として出し、終了コード0で終わるよう直す(ネットワークと LLM ゲートウェイ)。/status の apiKeyHelper の行に Failing と、終了コードやエラー出力が出る(次の成功で消える)。失敗のたびに、端末の Authentication パネルにも出る(v2.1.212 より前は Cloud authentication) |
Invalid auth token · Fix external auth token / Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable / Invalid request header from the environment · Fix the environment variable |
リクエストヘッダーに送ろうとした値に、HTTP ヘッダーに載せられない文字(改行・NUL・U+00FF を超える文字(曲がった引用符やゼロ幅スペースなど))がある。送る前に止める。Claude API に直接、または LLM ゲートウェイ経由で送るときに確認する(Bedrock などのサードパーティのクラウドプロバイダーでは、送る前の確認をしない)。1つ目は ANTHROPIC_AUTH_TOKEN か CLAUDE_CODE_OAUTH_TOKEN のベアラートークン、2つ目は ANTHROPIC_CUSTOM_HEADERS の名前か値(どの Name: Value の組かを数えて示し、値は出さない)、3つ目は CLAUDE_AGENT_SDK_CLIENT_APP のようにほかの環境変数から写す値(変数名が出る)。2つ目の · のあとに、Invalid Authorization header value from ANTHROPIC_AUTH_TOKEN: it contains a line break at character 41 (120 characters on 2 lines). のような説明が付く。位置は1から数え、値そのものは含めない。ANTHROPIC_API_KEY なら「Invalid API key」、保存済みの /login の認証情報なら「Not logged in」として報告する |
メッセージが示す変数や設定を、報告された位置の周りの文字を打ち直して設定し直す(同じ元から貼り付け直さない)。ANTHROPIC_CUSTOM_HEADERS は、1行に1組の Name: Value を置き、メッセージが数えた組を書き直す。/status で有効な認証情報を確認する |
Your ANTHROPIC_API_KEY belongs to a disabled organization · Unset the environment variable to use your subscription instead / ... · Update or unset the environment variable / API Error: 400 ... This organization has been disabled. |
無効になった Console の組織の古い ANTHROPIC_API_KEY を使っている。保存済みのサブスクリプションのログインがあっても、キーが優先される。1つ目は、キーを unset すれば保存済みの /login に切り替わるとき、2つ目はキーが唯一の認証情報のとき。環境変数は /login に優先するので、シェルのプロファイルや .env のキーは、動く Pro や Max があっても使われる。-p ではキーがあれば常に使う |
現在のシェルで ANTHROPIC_API_KEY を unset し、シェルのプロファイルからも消してから、claude を起動し直す。Update or unset なら、戻れるログインがないので、キーを unset して /login するか、有効な Console の組織のキーに替える。あとで /status で、有効な認証情報がサブスクリプションか確認する。環境変数が無いのに続くなら、サポートに連絡するか別のアカウントでサインインする |
組織とプランの設定#
| 文言 | 原因 | 対処 |
|---|---|---|
Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account(· Unset ANTHROPIC_API_KEY to use your claude.ai account instead / · Unset ANTHROPIC_API_KEY and run /login to sign in with your claude.ai account / · Unset the apiKeyHelper setting and run /login to sign in with your claude.ai account / · Sign in again with your claude.ai account の形もある) |
Console の組織の管理者が API キーの認証を無効にしたので、Claude Code が送るキーを API が拒否する(v2.1.169 以降)。· のあとの対処は、キーの出どころで変わる。最後の形は、デスクトップアプリが動かすセッションで、アプリからサインインし直す。環境変数と apiKeyHelper は /login に優先するので、どちらかがキーを出している間は /login だけでは直らない |
メッセージが ANTHROPIC_API_KEY を示すなら、現在のシェルで unset し、プロファイルや .env からも消して再起動する。apiKeyHelper を示すなら、settings.json から外す。/login で claude.ai のアカウントでサインインし、/status で有効な認証情報がサブスクリプションか確認する。自動実行で API キーの認証が要るなら、組織の管理者に Console で再び有効にしてもらう |
Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access |
組織が、サブスクリプションのログインで Claude Code にサインインすることを許していない。同じアカウントで /login し直しても同じエラーになる。サーバー側の組織の設定なので、ローカルの設定・環境変数・CLI フラグでは上書きできない。Agent SDK と -p では oauth_org_not_allowed のエラーコードで出る |
管理者に、組織の Claude Code のアクセスを有効にしてもらう。サブスクリプションの代わりに Console の API キーで認証する(インストールとログイン)。自分が管理者で有効にする選択肢が見えないなら、Anthropic のサポートへ |
Routines are disabled by your organization's policy. |
Team か Enterprise の組織の Owner が、組織レベルでルーティンを無効にした。ルーティンを作る・実行するときに出る(claude.ai/code のルーティンの画面など)。v2.1.227 以降では、同じ設定が /schedule も隠す。サーバー側の設定で、ローカルでは上書きできない |
組織の Owner に、claude.ai/admin-settings/claude-code の「Routines」を有効にしてもらう。組織レベルのルーティンが要らない単発の定期作業は、定期実行と /loop を見る(ルーティン) |
Administrator policy requires a Cloud gateway sign-in on this machine; the Anthropic-issued credential configured here (ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, or apiKeyHelper) is not used.(セッション中は Not signed in to the Cloud gateway — run /login.) |
管理者の管理設定が forceLoginMethod を "gateway" にするか forceLoginGatewayUrl を設定している(CLAUDE_CODE_USE_BEDROCK などでクラウドプロバイダーを選んだ場合を除く)。ゲートウェイのサインインがないと、モデルのリクエストが2つ目の文言で失敗する。端末が Anthropic 発行の認証情報(ANTHROPIC_API_KEY か ANTHROPIC_AUTH_TOKEN・apiKeyHelper・以前の Console ログインで保存したキー)も持ち、管理設定が forceLoginMethod か forceLoginOrgUUID を設定していると、起動時に終了する。その起動時のメッセージは、セッションが設定されている認証情報・その設定場所・外す手順を名指しする(例:シェルに ANTHROPIC_API_KEY があると、Administrator policy requires a Cloud gateway sign-in on this machine, but this session is configured with an API key from ANTHROPIC_API_KEY, which a gateway machine does not accept. と出て、続けて To continue: unset ANTHROPIC_API_KEY (or run in a shell without it), then run claude and sign in with /login. と案内する)。v2.1.284 より前は、設定された認証情報を名指しせず、ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, or apiKeyHelper と候補を並べていた(どれを外すか分からなければ、v2.1.284 以降へ更新して claude を起動し直す)。v2.1.261 より前は、forceLoginMethod が "gateway" の端末で、残っていた保存済みのログインを使い、環境の認証情報には This machine's managed settings require a first-party login と報告した |
Not signed in to the Cloud gateway なら、/login を実行し、「Cloud gateway」の画面でサインインを完了する。起動時のメッセージなら、メッセージの終わりにある手順に従って、その認証情報を外す。端末がゲートウェイを要るべきでないと考えるなら、管理している管理者に、管理設定から forceLoginMethod と forceLoginGatewayUrl を外してもらう(組織への導入と管理設定) |
Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted / Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted |
ログインの元の Claude アカウントが停止された。1つ目は、保存済みのログインの更新を試みて停止を知ったとき、2つ目はブラウザで完了したサインインが報告したとき。停止はログインでなくアカウントにあるので、同じアカウントで再サインインしても消えない。-p と Agent SDK では account_on_hold のエラーコード |
メッセージのリンクを開いて、詳細を見るか異議を申し立てる。停止の影響を受けない別の Claude アカウントや API キーがあれば、/login でそのアカウントを使うか、ANTHROPIC_API_KEY でキーを設定して、解決の間も作業を続けられる |
ログインの期限・保存・更新#
| 文言 | 原因 | 対処 |
|---|---|---|
OAuth token revoked · Please run /login / Please run /login · API Error: 401 OAuth token has expired ... |
保存済みのログインがもう有効でない。revoked は、あらゆる場所でサインアウトした、または管理者がアクセスを外した。expired は、セッション途中で自動更新が失敗した。-p と Agent SDK では、メッセージが Failed to authenticate: OAuth token revoked. Please log in again or contact your administrator. や Failed to authenticate. API Error: 401 OAuth token has expired ... になり、エラーコードは authentication_failed(v2.1.287 より前は、-p と Agent SDK の revoked は Your account does not have access to Claude. Please login again or contact your administrator. だった)。どちらも API が返した拒否の報告。更新の失敗で保存済みのログインがすでに消えていれば、「Login expired」になる |
Claude Code のプロンプトで /login を実行してサインインし直す。-p のコマンドや Agent SDK のプログラムが保存済みのログインを使っているなら、同じ環境で claude を起動して /login を済ませ、コマンドやプログラムをもう一度実行する。対話でサインインできない自動実行では、ANTHROPIC_API_KEY で認証するか、claude setup-token で長期のトークンを作る。CLAUDE_CODE_OAUTH_TOKEN で認証しているなら、401 のあとも設定した値を送り続け、保存済みのログインのトークンには切り替えない(/status が表示する)。ログインを繰り返し求められるなら、システムの時計と macOS の認証情報の保存先の復旧手順を見る |
Please run /login · API Error: 401 Invalid authentication credentials |
API が認証情報の形式は認識したが、その裏のアカウントか組織を拒否した。認証情報が最近失効した、組織が無効になった・アクセスを外した、アカウント自体が無効になった、のときに返る | /status に API key の行があり「使われていない」印がないなら、承認済みの ANTHROPIC_API_KEY が有効な認証情報で、ログインより優先される(/login は置き換えない)。キーを更新する。/status にログインだけが出るなら、/login を一度実行する(失効していたら、新しいログインが置き換える)。同じログインで同じメッセージが返るなら、アカウントか組織が有効でない。/status の組織を確認し、管理者にアクセスを戻してもらう。ANTHROPIC_BASE_URL が LLM ゲートウェイを指すなら、401 の後ろはゲートウェイのメッセージで、/login では変わらない。ゲートウェイが期待する認証情報を直す |
Login expired · Please run /login(-p と Agent SDK では Failed to authenticate: OAuth session expired and could not be refreshed、エラーコードは authentication_failed) |
保存済みの claude.ai のログインの更新を試み、OAuth サービスが保存済みのリフレッシュトークンを拒否したので、Claude Code が保存済みの認証情報を消した。以降、各モデルのリクエストは、API に届く前にこのメッセージでローカルで止まる。v2.1.206 より前は、残っている認証情報でリクエストを送り、各モデルが「There's an issue with the selected model」か 401 で失敗していた。API キー・CLAUDE_CODE_OAUTH_TOKEN・サードパーティのプロバイダーで認証したセッションは、保存済みのログインを使わないので、出ない |
/login で再サインインする(サインインしないで再試行すると、毎回同じメッセージになる)。/status の Login の行が Expired — log in again になる(保存済みの組織とメールも出る。保存済みのログインが有効な認証情報のときだけ)。非対話モードでは、同じ環境で claude を起動して /login を済ませてから、コマンドを実行し直す。対話でサインインできない自動実行は、ANTHROPIC_API_KEY で認証するか claude setup-token で長期トークンを作る |
Could not refresh your login because another Claude Code process is refreshing it (or exited mid-refresh) · Try again in a minute; if it keeps happening, close other Claude Code windows or sign in again with /login(-p と Agent SDK では Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; ...、エラーコードは server_error) |
ログインが拒否されたのではない。保存済みの claude.ai のログインが期限切れで更新が要ったが、同じマシンの別の Claude Code のプロセスが共有の更新ロックを持っていた(または持ったまま終了した)ので、更新が進まなかった | 1分後にもう一度試す(別のプロセスが先に更新を終えれば、このセッションは更新後のログインを使う)。繰り返すなら、ほかの Claude Code のウィンドウとプロセスを閉じて再試行する。ほかにプロセスがないのに出るなら /login(再サインインはロックを待たない) |
Couldn't save your login. If your Mac's keychain is locked, unlock it and log in again. / Couldn't save your login. Try logging in again. |
claude.ai でサインインしたが、認証情報の保存先に保存できず、ログインが完了しなかった。1つ目は macOS、2つ目はそれ以外。macOS では、Claude Code が認証情報をすでに読んだか保存した後で、スリープやアイドルでログインキーチェーンがロックされると起きる。保存先の一時的な失敗(タイムアウトや読めない状態)でも同じメッセージ | macOS ではログインキーチェーンのロックを解除してから、/login をやり直す。ほかのプラットフォームは /login をやり直す。それでも保存できないなら、キーチェーンのロック解除のコマンドと保存先の復旧手順を見る(インストールとログイン) |
Failed to start OAuth callback server: Failed to start server. Is port 0 in use? |
/login・claude auth login・claude setup-token がブラウザでサインインするとき、Claude Code は 127.0.0.1 で待ち受けるポートを開き、サインインの結果をブラウザから受け取る。そのポートを開けなかった。Is port 0 in use? で終わるなら、IPv4 のループバックの 127.0.0.1 での待ち受けそのものが失敗した。ログインの URL ができる前の失敗なので、Paste code here if prompted は回避策にならない |
すぐサインインするには、claude.ai のサブスクリプションなら、サインインできる別のマシンで claude setup-token を実行し、出たトークンを、このマシンの CLAUDE_CODE_OAUTH_TOKEN に設定する。このマシンでブラウザでサインインするには、127.0.0.1 で待ち受けられる必要がある。サンドボックスの中なら、ローカルポートの待ち受けを許すポリシーか確認して、/login をやり直す。待ち受けられるはずなのに失敗するなら、/feedback で報告する |
Claude login not accepted · Run /login, then try again(サーバーが理由を返すときは、行の最初にその理由) |
クラウドセッション を始めようとして、サーバーが 401 で作成を拒否した。このマシンが送った Claude のログインを受け付けない(たいてい期限切れか失効) | /login でサインインを完了してから、セッションをもう一度始める |
Artifacts need a claude.ai login. Run /login and select "Claude account with subscription", then retry — the "Anthropic Console account" option does not provide claude.ai credentials. |
アーティファクトの公開か読み取りを拒否した。セッションに、アーティファクトに使える claude.ai のログインがない。メッセージは同じ言葉で始まり、そのあとの対処は、セッションの認証のしかたで変わる | /login で「Claude account with subscription」を選ぶ(「Anthropic Console account」は claude.ai の認証情報を出さない)。優先される認証情報(ANTHROPIC_API_KEY・apiKeyHelper の設定・以前の /login で保存した Console のキー)が名指しされたら、メッセージに従って外してから /login。リモートのセッションが起動したマシン経由で認証すると言われたら、そのマシンで claude.ai にサインインしてから再接続する。セッションのホストの環境が注入した認証情報なら、そのセッションでは変えられないので、claude.ai にサインインしたセッションを始める。プラン・モデルのプロバイダー・組織のポリシーなど、ほかの要件は アーティファクト を見る |
OAuth token does not meet scope requirement: user:profile |
保存済みのトークンが、新しい機能が要るアクセス範囲(scope)より古い | /login で、現在の scope の新しいトークンを得る(先にログアウトする必要はない) |
Anthropic profile login expired · Re-authenticate your Anthropic profile / Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile |
Anthropic の認証情報のプロファイル経由で認証していて、そのプロファイルの保存済みのログインが期限切れで、Claude Code が更新に使えるリフレッシュの認証情報がない。再試行しても同じなので、リクエストごとにローカルで止める。ANTHROPIC_PROFILE で選んだプロファイルか、設定ディレクトリから有効なプロファイルとして見つけたもの、キーなしの Console サインインか ant auth login が書いたものでだけ出る。ANTHROPIC_PROFILE を明示したときは Re-authenticate your Anthropic profile で終わる。設定ディレクトリから見つけたプロファイルのときは、動く /login が優先され、claude.ai か Console のアカウントで認証するので、/login を案内する |
キーなしサインインを提供するマシンでは、/login で Anthropic の Console のアカウントを選んで再サインインする(キーなしの Console サインインか、Claude Platform CLI の ant auth login が書いたプロファイルを更新できる)。管理者がプロファイルの認証情報を発行したなら、新しいものを出してもらう。/status で有効な認証情報の出どころとプロファイル名を確認する。プロファイルを使うのをやめるなら、設定した ANTHROPIC_PROFILE を unset して、/login か ANTHROPIC_API_KEY など別の方法で認証する |
リモートコントロール#
| 文言 | 原因 | 対処 |
|---|---|---|
Remote Control is only available when using Claude via api.anthropic.com. CLAUDE_CODE_USE_BEDROCK is set, so this session is using Amazon Bedrock — unset it (or run in a shell without it) to use Remote Control. |
セッションが Anthropic の API に直接つながっておらず、リモートコントロール が要求する条件を満たしていない。2つ目の文が、Anthropic の API から外れた原因を示す(v2.1.219 より前は最初の文だけ)。原因は、CLAUDE_CODE_USE_* のプロバイダー変数(Bedrock の CLAUDE_CODE_USE_BEDROCK・Google Cloud の Agent Platform の CLAUDE_CODE_USE_VERTEX)、api.anthropic.com 以外を指す ANTHROPIC_BASE_URL(LLM ゲートウェイやプロキシ。claude.ai でサインインしていても。v2.1.196 より前は独自の base URL を止めなかった)、ANTHROPIC_UNIX_SOCKET(ローカルのソケット経由で送る)、/login でしたエンタープライズのクラウドゲートウェイのサインイン(リモートコントロール非対応で、unset する変数がない) |
メッセージが示す変数(CLAUDE_CODE_USE_BEDROCK や ANTHROPIC_BASE_URL)を unset してセッションを再起動するか、Anthropic の API に直接つながるセッションからリモートコントロールを始める。シェルに設定がないなら、すべてのセッションに環境変数を適用する、設定ファイルの env キーを確認する。そのほかの起動時のメッセージは、リモートコントロールのトラブルシューティングを見る |
Remote Control is disabled by your organization's policy |
ポリシーがリモートコントロールを止めている。メッセージに disableRemoteControl とあれば、管理設定で IT 管理者がこの端末で無効にしている。Pro か Max のプランなのに、以前のログインの Team か Enterprise の組織が残っていて、その組織のポリシーを見ていることもある。組織が HIPAA の構成で、リモートコントロールと両立しない場合は、/status の Compliance の行に HIPAA と出る。それ以外は、Team と Enterprise では既定で無効で、Owner がまだ有効にしていない。組織のポリシーを読み込めていないときは、v2.1.281 より前はこの文言が出た |
原因を順に確かめる。/status でプランと組織を見て、claude auth logout のあと claude auth login で今のプランでサインインし直す。Owner は claude.ai/admin-settings/claude-code の「Remote Control」を有効にする(サーバー側の組織設定)。HIPAA の場合は Anthropic のサポートに相談する |
Remote Control was turned off by your organization's policy |
セッションがつながっている途中で、組織のポリシーがリモートコントロールを許さなくなり、Claude Code が切断した。/remote-control や claude --remote-control・自動接続で始めたときは、リモートコントロールなしでセッションが動き続け、claude.ai 側ではアーカイブされる。claude remote-control で始めたときは、サーバーが提供していたセッションをアーカイブして終了する |
自動では再接続しない。組織が再び許したら、セッションで /remote-control を、シェルで claude remote-control を実行する。変わったポリシーを取得するまでは「Remote Control is disabled by your organization's policy」で失敗する。アーカイブされたセッションは、クラウドセッションのアーカイブの絞り込みで探せる(クラウド(Web)で使う) |
Remote Control disconnected — Claude.ai login expired — run /login to restore Remote Control / ... — Claude.ai login expired — run /login, then /remote-control / ... — Claude.ai login was rejected — run /login, then /remote-control / ... — OAuth token unavailable — run /login to restore Remote Control / ... — OAuth token refresh failed — run /login to re-authenticate / ... — JWT refresh failed: no OAuth token — run /login / ... — Signed out of Claude — run /login, then /remote-control |
稼働中のリモートコントロールの接続は、保存済みの claude.ai のログインで得て更新する短命の認証情報で動く。claude.ai がそのログインを受け付けなくなる、または保存済みのログインが残っていないと、Claude Code はリモートコントロールを止め、警告と、Remote Control disconnected で始まるトランスクリプトの行で理由を示す。ローカルのセッションは、リモートコントロールなしで動き続ける。ログインサービスに届かない・タイムアウトなどで更新に答えがなかったときは、接続の現在の認証情報が有効なあいだ、リモートコントロールを続けて再試行する。中ほどの文言は原因:Claude.ai login expired と Claude.ai login was rejected は、期限切れか失効で claude.ai が保存済みのログインのトークンを受け付けない、OAuth token unavailable は更新の時期に保存済みのトークンがなかった、OAuth token refresh failed は再接続中に claude.ai が保存済みのトークンを拒否し、更新しても新しいトークンが得られなかった、JWT refresh failed: no OAuth token は更新に使う保存済みのトークンが見つからなかった、Signed out of Claude はこのマシンでサインアウトした(別のターミナルでの /logout など)。v2.1.224 より前は OAuth token refresh failed と JWT refresh failed: no OAuth token の文言が違った。v2.1.238 より前は、Signed out of Claude の場合を JWT refresh failed: no OAuth token — run /login と報告し、1回のログインの更新に答えがないだけでも止めていた |
/login でサインインし直す。/remote-control でセッションを再接続する(メッセージが run /login to restore Remote Control で終わるものは、この手順が要らない。サインインすれば Claude Code が自動で再接続する) |
Remote Control disconnected — signed-in claude.ai account or organization changed on this machine — run /remote-control to start a session for the current account, or /login to switch back, then /remote-control |
リモートコントロールのセッション中に、このマシンで別の claude.ai のアカウントか組織にサインインした(別のターミナルで /login を実行した、など)。/login でサインインして始めたリモートコントロールのセッションは、そのときサインインしていたアカウントと組織に属する。claude.ai が変更を確認した時点で、リモートコントロールを止める。ローカルのセッションは動き続ける。v2.1.234 より前は、この切り替えに気づかず、後続のリクエストが失敗するまで接続を保った |
/remote-control で、現在のアカウントか組織で新しいセッションを始める。戻すには、前のアカウントか組織で /login し直してから /remote-control |
Remote Control stopped — the app running this session is now signed in to a different Claude account / Remote Control stopped — the app running this session is signed out of Claude. Sign in there, then turn Remote Control back on |
Claude のデスクトップアプリや IDE がセッションをホストしているときは、Claude Code は /login でなくアプリからログインのトークンを得る。claude.ai がそのトークンを拒否すると、アプリに新しいものを求める。アプリがサインアウト済み、または別のアカウントにサインインしていると答えたときに出る。ローカルのセッションは動き続ける。v2.1.238 より前は、どちらの場合も、アプリに「Remote Control couldn't refresh your login」の run /login のメッセージを送っていた |
アプリがサインアウトしているなら、アプリに再サインインして、アプリでリモートコントロールをオンに戻す。アプリが別のアカウントに切り替わったなら、終わったセッションは新しいアカウントで続けられないので、そのアカウントで新しいリモートコントロールのセッションを始める |
MCP サーバーとコネクタ#
| 文言 | 原因 | 対処 |
|---|---|---|
claude.ai rejected the session token. Run /login, then reconnect. |
claude.ai のコネクタへのリクエストが、claude.ai が Claude Code のログインのトークンを拒否して失敗した。拒否されたのはコネクタ自体の認可でなくログインなので、コネクタを再認可しても直らない。v2.1.222 より前は、コネクタを認証が要る状態にしていた | /login でサインインし直す。そのあと /mcp からコネクタを再接続するか /mcp reconnect <server> を実行する(サインインの前に再接続しても同じ状態のまま) |
MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate) |
リモートの MCP サーバーが、セッションの途中のツール呼び出しで認証情報を拒否した(サインインやトークンの期限切れ、ツールが要る権限がトークンにない)。ツール呼び出しは失敗し、/mcp がそのサーバーを認証が要る状態にする。Claude Code からサインインするサーバー(claude.ai のコネクタを含む)では、サインインの期限切れか失効 |
/mcp を実行し、サーバーを選んで、そのメニューから再サインインする |
MCP server "<name>" rejected the credential from its headersHelper (check the helper and run /mcp to reconnect, or to authenticate if the server also uses OAuth) |
headersHelper スクリプトを設定したサーバー。Claude Code はすでにヘルパーを再実行して1回再試行したあとに表示する |
ヘルパーが、サーバーの受け付ける認証情報を返すか確認し、/mcp から再接続する(ヘルパーが再実行される) |
MCP server "<name>" rejected the Authorization header in its config (update it, then run /mcp to reconnect) |
設定に静的な Authorization ヘッダーを持つサーバーが、そのヘッダーを拒否した |
サーバーを設定した場所でヘッダーの値を更新し、/mcp から再接続する。v2.1.273 より前は、サインインの期限切れ・headersHelper・Authorization ヘッダーのいずれも MCP server "<name>" requires re-authorization (token expired) と出た |
MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate |
サーバーが、HTTP 403 の insufficient_scope でツール呼び出しを拒否し、scope の認可を求めた(トークンがすでに一覧に持つ scope のこともある)。サーバーの設定に oauth.scopes も authServerMetadataUrl もなければ、Claude Code はサーバーが名指しした scope を要求する。v2.1.274 より前は「needs you to sign in again」、v2.1.273 より前は「requires re-authorization (token expired)」と出た |
/mcp を実行し、サーバーを選び、メニューから再認証する |
Couldn't complete authentication for "<name>": This server's URL is missing or not a valid URL, so sign-in can't start. Fix the URL in its MCP config (or set the environment variable it uses) and try again. |
サーバーの設定の url が URL として解析できないので、リモートの MCP サーバーの OAuth サインインを始めなかった |
エントリの url を実際のエンドポイントにするか、${VAR} の参照が指す環境変数を設定してから、サインインをやり直す |
Issuer mismatch in authorization response (RFC 9207): expected "https://auth.example.com", received "https://other.example.com" |
MCP の OAuth サインイン中に、認可サーバーが、サーバーの OAuth メタデータから期待した発行者と違う iss パラメーターを付けてリダイレクトした。expected はメタデータの発行者、received はリダイレクトが運んだ iss。リダイレクトに iss がないサインインはこの検査を通る(サーバーのメタデータが authorization_response_iss_parameter_supported を設定している場合を除く)。v2.1.232 より前は、v2 のランタイムは段階的な展開か MCP_SDK_GENERATION=v2 のときだけだった |
/mcp からサインインをやり直す。繰り返すなら、サーバーの運営者に報告する(直すのはサーバー側:認可サーバーが、メタデータで公開する発行者と同じものを iss に返す)。直るまでの間は、この検査をしないランタイムの MCP_SDK_GENERATION=v1 を付けて Claude Code を起動して接続できる(なりすまし攻撃への防御が外れるので、サーバー側の修正を優先する) |
Refusing to send credentials to non-https token endpoint 'http://192.168.1.50:8123/oauth/token'. OAuth token requests MUST use TLS (localhost / 127.0.0.1 / ::1 are exempt). |
v2 のランタイムでは、MCP OAuth のトークンリクエストを、HTTPS か localhost・127.0.0.1・::1 のトークンエンドポイントにだけ送る。完全な形は MCP SDK が出し、拒否したエンドポイントを引用する。デバッグログではサインインなら Error during auth completion:、更新なら Token refresh failed: の後ろに出る。クエリ文字列や長いランダムに見えるパスの断片を持つサーバーの URL は、秘密かもしれないとして、SDK が出すサインインのエラーを、表示やログの前に伏せるため、短い名前だけで出ることもある |
そのトークンエンドポイントを HTTPS で提供する(TLS を終端するリバースプロキシやトンネルの後ろに置き、サーバーが https:// のアドレスを公開するよう設定する)。サーバーを変えずに接続するには、この規則を適用せず、平文の HTTP でトークンリクエストを送るランタイムの MCP_SDK_GENERATION=v1 を付けて起動する(終了するまでの選択) |
クラウドプロバイダー(Bedrock・Vertex・Foundry・ゲートウェイ)#
| 文言 | 原因 | 対処 |
|---|---|---|
AWS credentials expired or invalid · run /login and select "Claude Platform on AWS · refresh credentials", or run \aws sso login --profile myprofile` in another terminal · API Error: 401 ...` |
AWS のセッショントークンが期限切れか拒否された。Claude Platform on AWS か Mantle エンドポイントからの 401 で出る(これらは期限切れを 401 で報告するため)。中ほどの対処の文は構成で変わり、安定した部分は先頭の AWS credentials expired or invalid。v2.1.273 より前は、awsAuthRefresh を設定しているときだけ出た |
環境が認証情報を管理していると書かれるなら、Claude Code を起動したアプリが認証情報を持つので、ほかの手順は当てはまらない(再試行するか管理者へ)。awsAuthRefresh を設定しているなら、メッセージのコマンド(aws sso login --profile myprofile など)を別のターミナルで実行してブラウザのサインインを完了し、再試行する。対話のセッションなら、/login で「3rd-party platform」を選び、「Using 3rd-party platforms」の「Claude Platform on AWS · refresh credentials」を選んで同じコマンドを再起動せずに実行できる。更新後も繰り返すなら、同じシェルとプロファイルで aws sts get-caller-identity を実行し、Claude Code の外で ID が有効か確かめる |
AWS authentication failed · run /login and select "Claude Platform on AWS · refresh credentials", or run \aws sso login --profile myprofile` in another terminal · if credentials are current, check AWS permissions and model access · API Error: 403 ...` |
AWS のプロバイダーが 403 を返した、または Amazon Bedrock が 401 を返した。Amazon Bedrock は、期限切れのセキュリティトークンを 403 で報告するが、403 は認可の拒否(IAM の権限の欠落による AccessDeniedException など)の報告でもあり、Claude Code は2つを区別できない。Bedrock の 401 は、期限切れを 401 で報告しないので、「AWS credentials expired or invalid」でなくここに来る(たいてい別の原因)。更新は期限切れを直すだけでほかの原因は直せないので、メッセージは両方を案内する。403 が、指定したモデル ID へのアクセス権がないという Bedrock の答えなら、アカウントとリージョンでそのモデルを Amazon Bedrock のコンソールで有効にするよう案内する。v2.1.273 より前は、awsAuthRefresh を設定しているときだけ出た |
環境が認証情報を管理していると書かれるなら、上と同じ。期限切れが原因かもしれないので、AWS の認証情報を更新する(awsAuthRefresh のコマンド、または SSO・アクセスキー・API キーの更新)。認証情報が最新なら、使っている ID に IAM の権限が付いているか、選んだモデルがアカウントとリージョンで有効か確かめる(Bedrock・Vertex AI・Foundry)。aws sts get-caller-identity で、リクエストに使う ID を確認する |
Google Cloud credentials expired or invalid · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · API Error: 401 ... |
Google Cloud の Agent Platform の認証情報が期限切れか拒否された(Agent Platform は期限切れを 401 で報告する)。中ほどの対処の文は構成で変わり、安定した部分は先頭の Google Cloud credentials expired or invalid。v2.1.273 より前は、汎用の Please run /login か Failed to authenticate が出ていて、Google Cloud の認証情報は更新できなかった |
環境が認証情報を管理していると書かれるなら、同様。アプリケーションのデフォルト認証情報なら、メッセージの gcpAuthRefresh のコマンドか gcloud auth application-default login を実行してサインインを完了して再試行する。CLAUDE_CODE_SKIP_VERTEX_AUTH を設定して LLM ゲートウェイ経由なら、ANTHROPIC_AUTH_TOKEN か ANTHROPIC_CUSTOM_HEADERS のゲートウェイのトークンを更新して再試行する。サービスアカウントのキーファイルなら、GOOGLE_APPLICATION_CREDENTIALS が有効なキーを指しているか確認する。更新後も繰り返すなら、同じシェルで gcloud auth application-default print-access-token を実行して ID が動くか確認する |
Google Cloud authentication failed · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · if credentials are current, check GCP IAM permissions and Vertex AI model access · API Er... |
Agent Platform が、期限切れでなく認可の拒否に使う 403 を返した。たいてい、認証している ID に IAM の権限がない、またはモデルがプロジェクトで有効でない。中ほどの対処の文は構成で変わり、先頭の Google Cloud authentication failed が安定した部分。v2.1.273 より前は汎用の Please run /login か Failed to authenticate が出た |
環境が認証情報を管理していると書かれるなら、同様。認証する ID に IAM のロールが付与されているか確認する。モデルがプロジェクトで有効か確認する(Bedrock・Vertex AI・Foundry) |
Microsoft Foundry authentication failed · refresh your Foundry credential (ANTHROPIC_FOUNDRY_AUTH_TOKEN, ANTHROPIC_FOUNDRY_API_KEY, Azure sign-in for Entra, or your proxy token) and retry · if credentials are current, check access to the Foundry resource · ... |
Microsoft Foundry が 401 か 403 を返した。リクエストの Azure の認証情報が拒否された、またはその ID が Foundry のリソースにアクセスできない。/login は Azure の認証情報を作れない。v2.1.273 より前は、汎用の Please run /login か Failed to authenticate が出た |
環境が認証情報を管理していると書かれるなら、同様。設定した認証情報を更新する:ANTHROPIC_FOUNDRY_API_KEY を替える、新しい ANTHROPIC_FOUNDRY_AUTH_TOKEN を作る、az login を実行して既定の Microsoft Entra の認証が見つけるようにする。認証情報が最新なら、ID が Foundry のリソースにアクセスできるか確認する(Azure RBAC の構成) |
API Error: Could not load AWS credentials · Could not load credentials from any providers. Check or refresh your AWS credentials and try again. / API Error: Could not load Google Cloud credentials · invalid_grant. Check or refresh your Google Cloud credentials and try again. |
動いているマシンで、AWS の認証情報のプロバイダーチェーンからも、Google のアプリケーションのデフォルト認証情報からも、使える認証情報を得られず、クラウドプロバイダーにリクエストが届かなかった。Claude Code は、キャッシュした認証情報を消して再試行する。-p と Agent SDK では cloud_credential_error のエラーコード。v2.1.267 より前は、API Error: のあとの詳細だけが出ていた |
プロバイダーのサインインのコマンド(aws sso login --profile myprofile や gcloud auth application-default login)を実行して再試行する(インストールとログイン)。詳細が AWS default-chain credential resolve timed out なら、失敗でなく止まっているので、次の行へ |
API Error: Could not load AWS credentials · AWS default-chain credential resolve timed out. Check or refresh your AWS credentials and try again. |
AWS の既定の認証情報のプロバイダーチェーンが、60秒以内に認証情報を作らなかったので、解決を止めてリクエストを失敗させた。よくある原因は、AWS プロファイルの credential_process が受け取れない入力を待っている、コンテナや VM のインスタンスメタデータサービス(IMDS)がチェーンのプローブに答えない。v2.1.267 より前は API Error: AWS default-chain credential resolve timed out。v2.1.207 より前は、止まったチェーンが、失敗でなく無期限にリクエストを待たせていた |
同じシェルで、同じ AWS_PROFILE で aws sts get-caller-identity を実行する(これも止まるなら、プロファイルを直す。対話的に聞く credential_process がよくある原因)。Claude Code を始める前にサインインを済ませる(aws sso login --profile myprofile など)。正当に60秒より長くかかる対話的なサインインなら(aws-vault のようなラッパー経由の MFA 付き SSO など)、CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS(ミリ秒)で上限を上げる |
Timed out after 60s waiting for AWS. Check your network and proxy settings; if a credential helper needs longer to prompt you, raise CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS. / A request to AWS timed out. Check your network and proxy settings, then try again. |
Bedrock のセットアップウィザードの認証情報の検証で、AWS への呼び出し(認証情報の参照や ID の確認)が、60秒の上限内に終わらなかった。数字は上限(既定は60秒、CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS の値)。よくある原因は、AWS へのリクエスト(SSO のトークン更新を含む)を止めるネットワークやプロキシ、見えない入力を待つ認証情報ヘルパー。1回のリクエストが止まると、リクエストごとのタイムアウトで、短い2つ目のメッセージが出る。モデルのピン留めの段階で同じタイムアウトが起きると、ウィザードはモデルを unreachable と表示する |
同じシェルで aws sts get-caller-identity を実行する(これも止まるなら、原因は Claude Code の外(ネットワーク・プロキシ・AWS プロファイルの認証情報ヘルパー)で、先に直す)。ウィザードを開く前に、aws sso login --profile myprofile などの対話的なサインインを済ませる。ヘルパーが正当に60秒以上かかるなら、CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS で上限を上げる |
Cloud gateway session expired — run /login to reconnect.(非対話の実行・バックグラウンドなど無人のセッション・claude auth 以外のサブコマンドでは、ゲートウェイがセッションを受け付けなくなると Cloud gateway <url> no longer accepts this session. Start \claude` and sign in again with /login.` で終了する) |
Claude apps gateway でサインインしたが、このマシンに保存されたゲートウェイのセッションが期限切れで更新できなかった、またはゲートウェイが受け付けなくなった(ゲートウェイの JWT の秘密を替えたあとなど)。ゲートウェイの認証情報が期限切れで更新できないときは、セッション中にも出る | セッションで /login を実行し、ブラウザのサインインを完了する。非対話の起動では、同じ環境で claude を起動して /login を済ませてから、コマンドを実行し直す |
Sign-in timed out while waiting for you to continue. Try again. |
Claude apps gateway のサインイン中に、ゲートウェイがサインインしたアカウントを示し、Claude Code が認証情報を保存する前に確認を求めた。確認を、サインイン自身の有効期限を過ぎて開いたままにした | /login をやり直し、サインインの期限が切れる前にアカウントを確認する |
Gateway refused the request · signing in again won't change this — check with your gateway administrator · API Error: 403 ... |
Claude apps gateway でサインインしていて、リクエストが 403 で、ゲートウェイか、その裏の上流が拒否した。再サインインしても拒否は変わらないので、ゲートウェイの管理者を案内する。v2.1.273 より前は、汎用の Please run /login か Failed to authenticate が出て、再サインインしても拒否は消えなかった |
ゲートウェイの管理者に、リクエストを調べてもらう(API Error: の末尾が、ゲートウェイが返した拒否を運ぶ)。管理者向け:ゲートウェイのアクセス制御ルールが 403 を返し、監査ログが理由を記録する。上流の認可の拒否はそのまま通る |
ネットワークと接続のエラー#
これらの多くは、Claude Code のネットワークリクエストが届かなかった、または Claude Code と API の間にあるものが応答を書き換えた、という意味です。ネットワークの設定は ネットワークと LLM ゲートウェイ を見てください。
| 文言 | 原因 | 対処 |
|---|---|---|
Unable to connect to API. Check your internet connection / Connection refused — a firewall or proxy may be blocking it (ConnectionRefused) / Can't reach the API server — check your internet or DNS (ENOTFOUND) / No internet route — check your connection or VPN (EHOSTUNREACH) / Couldn't connect through your proxy (ERR_PROXY_TUNNEL) — the proxy refused the tunnel: check its credentials and that it allows this host / Connection dropped (ECONNRESET) / Request timed out. Check your internet connection and proxy settings |
API への TCP 接続が失敗した、または完了しなかった。よくある接続エラーのコードは、失敗の種類を文言に出し、コードを括弧に残す。認識できないコードは Unable to connect to API のあとに括弧でコードが出る。同じ文言が複数のコードを出すことがある(Connection refused は ConnectionRefused か ECONNREFUSED)。v2.1.227 より前は、これらはどれも Unable to connect to API (ECONNREFUSED) のように、Unable to connect to API とコードだけだった。よくある原因は、インターネットに出られない、VPN が api.anthropic.com を止めている、必要な社内プロキシが未設定 |
同じシェルで curl -I https://api.anthropic.com を実行して、API のホストに届くか確認する(Windows PowerShell は組み込みの Invoke-WebRequest の別名を避けて curl.exe -I https://api.anthropic.com)。社内プロキシの内側なら、起動前に HTTPS_PROXY を設定する。LLM ゲートウェイやリレー経由なら、ANTHROPIC_BASE_URL をそのアドレスにする。ファイアウォールが、ネットワークの要件に挙がるホストを許すか確認する。断続的な失敗は自動で再試行され、続く失敗は手元のネットワークの問題を示す。curl が通るのに失敗するなら、ランタイムとネットワークの間に原因があるのが普通:ANTHROPIC_BASE_URL が設定されていないか(echo $ANTHROPIC_BASE_URL、PowerShell は echo $env:ANTHROPIC_BASE_URL、設定ファイルの env ブロックも)、Linux と WSL で /etc/resolv.conf に到達できないネームサーバーがないか(WSL はホストの壊れたリゾルバーを引き継ぐことがある)、macOS で切断かアンインストールした VPN が残したトンネルのインターフェースやルーティングがないか(ifconfig の古い utun を調べ、システム設定で VPN のネットワーク拡張を消す)、Docker Desktop などのコンテナランタイムが外向きの通信に割り込んでいないか(終了して再試行して切り分ける) |
Unable to connect to Anthropic services / Failed to connect to api.anthropic.com: ECONNREFUSED / Connection to api.anthropic.com timed out after 10 seconds / A proxy is configured via HTTPS_PROXY. Check that it allows connections to the host above. |
初回の起動のセットアップで、サインインの段階の前に、api.anthropic.com と platform.claude.com に届くかを確認する。どちらかが失敗すると、理由を出して終了する。API リクエストと同じプロキシ設定を通し、各プローブに10秒与える。失敗したプローブがプロキシを通っていたら、それを設定した環境変数名(HTTPS_PROXY など)が出る。管理設定が forceLoginMethod を "gateway" にするか forceLoginGatewayUrl を設定しているときは、この確認を飛ばす |
メッセージがプロキシの変数を示すなら、値が正しいプロキシを指すか確認し、ネットワークチームにそのプロキシ経由でメッセージのホストへ HTTPS で通すよう頼む。「Unable to connect to API」の確認(curl の試験とファイアウォール)を行う。ネットワークが開いているのに続くなら、その国で Claude Code が使えない可能性がある |
Socket is closed |
ストリーミング応答を運ぶ接続が、応答がまだ届いている途中で閉じた。最もよくある原因は、Windows の社内プロキシが、確立済みのトンネルを応答の途中で切ること。応答の進み具合に応じて、再試行する・Claude が出したぶんを残す・ターンを終える(再試行は自動の再試行の節)。v2.1.214 より前は、この失敗を再試行せず、Socket is closed を含むエラーでターンが止まった |
v2.1.214 以降へ claude update で更新し、メッセージをもう一度送る。更新後も、同じプロキシの内側でターンが失敗し続けるなら、「Unable to connect to API」の手順を行い、プロキシの設定を確認する |
API returned an empty or malformed response (HTTP 200) — check for a proxy or gateway intercepting the request. |
ストリーミングのリクエストが失敗したあとの非ストリーミングでの再試行が、HTTP の成功状態を受けたのに、本文が Claude API のメッセージでない(HTML のエラーやサインインのページ・空の本文・別の形式の JSON など)。プロキシやゲートウェイなどが代わりに答えている。冒頭のあとに、返ってきたものと失敗したリクエストを示す。Response: の節に、content type・本文の種類(body is an HTML page・empty body)・バイト数・Anthropic のリクエスト ID の有無が出る(nginx や cloudflare など、見分けられるサーバー名が出ることがある)。もう1つの文に、失敗したストリーミングのリクエストの ID と再試行の引き金になった失敗が出る(ストリームが開いていたら、届いたイベント数と、届いたなら失敗時に何秒無音だったかも)。v2.1.234 より前は intercepting the request で終わった。v2.1.271 より前は、text/plain のような JSON でない content type で有効な API メッセージを返す返信(LLM ゲートウェイの一部が非ストリーミングの返信に使う)でも、このエラーでターンが終わった |
Response: の節で、どのシステムが答えたかを見る(HTML・Anthropic のリクエスト ID なし・nginx や cloudflare などのサーバー名は、Claude Code と API の間の何かが代わりに返信している印)。LLM ゲートウェイ経由なら、直接リクエストでその経路を試し、API でない応答を返す中継を直す。ゲストの Wi-Fi のようなサインインのページがあるネットワークでは、ブラウザでサインインを済ませてから再試行する。ゲートウェイの非ストリーミングの経路だけが壊れているなら、CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1 でこの代替を無効にする(ストリーミングのエンドポイント自体が 404 を返す場合を除く) |
Streaming response ended before any complete data was received. Retrying without streaming. If this keeps happening, check any proxy or gateway between Claude Code and your model provider. |
モデルのプロバイダーからのストリーミング応答が、使えるデータを1つも届けずに完了したので、Claude Code がストリーミングなしで出し直してターンを終えた。1つのセッションで一度だけ、対話のセッションでだけ警告を出す。影響を受けるリクエストごとに、空のストリーミングの試行と再試行の2回を送る。よくある原因は、応答の本文を消費・変換するプロキシやゲートウェイ | Claude Code とモデルのプロバイダーの間のプロキシやゲートウェイが、ストリーミングの応答の本文とヘッダーを変更せず通すよう設定する。Amazon Bedrock では、ヘッダーと本文の要件を、Amazon Bedrock のゲートウェイやプロキシの背後のストリーミングのエラーで確認する(Bedrock・Vertex AI・Foundry) |
Bedrock streaming response has content-type "text/event-stream"; expected "application/vnd.amazon.eventstream". A gateway or proxy between Claude Code and Bedrock is likely transforming the response body — Bedrock's binary event-stream format must be passed ... |
Claude Code と Amazon Bedrock の間のゲートウェイやプロキシが、ストリーミングの応答の本文か Content-Type ヘッダーを変換している。Amazon Bedrock は application/vnd.amazon.eventstream でストリーミングする。変換された本文をデコードしようとせず、このエラーを出す(v2.1.208 以降。それより前は、同じ設定の誤りが、応答全体をバッファしたあとの API Error: Truncated event message received として現れた) |
ゲートウェイが InvokeModelWithResponseStream の応答の本文と Content-Type ヘッダーを変更せず通すよう設定する(ストリームをサーバー送信イベントとして出し直す中継がよくある原因)。CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1 を設定するとこのエラーを隠せるが、書き換えたヘッダーの下のバイナリの本文は Claude Code がデコードしないので、そのリクエストは遅い非ストリーミングの経路に戻る |
Unable to connect to API: SSL certificate verification failed (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). The certificate comes from an authority Claude Code doesn't trust, usually a TLS-inspecting corporate proxy or a gateway signed by a private CA: set NODE_EXTRA_C... / Unable to connect to API: Self-signed certificate detected (SELF_SIGNED_CERT_IN_CHAIN). ... / SSL certificate error (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). If you are behind a corporate proxy or TLS-intercepting firewall, set NODE_EXTRA_CA_CERTS to your CA bundle path, or ask IT to allowlist *.anthropic.com. Run \claude doctor` for details.` |
ネットワーク上のプロキシやセキュリティ機器が、TLS の通信を自分の証明書で傍受していて、Claude Code がそれを信頼していない。最後の形は /login と起動時の接続確認で出る。v2.1.273 より前は、2つの前者のメッセージが Check your proxy or corporate SSL certificates で終わり、OpenSSL のコードも NODE_EXTRA_CA_CERTS のヒントもなかった。v2.1.199 以降は、証明書の検証の失敗を再試行しないので、再試行の枠をすべて使い切る前に、最初の試行で出る(一時的な TLS の状態は引き続き再試行される)。Amazon Bedrock では、Claude Code 自身が AWS に送るリクエスト(STS と SSO のロールの認証情報の呼び出し・モデルの検出・セットアップウィザードの確認)も同じ証明書の設定に依存する |
組織の CA のバンドルを書き出し、NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem で Claude Code に指す。完全な設定は ネットワークと LLM ゲートウェイ を見る。NODE_TLS_REJECT_UNAUTHORIZED=0 は設定しない(証明書の検証が完全に無効になる) |
HTTP 403 と x-deny-reason: host_not_allowed(宛先の本当の証明書と合わない TLS 証明書が見えることもある) |
クラウドセッションかルーティンからの外向きの HTTP リクエストを、環境のネットワークポリシーが止めた。クラウドセッションは、ポリシーを強制するプロキシ経由で外向きの通信を通すので、証明書が合わないのは、宛先でなくプロキシが接続を終端したという意味。クライアント側のネットワークの問題ではない。クラウドセッションとルーティンは、サンドボックスの VM の中で動き、外向きの通信はクラウド環境の許可リストで絞られる。ローカルの CLI のセッションには影響しない | 以下は自分の環境を変える手順(組織で共有された環境は、選択画面で読み取り専用で開くので、Owner に「Cloud environments」の画面でネットワークのアクセスを変えてもらう)。環境を編集用に開く(ルーティンのフォームから、またはクラウドセッションを始める場所の環境の選択画面から)。「Edit environment」ダイアログで、「Network access」を「Trusted」から「Custom」に変え、「Allowed domains」に、止まったドメインを1行に1つ足す(「Also include default list of common package managers」にチェックすると、既定のパッケージマネージャーの一覧を残せる)。「Save changes」を押す。次の実行から更新された許可リストになる。すでに開いているクラウドセッションへの反映は、環境の変更がいつ届くかの説明を見る(クラウド(Web)で使う) |
artifact content fetch failed (proxy refused the connection: HTTP 407) / artifact content fetch failed (proxy refused the connection: HTTP 403) / the proxy refused the connection to the artifact's content host (HTTP 502) |
HTTPS_PROXY などのプロキシ変数で設定したプロキシ経由で、Claude がアーティファクトを読んだときに出る。アーティファクトの内容は *.frame.claudeusercontent.com から来る。ステータスは CONNECT に対するプロキシの答えで、ホストは答えていない。v2.1.238 より前は、トンネルを拒否されたことを一般的なネットワークエラーとして報告していた |
HTTP 407 は、プロキシが認証情報を要求したが渡っていない。プロキシの URL に認証情報を入れる。HTTP 403 は、プロキシが *.frame.claudeusercontent.com へのトンネルを拒否している。プロキシの運営者に、そのホストを許可してもらう。HTTP 502 などそのほかのステータスは、ホストに届かないなど、プロキシ自身の理由でトンネルを開けなかった。プロキシのログでそのステータスを調べる。ステータスの代わりに unreadable reply なら、プロキシのアドレスにあるものが HTTP のステータス行で答えていない。HTTP プロキシのアドレスか確認する。プロキシ変数のアドレスと認証情報を確認し、Claude Code を起動するシェルで curl -x http://proxy.example.com:8080 -I https://api.anthropic.com を実行する。ネットワークが、アーティファクトのホストに直接届くなら、.frame.claudeusercontent.com を NO_PROXY に足す(より広い .claudeusercontent.com はプロキシを迂回する範囲が広がるので、狭いまま保つ) |
The cloud environments service returned an empty response (HTTP 200 with no body). This is usually temporary — try again in a moment. / The cloud environments service returned a response in an unexpected format (HTTP 200 with a non-JSON body). ... / The cloud environments service returned a response in an unexpected format (HTTP 200 without a usable environments list). ... |
CLI からクラウドセッションを作る、/remote-env を実行するなど、クラウド環境の一覧を要求したとき、読めなかった。サーバーはリクエストを受け付けたが、本文が環境の一覧でない(空・JSON でない・一覧のない JSON)。たいていサービス側の障害に伴い、自然に解消する。v2.1.236 より前は、生の JavaScript の TypeError が出た |
もう一度操作を試す(毎回、一覧を要求し直す)。出続けるなら、status.claude.com で障害を確認する |
Couldn't reconnect to your Remote Control session. Retry, or start a fresh session without --resume. |
claude --resume か claude --continue で再開すると、その会話に記録されたリモートコントロールのセッションに再接続する。ネットワークの中断など、一時的かもしれない理由で再接続が失敗した。サーバーが前のセッションはもうないと報告する場合は、このメッセージでなく、Claude Code が代わりに新しいセッションを始めるか、Previous session is unavailable — run /remote-control to start a new one を出す |
/remote-control で再接続を試す。claude --remote-control で新しいセッションを始めて、新しいリモートコントロールのセッションを作る。ほかの起動時のメッセージは リモートコントロールとモバイル を見る |
2 sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed. |
claude remote-control を動かしているターミナルに出る。マシンが長くオフラインだったため、サーバーが、そのマシンが受け持っていたリモートコントロールの環境を片付けた |
メッセージの下に残された worktree の一覧が出ていたら、コミットしていない作業を取り出す。claude remote-control で新しい環境を始める |
Couldn't share the transcript. |
セッションの品質アンケートなどのプロンプトで、トランスクリプトの共有に同意した後、Claude Code は Anthropic にアップロードする(サードパーティのプロバイダーなどでは、代わりにローカルのアーカイブを保存する)。アップロードは 8 MiB に収まる必要がある。長いセッションでは、Claude Code は共有のうち、最後のリクエストのモデル設定、次に構造化された会話とサブエージェントのトランスクリプトの順に、段階的に落としていき、小さくできないときにこのメッセージを出す | /feedback で、何が起きたかの説明つきでトランスクリプトを送る(環境で /feedback が使えないときは末尾の「エラーを報告する」を見る)。ほかのリクエストも失敗しているなら、ネットワーク接続を確認し、「Unable to connect to API」を見る |
Couldn't send feedback (couldn't reach the service). If it keeps failing, you can file at https://github.com/anthropics/claude-code/issues instead. |
/feedback・/bug・/share のダイアログからのレポートで、Anthropic へのアップロードが失敗した。ダイアログは入力した文章を保持するので、再送できる。接頭辞のあとの文が、失敗の種類を示す:: not signed in. Run /login, then retry. は、ダイアログが開いた時点では Anthropic の認証情報があったのに、送った時点では使えなかった(その間にこのマシンでサインアウトした、ログインを更新できなかった、など)。括弧つきの (server returned <status>) はサービスの応答コード、(request timed out) と (couldn't reach the service) はネットワークの失敗。理由を示せないときは括弧がない。フィードバックの下書きのキューでは、同じ失敗が The draft is still queued. Try again later. で終わり、下書きは次の試行のために残る。v2.1.281 より前は、リモートコントロールの「Stop」や緊急のセッション間メッセージがダイアログを開いている間に届くと、毎回の送信がこのメッセージで失敗した(ダイアログを閉じて開き直して送る) |
サインインしていないという文言なら、/login してからもう一度送る。それ以外は、もう一度送る(ほかのリクエストも失敗しているなら、ネットワークを確認し、「Unable to connect to API」を見る)。失敗し続けるなら、メッセージのとおり GitHub の issues に報告する |
リクエストのエラー#
リクエストの内容に関するエラーです。多くは API がリクエストを拒否して返したもので、一部は、リクエストを送る前に Claude Code がローカルで出します。
文脈とサイズ#
| 文言 | 原因 | 対処 |
|---|---|---|
Prompt is too long(対話では Context limit reached · /compact or /clear to continue。DISABLE_COMPACT を設定していると /clear だけを示す。自動圧縮をユーザー設定で切っていると、末尾に · auto-compact is off · /config to turn it on。-p の出力とトランスクリプトでは Prompt is too long のまま) |
会話と添付ファイルが、モデルの文脈ウィンドウを超えた。Amazon Bedrock は Input is too long for requested model. と報告し、同じに扱われる(v2.1.217 より前は、この文言を認識せず、自動圧縮が起きず /compact が失敗した)。Claude apps gateway は、クラウドの上流がプロバイダー自身の形でリクエストを拒否すると、capability_rejected: prompt_too_long と報告し、同じに扱われる。/config の「Auto-compact」のトグルは、autoCompactEnabled をユーザー設定へ書く(DISABLE_AUTO_COMPACT や DISABLE_COMPACT があるときは、ヒントは出ない) |
/compact で前のターンを要約して空きを作るか、/clear で新しく始める。/compact が Not enough messages to compact. と答えるなら、会話が1往復だけで、前に要約するものがない(空間は、そのやり取りの内容そのものが使っている)。/context で、何が窓を使っているか(system prompt・ツール・メモリのファイル・メッセージ)を内訳で見る。使っていない MCP サーバーを /mcp disable <name> で無効にして、ツール定義を文脈から外す。大きな CLAUDE.md のメモリを削るか、関連するときだけ読まれるパス指定のルールへ移す。自動圧縮は既定でオンで、通常このエラーを防ぐ。/config や DISABLE_AUTO_COMPACT で切っているなら、戻す(切ったままなら、窓が満杯になる前に自分で /compact する)。文脈の埋まり方は コンテキストとプロンプトキャッシュ を見る |
Prompt is too long · automatic compaction failed: <the underlying error> |
このターンで自動圧縮が走ったが、利用できないモデルや認証の失敗などの根本のエラーで失敗した。区切りのあとに、そのエラーが出る。v2.1.229 より前は、原因なしで Prompt is too long が出た |
名指しされたエラーを先に解決する(解決するまで /compact も同じエラーで失敗する)。自動圧縮は、通常、最も古いやり取りを要約して最新を残す。最後の手段として、要約を変える:どのやり取りも丸ごとは要約できないときは、最新のプロンプトを一字一句残して、その前をすべて要約する。そのとき会話がプロンプトで終わっていなければ、会話全体を要約する。引き継ぐ内容に、モデルの返信がなく、自分の文章が約1,000トークン未満(巨大な貼り付けのあとの短い再送など)なら、この復旧をしないので、/clear で新しく始める |
Prompt is too long · this conversation is a single exchange and cannot be compacted — the request size comes mostly from system prompt, tool definitions, or attachments. / Prompt is too long · the request is ~<request tokens> tokens (limit <limit>) and this conversation's own content is most of it. A single-exchange conversation cannot be compacted; start with less content (smaller files or pasted text). / Prompt is too long · the request is ~<request tokens> tokens (limit <limit>) but this conversation is only ~<conversation tokens> tokens — the rest is system prompt, tool definitions, and attachment content. ... |
1往復だけの会話には、前に要約するターンがない。自動圧縮が走るはずの場面で、Claude Code は試行を飛ばし、何がリクエストを埋めているかを説明する。API がエラーにトークン数を報告しないときは1つ目、報告するときは、Claude Code が自前の見積もりと比べて、リクエストの大半が会話そのものの内容(2つ目)か、system prompt・ツール定義・添付の内容(3つ目)かを示す。v2.1.162 より前は、それでも圧縮を試み、失敗すると素の Prompt is too long が出た |
2つ目は、内容を減らして始める(小さなファイルや、短い貼り付け)。3つ目は、会話の外(system prompt・ツール定義・添付)を減らす(使っていない MCP サーバーを無効にする、メモリのファイルを削る) |
Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue. / Context is 94k tokens past the 200k-token compaction window — run /compact to reduce usage. |
/context が、会話がモデルの文脈ウィンドウを超えたときに、出力の先頭に出す警告。空きを作るまで、リクエストは Prompt is too long で失敗する。超えた上限が圧縮のウィンドウ(1M の文脈のモデルの 200K の境界など)なら2つ目の文言になる。圧縮のウィンドウはモデルの文脈ウィンドウより下にありうるので、それを超えたリクエストも成功することがある。どちらも DISABLE_COMPACT を設定していると /compact の代わりに /clear を示す。v2.1.216 より前は、/context が 100% を超える使用量を、意味や復旧の説明なしで表示した |
複数ターンの会話では /compact で前のターンを要約して空きを作る。新しく始めるなら /clear。ほかの減らし方は「Prompt is too long」を見る |
Request too large (max 32MB). Accumulated images and attachments in the conversation pushed the request over the limit. Run /compact, or double press esc to go back and remove attachments. |
トークン化の前の、生のリクエスト本文が API の 32MB の上限を超えた。多くは、大きな貼り付けの内容・ツールの結果・添付による。文脈ウィンドウの上限とは別。Claude API に直接送り、API が拒否したときは、Claude Code が会話を測って、復旧できるかで文面を変える(プロキシ・ゲートウェイ・クラウドプロバイダー経由は一般的な文面):Request too large (max 32MB; 20.1MB of about 33.4MB is images or documents). は、画像かドキュメントが上限を超えさせた(外して再試行する)。Request too large for the API's 32MB request limit は、メッセージだけで上限を超え、compacting cannot make it fit と書かれ、再試行しない(非対話モードでは、実行し直すよう案内する)。v2.1.212 より前は、画像が溜まった会話が毎ターン Request too large (max 32MB). Double press esc to go back and try with a smaller file. で失敗した。v2.1.229 より前は、拒否のたびに添付の助言を出した |
compacting cannot make it fit と出たなら、Esc を2回押して、大きな内容を足したターンの前へ戻るか、/clear で新しく始める。それ以外は /compact を実行する(溜まった画像と添付が捨てられる)。大きなファイルは、内容を貼らずパスで参照して、Claude が分割して読めるようにする。画像は、次の行 |
Image was too large. Double press esc to go back and try again with a smaller image. / API Error: 400 ... image dimensions exceed max allowed size |
貼った・添付した画像が、API のサイズか寸法の上限を超えた。Claude Code は、処理できない画像を文字のプレースホルダーに置き換えて再試行するので、次のメッセージは成功する。2.1.142 より前の版では、貼った画像が会話に残り、以降のメッセージで同じエラーが繰り返されることがあった | 貼る前に画像を縮小する。API が受け付けるのは、1枚なら最長辺 8000 ピクセルまで、多くの画像が文脈にあるときは 2000 ピクセルまで。画面全体でなく、関係する領域だけを撮る |
Unable to resize image — image processing is unavailable and dimensions could not be read from the file header. Please convert the image to PNG, JPEG, GIF, or WebP. ほか6種(dimensions exceed the 2000x2000px limit and image processing failed / Unable to resize image (… raw, … base64). The image exceeds the … API limit and compression failed. ... / could not verify image dimensions are within the 2000x2000px API limit / it is a CMYK JPEG, which Claude Code cannot decode, and at …px it is over the 2000x2000px limit, so it cannot be sent. Re-save it as an RGB PNG or JPEG ... / it is an animated WebP whose first frame Claude Code cannot decode, ... Save its first frame as a PNG or JPEG ... / its pixels could not be decoded (the file may be damaged, or use an encoding Claude Code cannot read), and it is over the … API limit ...) |
添付した画像を、API に送る前に縮小できなかった。Claude Code は、大きな画像を通常は自動で縮小する。これらは、画像をデコードできない、または API の上限に収まるよう縮小できなかったという意味 | メッセージが変換を求めるなら、PNG・JPEG・GIF・WebP に変換して添付し直す(これらの形式は、ファイルのヘッダーから、デコードせずに寸法を確認できる)。寸法やサイズの上限なら、上限未満に縮小か再圧縮してから添付する。CMYK の JPEG・アニメーションの WebP・壊れている可能性のあるファイルなど原因が示されたら、メッセージが示す形式で保存し直して添付する |
PDF too large (max 100 pages, 20MB). Try reading the file a different way (e.g., extract text with pdftotext). / PDF is password protected. Try using a CLI tool to extract or convert the PDF. / The PDF file was not valid. Try converting it to text first (e.g., pdftotext). |
添付した PDF を処理できなかった(ここは非対話の形。対話のセッションでは、Esc を2回押してやり直すよう促される) | 大きすぎる PDF は、全体を添付する代わりに、Read ツールでページ範囲を読ませる、または pdftotext でテキストを取り出してパスで参照する。保護された PDF や無効な PDF は、パスワードを外すか、元のアプリから書き出し直す |
pdftoppm is not installed. Install poppler-utils (e.g. \brew install poppler` or `apt-get install poppler-utils`) to enable PDF page rendering.` |
Read ツールで PDF のページ範囲を読んだときに出る。ページ範囲の読み取りは pdftoppm でページを描画する |
メッセージのコマンドで poppler-utils を入れる(ほかのプラットフォームでは、pdftoppm を PATH に置く poppler のビルド)。詳しくは ツール一覧 の Read ツールを見る |
リクエストの形式#
| 文言 | 原因 | 対処 |
|---|---|---|
API Error: 400 ... Extra inputs are not permitted ... context_management |
Claude Code と API の間のプロキシや LLM ゲートウェイが、anthropic-beta ヘッダーを落とした。Claude Code は、context_management のようなベータ専用のフィールドを、それを有効にする anthropic-beta ヘッダーと一緒に送る。ゲートウェイが本文は転送してヘッダーを落とすと、API が認識しないフィールドを見る |
ゲートウェイが anthropic-beta ヘッダーを転送するよう設定する(ネットワークと LLM ゲートウェイ)。代替として、起動前に CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 を設定する |
API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid / API Error: 400 ... tools.N.custom.input_schema.properties: Property keys should match pattern '^[a-zA-Z0-9_.-]{1,64}$' |
リクエストの中のツールが宣言した input_schema が API の JSON Schema の検証に通らず、API がリクエスト全体を拒否した。tools. の後ろの数字は、リクエストのツール一覧での位置で、探せる名前ではない。1つ目は、スキーマが JSON Schema の draft 2020-12 として有効でない、2つ目は、最上位のプロパティ名が引用されたパターンに合わない。Claude Code は、サーバーのツールを読み込むとき、この検証に通らない入力スキーマの MCP ツールを除外するので、通常、リクエストには含まれない。フラグの取得を止めたデプロイや、フラグが一度も届いていないマシンでは、どのツールが拒否されるかをサーバーのログに記録しても、そのまま送る。$schema で draft 2020-12 以外の方言を宣言するツールは、Claude Code が JSON Schema のメタスキーマで検査しない(最上位のプロパティ名の検査は引き続き適用)。v2.1.216 より前は、除外の検査はどのデプロイでも動かなかった |
v2.1.216 より前なら claude update を実行する。不正なスキーマを宣言する MCP サーバーを削除か無効にする(エラーはツールを位置でしか示さない。v2.1.216 以降は、各サーバーのログで、入力スキーマが検証に通らないツールを名指しする行を探す)。サーバーを保守しているなら、ツールの input_schema を直す(有効な JSON Schema で、最上位のプロパティ名は 1〜64 文字の ASCII の英数字と _・.・- だけ)。MCP サーバーをつなぐ を見る |
API Error: 400 ... tool_use.name: String should have at most 200 characters |
会話の履歴にあるツール呼び出しの名前が、API がリクエストで受け付ける 200 文字を超えている。Claude Code は、応答が届いたときと保存済みの会話を読み込むときに、その名前を 200 文字に切るので、呼び出しは No such tool available のツールのエラーで失敗し、この API エラーなしに会話は続く。v2.1.281 より前は、長すぎる名前が履歴に残り、会話を再送する /compact や --resume を含むすべてのリクエストが拒否され、会話が詰まった |
claude update を実行してから会話を再開する(更新された版が、トランスクリプトを読み込むときに長すぎる名前を直すので、詰まっていた会話が動く) |
API Error: 400 due to tool use concurrency issues. Run /rewind to recover the conversation. / API Error: 400 orphaned tool_result in conversation history. Run /rewind to recover the conversation. / API Error: 400 duplicate tool_use ID in conversation history. Run /rewind to recover the conversation. / API Error: 400 ... unexpected \tool_use_id` found in `tool_result` blocks/API Error: 400 ... thinking blocks ... cannot be modified` |
会話の履歴が不整合な状態で API に届いた。どれも、履歴の tool_use・tool_result・thinking ブロックの並びが、API が期待するものと合わないという意味 |
Opus 4.7 か Opus 4.8 なら、先に claude update を実行する(v2.1.156 より前は、通常のツール使用でこのエラーが出ることがあり、/rewind では消えない)。/rewind か Esc を2回で、壊れたターンより前のチェックポイントへ戻って続ける(チェックポイントと巻き戻し) |
API Error: 400 ... Invalid \data` in `redacted_thinking` block` |
会話の履歴の前のターンが持つ redacted_thinking ブロックを、API が受け付けられず、400 で拒否した。Claude Code は、前の思考を除いてリクエストを1回再試行するので、エラーを見せずにセッションは続く。v2.1.282 より前は、拒否されたブロックを保ち、以降のターンがすべて同じエラーで失敗した |
v2.1.281 以前で、毎ターンこのエラーで失敗するなら、claude update を実行してセッションを再開する。続くなら、/clear で、そのブロックを持たない会話を始める |
[Unsupported tool content removed] |
Claude Code が Anthropic の API に直接つながり、保存済みのセッションを読み込むかプレビューするとき、Anthropic の API が受け付けないツールの内容を取り除き、取り除いた内容が2つの thinking ブロックの間にあった場所にこの行を残す。そのような内容は、Anthropic の API でないものが API の形式で答えたときにセッションのファイルへ入る(たいてい ANTHROPIC_BASE_URL で設定した、別のプロバイダーのツール呼び出しを変換するサードパーティのプロキシ) |
プレースホルダーの行が出ただけなら、対処は不要(取り除いた内容なしでセッションは続く)。再開したセッションが、毎ターン 400 のエラーで失敗するなら、claude update を実行して、もう一度再開する(v2.1.246 より前は内容を取り除かない) |
API Error: 400 messages.6: role 'system' must precede an 'assistant' message or end the array; ... |
会話の中で、API が受け付けない位置に system メッセージがあるため、API が 400 で拒否した。Claude Code は、リマインダーや添付のテキストの一部を、会話の中の system メッセージとして送る。API が位置を拒否すると、そのテキストを通常の user メッセージに替えて、リクエストを1回再試行する。それでもエラーが出るのは、拒否された system メッセージが Claude Code の外すものでない場合で、たいてい Claude Code と API の間のプロキシや LLM ゲートウェイが、自前の system メッセージを足している。v2.1.280 より前は、この文言を認識せず、Claude Code 自身が送った system メッセージが拒否されたときにもこのエラーが出て、以降のターンが同じように失敗した | ANTHROPIC_BASE_URL で設定したプロキシやゲートウェイの背後で、毎ターン繰り返すなら、プロキシなしで接続して原因を確かめ、運営者に報告する。/clear で新しい会話を始める(そこでも出るなら、原因は保存済みの会話でなくリクエストの経路にある) |
API Error: 400 ... Invalid \encrypted_content` in `search_result` block/API Error: 400 ... Invalid `encrypted_index` in `text` block/API Error: 400 ... Failed to decrypt web search result content/API Error: 400 ... Invalid `encrypted_stdout` in `encrypted_code_execution_result` block` |
会話の履歴に、API が復号できない、ホスト型の Web 検索の内容がある。API のホスト型 Web 検索ツールの結果は、API だけが読める暗号化されたフィールドを持つ(encrypted_stdout は、ホスト型のコード実行の出力)。Claude Code 自身の WebSearch ツールは検索結果を平文で記録するので、これらのブロックは、ホスト型の Web 検索を動かしたプロキシや LLM ゲートウェイ経由で会話に入るのが普通。Web 検索の3つの文言では、Claude Code は、検索の呼び出し・結果・引用を送る内容から外して、リクエストを1回再試行するので、エラーを見せずにセッションは続く。encrypted_stdout の文言には、そのような復旧がない |
v2.1.281 以前で、Web 検索の文言のどれかで毎ターン失敗するなら、claude update を実行してセッションを再開する。続くか、メッセージが encrypted_stdout を示すなら、/rewind で、その内容を足したターンより前のチェックポイントへ戻るか、/clear で、それを持たない会話を始める。プロキシやゲートウェイの背後なら、運営者に報告する |
モデルの選択#
| 文言 | 原因 | 対処 |
|---|---|---|
There's an issue with the selected model (claude-...). It may not exist or you may not have access to it. Run /model to pick a different model. |
設定したモデル名が認識されない、またはアカウントにアクセス権がない。v2.1.160 以降、末尾のヒントは画面で変わる(ここは対話の形) | 対話の CLI:/model で、アカウントで使えるモデルから選ぶ。非対話モード(-p):--model に有効な別名か ID を渡すか、ANTHROPIC_MODEL を設定する(この画面ではエラーに Run --model と出る)。Agent SDK:モデルをプログラムで設定するので、ヒントはない。TypeScript は Options の model、Python は ClaudeAgentOptions(model=...) を設定する。完全なバージョン付きの ID でなく、sonnet や opus のような別名を使う(別名は保守された既定に解決されるので、古くならない。モデル・effort・fast mode)。CLI で間違ったモデルが戻ってくるなら、どこかに古い ID が設定されているので、優先順位の順に、モデルを設定できる場所を確認して、古い値を消す。期限切れの claude.ai のログインは「Login expired」として報告される(v2.1.206 より前は、更新できない期限切れのログインが、すべてのモデルをこのエラーで失敗させた。古い版でこれが出たら /login する)。Google Cloud の Agent Platform の構成は、そのトラブルシューティングを見る |
Model "Sonnet5" is not a recognized model id. Did you mean 'claude-sonnet-5'?(近いものがなければ Run /model to see available models.) |
モデルの切り替えに渡した文字列が、Claude Code がモデルとして使えないものなので、リクエストを送らずに切り替えを拒否し、セッションは現在のモデルのまま。Agent SDK や、Anthropic API 上のアプリでは、表示名や空文字列のように、モデル ID になりえない文字列だけがこのエラーになる(この例では、アプリが表示名 Sonnet 5 を送り、メッセージが空白を除いて繰り返す)。リモートコントロールの端末からモデルを選ぶときは、Claude Code が文字列をローカルで確認し、モデルの別名・Claude Code が一覧するか自分で設定したモデル・claude- で始まる ID のどれでもない文字列がこのエラーになる。それ以外のプロバイダーや、ゲートウェイ・独自の ANTHROPIC_BASE_URL の背後では、空文字列だけがこのエラーになる |
引数なしの /model で選択画面を開き、アカウントで使えるモデルから選んで、そこに出る別名か ID を渡す。新しい Claude Code の版だけが対応する別名を使ったなら、claude update を実行するか、モデルの完全な ID を渡す(サーバーが、そのモデルに最小の Claude Code の版を求めることもある)。v2.1.200 より前に保存されたモデルは、この検査では直らない。古い値が戻ってくるなら、モデルを設定できる場所から消す |
Model 'claude-opus-9' not found(プロバイダー固有のモデル ID がある環境では、Try '...' instead と、代わりのモデルのプロバイダーの ID の提案が付くことがある) |
名前でモデルに切り替えたが、その名前のモデルが存在すると確認できなかった。名前がモデルの別名やローカルで受け付ける別の綴りでないとき、Claude Code は API で確認する | 引数なしの /model で、アカウントで使えるモデルから選ぶか、sonnet のような別名を使う。完全な ID を打ったなら、プロバイダーのモデル一覧で確かめる(新しく出たモデルは、プロバイダーやリージョンが提供する前に Anthropic API で使えることがある)。Agent SDK では、setModel() がこのメッセージで失敗し、セッションは前のモデルで動き続ける。TypeScript の SDK では supportedModels() で切り替えられるモデルを一覧できる。v2.1.265 より前は、/model が opusplan[1m] の別名の綴りもこのエラーで拒否した。そのときは、更新するか、設定か --model でモデルを設定する |
Couldn't confirm model "claude-sonnet-5" with the API. Try again, or run /model to see available models.(デスクトップアプリが起動したセッションでは Try again. で終わる) |
Agent SDK の setModel() か、デスクトップアプリなど Claude Code の CLI を動かすアプリ経由でモデルを切り替え、API のエンドポイントでモデル ID を確認するリクエストが、5秒以内に応答を得られなかった |
もう一度モデルを切り替える。失敗し続けるなら、Claude Code が API のエンドポイントに届くか確認する(ネットワークと接続のエラー) |
API error: 429 <the server's explanation> · model not changed |
/model <name> で選んだ、またはセッションに接続したアプリがモデルの切り替えを要求した。Claude Code がモデルを確認するために送る最小のリクエストを、API が、固有の項目がない理由(レート制限やサーバーエラーなど)で拒否した。中ほどは、HTTP のステータスとサーバー自身の説明 |
サーバーの説明に従う(レート制限や 5xx なら、待ってもう一度モデルを選ぶ)。固有の文言がある拒否は、前後の項目で扱う(「Model not found」と「Model is restricted by your organization's settings」など) |
Claude Opus is not available with the Claude Pro plan. If you have updated your subscription plan recently, run /logout and /login for the plan to take effect.(デスクトップアプリが動かすセッションでは、コマンド名の代わりに sign out and sign in again) |
有効なサブスクリプションのプランに、選んだモデルが含まれていない | /model で、プランに含まれるモデルを選ぶ。最近プランを上げても出るなら、/logout のあとに /login する(保存済みのトークンは、サインインしたときのプランを反映するので、claude.ai で上げても、再認証するまで既存のセッションには効かない)。各プランに含まれるモデルは、料金のページを見る |
API Error: 400 Claude Code 2.1.219 does not support this model; version 2.1.255 or newer is required. Run 'claude update', or update the Claude desktop app, then try again. / API Error: 400 Claude Code 2.1.240 is older than the minimum version required by your organization's policy. Run 'claude update', or update the Claude desktop app, to continue. |
Claude Code の版が、必要な最小の版より低いので、API が 400 でリクエストを拒否した。選んだモデルが新しい版を要する(サーバーがモデルごとに確認する)か、組織のポリシーが版を要する。API が確認する版は、リクエストを出した Claude Code のバイナリが報告するもの | そのバイナリを更新して、新しいセッションを始める。バイナリの出どころで更新のしかたが違う(セルフホスト環境を除く):自分で入れた Claude Code は claude update、Claude のデスクトップアプリはアプリを更新、VS Code の拡張が同梱するバイナリは拡張を更新、Agent SDK のパッケージが同梱するバイナリは SDK のパッケージを上げてアプリケーションを再起動する。安定版(stable)のリリースチャンネルで claude update しても、最新の安定版より先へは進まず、それが必要な版より古いことがある。その場合は latest チャンネルへ移してから更新する。組織が管理設定でチャンネルや版を固定しているなら、管理者に変えてもらう。モデルごとの文言なら、現在のセッションで別のモデルに切り替えて作業を続けられる(CLI は /model、TypeScript の SDK は setModel())。組織のポリシーの文言なら、続ける前に更新する |
Model "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead.(/model で制限されたモデルを入力すると、Model '<name>' is restricted by your organization's settings. Run /model to choose a di...) |
組織の管理者が、claude.ai の管理コンソールでこのモデルを無効にした、または管理設定が availableModels の許可リストや deniedModels で除外している。/model <name> で制限されたモデルを入力すると、拒否されて、セッションは現在のモデルのまま。エージェント・スキル・コマンドの名前が前に付いた通知は、そのサブエージェントが求めたモデルに制限が適用されたという意味で、サブエージェントは代わりのモデルで動き、セッションのモデルは変わらない。opus・sonnet・haiku・fable のモデルのファミリーの別名は、最新の版でなくそのファミリーへの要求として扱う |
/model で、組織が許すモデルから選ぶ(制限されたモデルは選択画面に出ない)。制限されたモデルが --model・ANTHROPIC_MODEL・設定ファイルの model・サブエージェント/スキル/コマンドの frontmatter の model で設定されていたなら、その値を消すか更新する。制限されたモデルが必要なら、組織の管理者に有効にしてもらう(モデル・effort・fast mode) |
Can't switch to the default model: your organization's managed settings block it (claude-opus-4-6) in "deniedModels", and none of the models they allow can be used as the default instead. Ask your administrator to update "deniedModels" or "availableM... |
/model の選択画面の Default の行を選ぶか /model default と入力して、既定のモデルを選んだ。Claude Code が切り替えを拒否したので、セッションは現在のモデルのまま。コロンのあとが、何が止めたかを示す:your organization's managed settings block it ... in "deniedModels" は、管理された拒否リストが、既定が解決するモデルを止めている。your organization allows only the models listed in "availableModels" は、availableModelsMatch を設定した管理の availableModels の許可リスト。Claude Code couldn't read your organization's managed settings to check which models they allow は、管理設定を読めず、確認なしで適用せずに切り替えを拒否した |
deniedModels と availableModels の文言は、/model で、組織が許すモデルを名前で選ぶ。管理者に、メッセージが示す管理設定を更新してもらう。couldn't read の文言なら、Claude Code を再起動し、続くなら管理者に管理設定を確認してもらう。これらの管理設定で、Claude Code can't start のメッセージとともにセッションが始まらないなら、「Managed settings block the default model」を見る |
Model switch to Opus 4.6 was blocked by a PreModelSwitch hook: Opus 4.6 is retired for this project. Use a newer model. |
PreModelSwitch フックが、自分かクライアントが求めたモデルの切り替えを承認しなかったので、セッションは現在のモデルのまま。コロンのあとの理由:フックが書いた理由(切り替えを拒否した、または確認を求めた)。PreModelSwitch hook <name> did not respond before its timeout(timeout までに答えないフックは切り替えを止める)。confirmation required, and this session cannot ask(フックが理由なしに ask と答え、コントロールリクエストには確認のプロンプトを出す手段がない。-p の実行の /model も同じ状態を報告する)。so organization-managed PreModelSwitch hooks could not be checked(組織の管理されたプラグインが配る PreModelSwitch フックを特定できなかった)。a PreModelSwitch hook failed before answering と PreModelSwitch hooks were cancelled (the control stream closed) before answering(フックの実行が判定なしで終わった。Claude Code はそれを承認としない)。v2.1.260 より前は、管理されたプラグインの拒否の文言が plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log だった |
フックが書いた理由なら、その求めに応えるか、フックが許すモデルを選ぶ。タイムアウトなら、止まっているコマンドを直すか、そのフックの timeout を上げてから、もう一度切り替える。ほかは claude --debug で原因を見る(フックのリファレンス) |
Set model to Fable 5.1 for this session only · couldn't save it as your default: ~/.claude/settings.json can't be written (EROFS) |
/model <name> や選択画面の Enter で、既定として保存するモデルを選んだが、Claude Code が選択を、ユーザーの設定ファイル ~/.claude/settings.json に書けなかった。切り替え自体は適用されたので、いまのセッションは新しいモデルで動く。ファイルのパスのあとが理由:can't be written (<code>) は、OS のエラーコード付きで書き込みが失敗した(ファイル、またはそれがリンクする先が、書き込みを拒むファイルシステムにあるときの EROFS など)。isn't valid JSON は、ディスクのファイルが解析できず、読み戻せない内容を上書きしないよう、そのままにした。couldn't confirm it was saved as your default (~/.claude/settings.json is still being written) で終わる通知は、3秒後も書き込みが終わっていない(バックグラウンドで続くので、既定は保存されているかもしれない)。v2.1.265 より前は、書き込みが失敗しても、saved as your default for new sessions と通知した |
ファイルを書き込み可能にして、もう一度切り替える。構文エラーなら直してから、もう一度切り替える(設定ファイルの仕組み) |
API Error: 400 ... "thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior. |
Claude Code の版が、選んだモデルの最小の版より古い。CLI が、そのモデルがもう受け付けない思考の設定を送った | claude update を実行して Claude Code を再起動する。Opus 4.7 は v2.1.111 以降、Opus 4.8 は v2.1.154 以降、Sonnet 5 は v2.1.197 以降、Opus 5 は v2.1.219 以降、Opus 5.5 は v2.1.280 以降、Sonnet 5.5 は v2.1.284 以降が必要。更新できないなら、/model で Opus 4.6 か Sonnet 4.6 を選ぶ。安定版(stable)のリリースチャンネルでは、更新しても最新の安定版より先へは進まず、それが必要な版より古いことがある。その場合は latest チャンネルへ移してから更新する。Agent SDK では、代わりに SDK のパッケージを上げる(Opus 4.8 は TypeScript の SDK v0.3.154 以降と Python の SDK v0.2.88 以降、Sonnet 5 は TypeScript の SDK v0.3.197 以降、Opus 5 は TypeScript の SDK v0.3.219 以降、Opus 5.5 は TypeScript の SDK v0.3.280 以降、Sonnet 5.5 は TypeScript の SDK v0.3.284 以降が必要)(Agent SDK の本番運用) |
API Error: Effort 'xhigh' isn't available with thinking turned off on this model · run /effort high to continue, or turn thinking back on (unset MAX_THINKING_TOKENS=0) |
拡張思考を切って、high より上の effort level で動かした。モデルがその組み合わせを受け付けず、API がリクエストを拒否した。· のあとのヒントはセッションで変わる(非対話では use --effort high (or the effortLevel setting)、デスクトップアプリが動かすセッションでは you can lower effort to High)。v2.1.242 より前は API 自身の API Error: 400 output_config.effort 'xhigh' is not supported when thinking is disabled on this model. Use effort 'high' or below, or enable thinking. が出た |
effort level を high 以下に下げる(モデル・effort・fast mode)。思考を戻す(MAX_THINKING_TOKENS を unset する、設定から "alwaysThinkingEnabled": false を消す、など) |
Advisor set to Opus 4.8 に続く Note: Opus 4.8 is less capable than the current main model (Sonnet 5.5), so the advisor will not activate. Choose a more capable advisor, or switch to a smaller main model. |
アドバイザーモデルがセッションのメインモデルより下位なので、Claude Code は選択を保つが、メインモデルのリクエストにアドバイザーを付けない。同じ状態を伝える文言が他に2つある。対話のセッションの通知 Advisor will not activate on the main model (advisor is less capable); subagents may still use it and may use more tokens · /advisor、--advisor 付きの起動時の警告 "<advisor>" cannot advise "<main model>" (the advisor must be at least as capable as the main model). The advisor will not be used for the main model.(セッションはそのまま始まる)。v2.1.287 より前は、組み合わせの序列が違い、Opus 4.7 か Opus 4.8 のメインモデルに Sonnet 5.5 のアドバイザーの組み合わせでこの注記を出していた(いまは受け付ける)。Sonnet 5.5 のメインモデルに Opus 4.8 のアドバイザーのように、いまは注記になる組み合わせを付けていたこともある |
より上位のアドバイザーか、より下位のメインモデルを選ぶ(序列と、メインモデルごとに受け付けるアドバイザーは、公式ドキュメントのアドバイザーの節に出ている)。アドバイザーのモデルを使えるサブエージェントに使わせたいなら、そのままにしておく |
API Error: 400 ... max_tokens must be greater than thinking.budget_tokens |
設定した拡張思考の予算が、応答の最大の長さを超えていて、実際の答えに残る余地がない | CLAUDE_CODE_MAX_OUTPUT_TOKENS を思考の予算より大きくする(予算と出力の長さの関係は モデル・effort・fast mode を見る) |
ポリシーと安全性#
| 文言 | 原因 | 対処 |
|---|---|---|
API Error: Opus 4.6 can't help with this. Start a new session to continue. Send feedback with /feedback or learn more: https://www.anthropic.com/legal/aup(モデル名が記録されていないときは Claude。Request ID と Message ID も出る。v2.1.219 より前は Claude Code is unable to respond to this request, which appears to violate our Usage Policy ...) |
会話の内容が、利用ポリシーの確認に引っかかり、API が応答を断った。確認は、最新のプロンプトだけでなく、会話全体を評価するので、同じセッションで新しいメッセージを送っても、たいてい同じ拒否が再び起きる。--continue や --resume で閉じて開き直しても同じ(履歴が残るため)。拒否が誤りだと考えるなら、Request ID と Message ID をサポートに伝える |
Esc を2回か /rewind で、拒否を起こしたターンより前のチェックポイントへ戻り、言い換えるか別の方法をとる(チェックポイントと巻き戻し)。どのターンか分からなければ、/clear で同じプロジェクトの新しい会話を始める(前の会話はディスクに残り、/resume で使える)。非対話モード(-p)では巻き戻しが使えないので、--continue なしの新しいセッションで言い換えたプロンプトを再試行する(ポリシーの確認はモデルで変わるので、--model で別のモデルに替えて直ることもある) |
API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Apply to the Cyber Verification Program to reduce these inte... |
モデルの安全対策が、会話の内容をサイバーセキュリティの話題として検知した。メッセージは検知したモデルを示し、正当なサイバーセキュリティの作業へのアクセスを認める Cyber Verification Program へのリンクを含む。Opus 5.5 と Sonnet 5.5 では、メッセージの書き出しが違う。Amazon Bedrock・Google Cloud の Agent Platform・Microsoft Foundry では、サイバーセキュリティの検知が、この代わりに「利用ポリシーの拒否」のメッセージになる。安全対策自体はサーバー側で v2.1.203 より前からあり、それ以降のクライアントの版が変えたのは文言だけ:v2.1.203〜v2.1.218 は <model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:、v2.1.203 より前は <model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption: と免除の申請のフォームのリンク |
この内容が仕事に必要なら、Cyber Verification Program でアクセスを申請する。リクエストがサイバーセキュリティの話題でなかったなら、/feedback で誤検知を報告する。同じセッションで続けるには、Esc を2回か /rewind で、検知を起こしたターンより前のチェックポイントへ戻り、別の方法をとる |
API Error: Output blocked by content filtering policy |
API の出力コンテンツフィルターが、Claude の生成中の応答を止めた。文言は API 由来。Claude Code はブロックが届いた時点で表示してそのリクエストを終え、再試行も非ストリーミングでの再送も、フォールバックモデルへの切り替えもしない。v2.1.285 より前は、ブロックされたリクエストを、ときに数分間、再送・再試行してからエラーを見せることがあった | 最後のメッセージを言い換えるか、別の進め方にする。引き金になったターンより前のチェックポイントへ戻るなら、Esc を2回押すか /rewind を実行する(チェックポイントと巻き戻し) |
インストールのエラー#
インストールスクリプト・claude install・claude update で、Claude Code をインストールまたは更新するときに出るエラーです。command not found・PATH・権限・TLS の問題は インストールとログイン を見てください。
| 文言 | 原因 | 対処 |
|---|---|---|
Installation was killed before it could finish (exit code 137). This usually means the system ran out of memory. Claude Code needs roughly 512MB of free memory to install. Free up memory, then run this script again. |
claude install の段階がシグナルで終了させられた。Linux の終了コード 137 は SIGKILL で、メモリの少ないホストではたいてい、カーネルの OOM killer。ほかの致命的なシグナル、macOS の終了コード 137 では、メモリ不足の説明なしの Installation was killed before it could finish (exit code <N>) と実際の終了コードが出る |
ほかのプロセスを止めてメモリを空け、インストーラを再実行する。スワップを足すか、大きなインスタンスへ移す(スワップファイルのコマンドは インストールとログイン) |
The connection dropped while downloading the update (attempt 3/3: aborted). Check your network — proxies sometimes cut off large downloads.(claude update は、標準エラーにこのメッセージの前に Error: Failed to install native update を出す) |
claude install か claude update が Claude Code のバイナリを取得している間に、ダウンロードサーバーへの接続が閉じ、再試行で回復しなかった。接続が切れる・転送が止まる、などで再試行する。括弧の中は、失敗した試行と根本のネットワークのエラー。接続されたままでも10分以内に終わらないダウンロードは、再試行せず Download timed out: exceeded the total deadline で失敗する(期限内に終われない遅い接続は、再試行しても終わらないため)。プロキシやゲートウェイは、長い転送を終える前に閉じることがあり、Claude Code のバイナリは大きい |
もう一度 claude update を実行する(ネットワークが正常なら、たいてい次の実行で成功する。タイムアウトのメッセージなら、速い、または制限の緩いネットワークで実行する)。プロキシが必要なら、インストーラや claude update の前に HTTPS_PROXY を設定する。社内プロキシが転送を閉じ続けるなら、ネットワークチームに、downloads.claude.ai からのダウンロード全体を許してもらう。シェルから claude doctor を実行して、インストールの診断を見る |
コマンドラインのエラー#
claude のコマンドラインとそのサブコマンド、プロンプトで入力したコマンド名、プロンプトの前にシェルコマンドで文脈を集める /security-review のようなコマンドから出るエラーです。
起動時のオプションと環境#
| 文言 | 原因 | 対処 |
|---|---|---|
--bg and --print conflict: --print never starts the interactive session that \claude agents` attaches to, so the job would be unattachable. The prompt is the positional — drop --print: `claude --bg '<task>'`.` |
--bg を -p か --print と同じ claude の呼び出しで組み合わせた(v2.1.198 以降)。--bg は、あとから claude agents でつなぐバックグラウンドセッションを始める |
-p か --print を外す。--bg はプロンプトを位置引数で受けるので、claude --bg "<task>" が完全なコマンド(エージェントビュー)。プロンプトを非対話で実行して結果を出すなら、--bg を外して claude -p "<task>" |
Error: Invalid --agents configuration: と、失敗の内容の行(Error: --agents takes a JSON object, or a file path only with --print (-p) / Error: --agents file not found: <path> もある) |
--agents に渡した値が不正なので、claude はセッションを始めず終了コード 1 で終わる(--safe-mode か CLAUDE_CODE_SAFE_MODE を渡すと、--agents は無視される)。確認は順に行い、最初に失敗したもので止まる:(1) 値が { で始まるのに JSON として解析できない、または --agents のファイルの内容が解析できない(invalid JSON: の1行にパーサーのメッセージ)、(2) 解析できるが、エージェントの定義が CLI 定義のサブエージェントのスキーマに合わない(問題ごとに1行)、(3) エージェント名が - で始まる(<name>: agent names must not start with '-')。問題の行が20を超えると、最初の20行と …and N more。--print では --agents はインライン JSON の代わりに JSON ファイルのパスも受け付ける(v2.1.281 より前は、インライン JSON だけで、ファイルのパスは不正な JSON として扱った)。--agents takes a JSON object, or a file path only with --print (-p) は、対話のセッションで値をファイルのパスとして読んだ。--agents file not found: <path> は、そのパスにファイルがない({ で始まらず有効な JSON でない値はパスとして読まれるので、シェルが壊したインライン JSON もこれで失敗しうる) |
メッセージの各問題を直して、コマンドをもう一度実行する(CLI 定義のサブエージェントが取るフィールドは サブエージェント)。定義をインライン JSON で渡すか、-p を付けてファイルから読ませる。パスと引用符を確認する |
Cloud sessions cannot be created from a --restricted session: they would not enforce it. |
--restricted でセッションを始めると、そこからクラウドセッションを作ることを拒否する(新しいセッションは、制限が強制されない外側で動くため)。v2.1.248 より前は --restricted のフラグがなく、それ以前の版はフラグ自体を未知のオプションとして拒否する |
制限されたセッションの中で、作業をローカルで実行する。起動のしかたを自分で決められるなら、--restricted なしの新しい claude セッションから、クラウドセッションを作る |
Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.(組織のポリシーがまだ読み込まれていない・取得できないときは Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.) |
組織の allow_remote_sessions ポリシーがオフなので、クラウドセッションとそれを使うコマンド(/teleport・/remote-env・/web-setup など)が使えない。端末からクラウドセッションを作るときと、それらのコマンドを実行するときに出る。サーバー側の組織のポリシーで、ローカルの設定・環境変数・CLI フラグでは上書きできない |
組織の Owner に、claude.ai/admin-settings/claude-code の Claude Code の管理設定で、クラウドセッションを有効にしてもらう(クラウド(Web)で使う)。確認できなかったという文言なら、ネットワーク接続を確認し、Claude Code を再起動してもう一度試す |
Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values(先に2つの検査:JSON として解析できない値は Error: --json-schema is not valid JSON、JSON だがオブジェクトでないものは Error: --json-schema must be a JSON object) |
非対話モードで --json-schema に渡したスキーマが JSON Schema のコンパイルに失敗したので、claude はプロンプトを実行せず終了コード 1 で終わる。2つ目のコロンのあとは検証器の診断で、失敗したキーワードや場所を示す。"format": "email" のような format キーワードを使うスキーマは有効(Claude Code は format を注釈として受け付ける) |
診断が示すスキーマの部分を直して、コマンドをもう一度実行する。動くスキーマとコマンドは ヘッドレス実行(-p) を見る |
Error: Settings file exceeds the 2MiB limit: /path/to/settings.json |
--settings に渡したファイルが 2 MiB を超えているので、claude は読み込まず、起動時に終了コード 1 で終わる。v2.1.214 より前は、ファイルをサイズの確認なしで読んでいた。通常のファイルでない --settings のパスも同じように拒否する:デバイス・FIFO・ソケットは Error: Cannot use settings file (Not a regular file (device, FIFO, or socket)) とパス、ディレクトリも拒否する |
--settings が、2 MiB 未満の通常の JSON の設定ファイルを指すようにする(書式は 設定ファイルの仕組み) |
The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory. / error: The current working directory was deleted, so that command didn't work. Please cd into a different directory and try again.(権限の変更など別の理由では Can't read the current directory (EACCES). Start Claude Code from a different directory.) |
シェルが入ったあとに削除か移動されたディレクトリ(ほかのシェルが消した worktree や一時ディレクトリなど)から claude を起動した。Claude Code が作業ディレクトリを読めないので、始める前に終了コード 1 で終わる。2つの形の原因と直し方は同じ。macOS で ~/Desktop・~/Documents・~/Downloads・iCloud Drive のディレクトリの EPERM は、たいてい macOS が、ターミナルのアプリからそのフォルダーを止めている(そのフォルダーを読むほかのコマンドも同様に失敗する) |
存在するディレクトリ(ホームやプロジェクトのディレクトリ)に移って、claude をもう一度実行する。同じパスにディレクトリが作り直されたなら、シェルが削除されたほうを持っている。cd "$PWD" を実行するか、ディレクトリを出て入り直してから、claude を実行する。macOS の EPERM は、ターミナルのアプリを Cmd+Q で終了し、開き直してそのフォルダーへ戻り、claude を実行する。そのフォルダーの ls がまだ失敗するなら、「System Settings > Privacy & Security > Files and Folders」で、そのフォルダーをオンにする |
ENOSPC: no space left on device, mkdir '/tmp/claude-501' / Temp directory /tmp/claude-501 is not a directory (may be an attacker-planted symlink). Refusing to use it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it. / Temp directory /tmp/claude-501 is owned by uid 502, expected 501. Refusing to use it — another user may have pre-created it. ... / Temp directory /tmp/claude-501 is not readable (its mode may have been altered, or a path component denies search). Refusing to use it — restore its permissions (chmod 0700) or remove it. ... |
macOS と Linux で、Claude Code は起動時に、システムの一時ディレクトリの下の claude-<uid>(または CLAUDE_CODE_TMPDIR で上書きした場所)に、非公開の一時ディレクトリを作る。ディレクトリを作れない、または同名のものが安全でない形で既にあると、使わずに終わる |
ENOSPC は、一時ディレクトリのあるボリュームの空きを作る。Refusing to use it の形は、リンクが指す先でなく、メッセージが示す項目そのものを消してから Claude Code を起動し直す(owned by uid の形は、管理者かそのユーザーだけが消せる)。is not readable は、そのディレクトリを chmod 0700 するか、消して起動し直す。どの場合も、CLAUDE_CODE_TMPDIR を自分が管理するディレクトリに設定して Claude Code を起動し直し、拒否されたパスはそのままにしておく |
packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again. |
作業ディレクトリのサブディレクトリに /add-dir したが、Claude Code がそのディレクトリを実際の場所に解決できなかった。作業ディレクトリのサブディレクトリはすでにファイルにアクセスできるので、/add-dir はそのスキル・コマンド・エージェントを読み込むだけ。読み込む前に、シンボリックリンクを解決した実際の場所が作業ディレクトリの中か確認する。v2.1.261 より前は、作業ディレクトリが /net/<host> の自動マウントの上にあるとき(Claude Code は設計上パスを解決しない)、サブディレクトリへのすべての /add-dir で出た(ディレクトリは正常で、再試行しても直らなかった) |
パスが、作業ディレクトリの中の実在のディレクトリを指すか確認し、/add-dir をやり直す。メッセージはファイルのアクセスを変えず、そのディレクトリの .claude/ の内容が読み込まれなかったことだけを報告する |
Error: Workspace not trusted. Please run \claude` in /Users/you/project first to review and accept the workspace trust dialog.(ホームディレクトリでは Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead ...`) |
信頼していないディレクトリで、claude remote-control か別名の claude rc でリモートコントロールのサーバーモードを始めたが、コマンドが信頼するかを聞けなかった。ターミナルが小さすぎて、ディレクトリを信頼すると何が有効になるかを表示できない、またはサイズを報告しなかった場合の、Error: Workspace not trusted. で始まる2つの形もある(ウィンドウを大きくするか通常のターミナルに替える)。ホームディレクトリは、信頼ダイアログがホームディレクトリの信頼を保存しないので、そこで承認しても満たせない。Trust <directory>? に n か Enter を答えると、ディレクトリを示す Remote Control did not start が出て終了コード 1 で終わる(もう一度 claude rc を実行する)。v2.1.284 より前は、端末でも聞かなかった |
先に端末でディレクトリを信頼する:そこで claude rc を実行して y と答えるか、claude を実行してワークスペースの信頼ダイアログを承認し、元のコマンドをもう一度実行する。ホームディレクトリでは、プロジェクトのディレクトリへ移ってそこでリモートコントロールを始める |
Error: \--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude r...` |
remote-control の動詞の前に、リモートコントロールが始めるセッションを制限・設定する claude のグローバルフラグ(--settings・--setting-sources・--permission-mode など)を付けた。落としても害のないグローバルフラグ(--verbose・--model・ラッパーが注入する --session-id・--plugin-dir)は無視して始まる。まだ害がないと認識されていないフラグでも拒否するので、新しい版で足されたフラグが、あとの版で害なしと印が付くまで、このメッセージに出ることがある。v2.1.248 より前は、グローバルフラグが先に来ると claude remote-control は自分のフラグを受け付けず、unknown option で失敗した |
フラグを動詞の前から外し、リモートコントロール自身のオプションを動詞のあとに渡す(claude remote-control --help が一覧する)。拒否されたフラグが --permission-mode なら、claude remote-control --permission-mode <mode> で、リモートコントロールが始めるセッションの権限モードを設定する |
Error: Input must be provided either through stdin or as a prompt argument when using --print |
素の claude は、対話の UI を始めるのに標準出力が端末である必要がある。標準出力がリダイレクトされている、またはコンソールが本物の端末でない(PowerShell ISE や一部の IDE の出力ペイン)と、claude は非対話で動く |
対話で使うなら、本物の端末(PowerShell ISE でなく Windows Terminal や PowerShell のコンソール、IDE の出力ペインでなく統合ターミナル)で claude を実行する。1回きりなら、プロンプトを渡す:claude -p "your question"、または echo "your question" | claude -p |
Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print |
非対話モードで、空白・タブ・改行だけからなるプロンプトを、API が見える文字のないメッセージを拒否するので、送らずに拒否する。claude -p のプロンプト引数かパイプした標準入力では、このメッセージで終了する。実行中の --input-format stream-json か Agent SDK のセッションに送ったメッセージでは、モデルを呼ばずにターンを終え、セッションは使えるまま(通知とターンの結果の文は Blank prompt — the message was only whitespace, so nothing was sent to the model.)。v2.1.229 より前は、空白だけのメッセージを API に送り、400 のエラーで拒否された |
プロンプトに見える文字を入れる。スクリプトが変数やファイルからプロンプトを作るなら、Claude Code を呼ぶ前に、元が空でないか確認する |
Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded th... |
claude -p --input-format stream-json に、改行なしで 268,435,456 文字を超える入力を標準入力へ送ったので、Claude Code は標準エラーにこのエラーを出し、さらにバッファせず終了コード 1 で終わる。改行なしでそれほど長い入力は、たいていバイナリのファイルや、誤ってパイプしたプレーンなログの出力など、stream-json の生成元でないという意味。予算を超える1つのメッセージも同じ検査で失敗する |
標準入力に何が流れているか確認する。--input-format stream-json では、すべてのメッセージが改行で終わる1行の JSON でなければならない。プレーンテキストを送るなら、--input-format stream-json を外す(claude -p は既定で標準入力からプレーンテキストのプロンプトを読む) |
Unknown command: /hepl. Did you mean /help? |
対話のターミナルのセッションで、このセッションのどのコマンドにも一致しない / の名前を送ったので、何も実行せず名前を報告する。メニューが一覧する最も近いコマンド名や別名を提案し、近いものがないと名前で終わる。原因は、打ち間違い(/hepl と /help)、プラットフォーム・プラン・認証方法などの要件を満たしていないので、このセッションでは使えないコマンド、このセッションにインストールや接続のされていないプラグインや MCP サーバーのコマンド。一致しない / の名前をこう答えるのは、対話のターミナルのセッションだけ。ほかのセッション(-p の実行・Agent SDK のアプリケーション・デスクトップアプリの Code タブ・VS Code 拡張のチャットパネル・クラウドセッションとルーティン)では、プロンプトを通常のメッセージとして Claude に送り、コマンドが実行されなかったという注記と一覧を添える(そのセッションで実行できない組み込みコマンドは、Claude に送らず、使えないと答える。v2.1.274 より前は、クラウドセッションとルーティンだけが一致しない名前を Claude に送った)。/ の後ろの最初の語が記号で始まる(Lean の doc comment を開く /-- など)プロンプトは、コマンドとして扱わず、通常のメッセージとして Claude に送る。v2.1.236 より前は、入力した名前に近い一致をメニューが挙げているときに Enter を押すと、その一致を実行したため、/hepl の打ち間違いが /help を実行した |
提案された名前を実行するか、/ に続けて名前の一部を入力して、このセッションで使えるものを見る。文書化されたコマンドが未知と報告されるなら、スラッシュコマンド一覧 の、その行にある要件を確認する |
/recap only runs when you ask for it yourself in this session: from the terminal, the Claude app or claude.ai/code, or over Remote Control. A message relayed from Slack, Teams or a project thread, or sent by a routine or another program, can't request it. |
/recap の要求が、自分の入力から来ていない。Slack・Teams・Projects のスレッドからセッションへ中継されたメッセージ、またはルーティンや別のプログラムが送ったプロンプトの中にあった。中継されたメッセージは、自分で書いたものでも、この通知になる(中継や自動のメッセージが、セッションを動かすアカウントの本人からのものか、Claude Code には見分けられないため)。claude -p に渡した /recap と、自分の Agent SDK のアプリが、起動したセッションへ送る /recap は、自分の入力として数える |
自分でセッションを開き、そこで /recap を実行する(ターミナル・デスクトップアプリ・モバイルアプリ・claude.ai/code・リモートコントロール)。ルーティンや別のプログラムが送ったなら、そのプロンプトから /recap を外す |
Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one. |
1回の claude の起動で、--append-subagent-system-prompt と --append-subagent-system-prompt-file を一緒に渡したので、セッションを始めず終了コード 1 で終わる。v2.1.283 より前は、--system-prompt と --system-prompt-file、--append-system-prompt と --append-system-prompt-file を一緒に渡しても同じように終了した(それらの組はいまは組み合わせられる)。その版では、メッセージが、組み合わせた組を名指しする |
どちらか一方の形だけにする。固定のプロンプトのファイルと実行ごとのテキストを合わせたいなら、両方のフラグを渡さず、テキストをファイルへ統合してから起動する |
Claude Code can't read the keyboard here: stdin is not a terminal |
-p なしで claude を実行して対話のセッションを始めようとしたが、標準入力が端末でない。パイプやリダイレクトで渡されたか、claude を起動したプログラムが独自の入力ストリームを渡した。対話のセッションにはキー入力を読む端末が要り、端末がないときの動きはプラットフォームで違う。Windows では、メッセージを標準エラーへ出し、画面を始めず終了コード 1 で終わる。macOS と Linux では、/dev/tty からキー入力を読んでセッションを始め、パイプで渡されたテキストが最初のプロンプトになる。/dev/tty が開けないときだけメッセージが出て、その1行目は Windows の文言の代わりに /dev/tty を名指しする。v2.1.287 より前は、メッセージの代わりに画面を始め、何も表示しないか、Raw mode is not supported を含むエラーで失敗した |
対話で使うなら、入力をパイプやリダイレクトせずに、端末で直接 claude を実行する(Windows では、Windows Terminal・PowerShell・コマンドプロンプト)。対話の画面なしで返信がほしいときは、スクリプトなどから -p を付け、プロンプトを引数か標準入力で渡す(claude -p "your question"、echo "your question" | claude -p)。--continue と --resume <session-id> とも一緒に使える。claude install の最中なら、インストールのトラブルシューティングの「Raw mode is not supported」を見る |
Failed to resume the conversation. Run claude --resume <session-id> to retry, or claude to start a new session. |
claude --resume の選択画面で選んだセッションの保存されたトランスクリプトを、読めない・処理できないので、一部しか読み込まれない状態で続けずに、プロセスを終える。メッセージのあと、終了コード 1 で終わる。実行中のセッションの中の /resume の選択画面は、代わりに会話の中に Failed to resume conversation と出て、現在のセッションは動き続ける |
メッセージのセッション ID で claude --resume <session-id> を実行して再試行する。v2.1.285 より前の版で、再試行しても同じように失敗するなら、claude update を実行して再開し直す(それらの版は、保存されたトランスクリプトに読めないエントリがあると、再開が失敗する)。それでも失敗するなら、claude を実行して新しいセッションを始める |
No conversation found with session ID: <session-id> |
claude --resume <session-id> にセッション ID を渡したが、一致する保存されたトランスクリプトがなかった。終了コード 1 で終わる。Claude Code は、現在のプロジェクト、次にこのマシンのほかのすべてのプロジェクトから ID を探す。原因:ID の打ち間違い(非対話の実行では、--output-format json の出力の session_id フィールドが ID)、トランスクリプトの削除(保持期間(既定30日)を過ぎると、保持の掃除の規則で消す)、別のマシン(トランスクリプトはローカルに保存されるので、動かしたマシンで再開する)、重複したコピー(~/.claude/projects の下のプロジェクトのディレクトリをコピーして、同じ ID のトランスクリプトが2つあると、どちらかを適当に再開せず、このメッセージを出す) |
対話のセッションなら、claude --resume でセッションの選択画面を開き、Ctrl+A でこのマシンのすべてのプロジェクトに広げてから、セッションを選ぶ。claude -p や Agent SDK で作ったセッションは選択画面に出ないので、元の実行が出力した session_id と ID を照合する |
Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-manageme...(コマンド自身の失敗の行(Failed to resume session <session-id> など)のあとに出る) |
Windows でセッションを再開したとき、保存されたトランスクリプトのファイルは普通に開いたが、そのあとの読み取りがシステムエラー EBADF で失敗した。システムのエラーは、読み取りが失敗した理由を示さない。ファイルの読み取りを傍受するほかのソフトウェア(セキュリティ・暗号化・エンドポイント管理のツール)で起きうる。claude --resume や claude -p のコマンドは、表示のあと終了コード 1 で終わる。v2.1.282 より前は、説明なしで、claude --resume <session-id> は Failed to resume session <session-id> で終わり、-p の実行はシステムのエラーの文面だけ(Failed to resume session: EBADF: b...)を出した |
セッションのトランスクリプトを置くフォルダー(既定では %USERPROFILE%\.claude\projects)を、ファイルの読み取りをスキャン・傍受するソフトウェア(セキュリティ・暗号化・エンドポイント管理のツールなど)から除外する。除外を足せないなら、そのソフトウェアの許可アプリに Claude Code を足す。そのあと、セッションをもう一度再開する |
Cannot switch renderers while work is running in the background / Cannot switch renderers in this session — it has restrictions a restart can't carry over (permission rules set for this session only). Nothing was changed. Running /tui fullscreen in a session started without them switches every... |
レンダラーを切り替えると、Claude Code はプロセスを再起動する。再起動しないと決めているセッションで /tui を実行したので、切り替えず、何も保存しない。while work is running in the background は、再起動すると放棄されるバックグラウンドの作業(バックグラウンドのシェルやサブエージェント)がある。in this session は、再起動したプロセスに引き継げない制限がセッションにある(v2.1.234 より前は、再起動して、制限なしで再起動後のセッションが動いた)。括弧の中は、見つかった制限:launch flags: a custom system prompt, a tool allowlist, or restricted settings(再起動後に渡し直さない起動時のフラグ:--system-prompt など)、permission rules set for this session only(フックや SDK の呼び出し元の権限の更新が、session を行き先として deny か ask のルールを足した。セッションスコープの allow のルールは止めない)、ask-before-running rules with no command-line form(--allowed-tools と --disallowed-tools として戻すルールと並べて、ask のルールを足したが、それに当たるフラグがない)、permission rules a command line cannot carry intact と added directories a command line cannot carry intact(セッション途中でルールやディレクトリのパスを足し、再起動後のコマンドラインでは損なわずに運べない) |
バックグラウンドの作業は、終わるのを待つか /tasks で止める。制限のあるセッションでは、それらなしで始めたセッションで /tui fullscreen を実行するか、戻すなら /tui default を実行する(Claude Code は、その場で tui の設定を保存する) |
Error: Couldn't open Claude Desktop (\open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and try again.` |
セッションで /desktop(別名 /app)か、シェルで claude --desktop を実行したが、Claude Code が Claude Desktop を開くために使うシステムのコマンドが失敗した。括弧の中は、失敗したコマンド(macOS は open、Windows は rundll32)と、終了ステータス、出ていればエラー出力の最初の行。v2.1.285 より前は Open Claude Desktop and run /desktop again. で終わり、v2.1.275 より前は Failed to open Claude Desktop. Please try opening it manually. で、何が失敗したかを示さなかった |
Claude Desktop を自分で開いてから、/desktop か claude --desktop をもう一度実行する。失敗したコマンドの完全なエラー出力を読むには、/debug でデバッグログを有効にして /desktop をもう一度実行するか、claude --desktop --debug-file <path> を実行して、デバッグログを見る(デスクトップアプリ) |
Couldn't update your Zed keymap, so it was left unchanged.(Couldn't read your Zed keymap, so it was left unchanged. / Your Zed keymap isn't a readable list of keybindings, so it was left unchanged. / Couldn't back up your Zed keymap; not modifying it.)と、追加するキーバインディングのブロック |
Zed で /terminal-setup を実行したが、Claude Code が Zed の keymap.json の更新を完了できなかったので、ファイルはそのまま。各メッセージは keymap のパスを示し、自分で足すキーバインディングのブロックで終わる。最初の行が原因:ファイルを読めない(ファイルの権限など)、読めたが、// のコメントと末尾のカンマを許しても、キーバインディングのブロックの配列として解析できない、.bak のバックアップを隣にコピーできなかった(何も変更しない)、統合した結果が、バインディングを持つ有効な keymap として検証されなかったので捨てた(キーが重複したキーバインディングのブロックなど)。v2.1.247 より前は、// のコメントや末尾のカンマを使う Zed の keymap を解析できず、自分のバインディングだけでファイル全体を置き換えながら、バインディングをインストールしたと報告した |
メッセージのブロックを、メッセージが示すパスの keymap.json の最上位の配列へ写す。isn't a readable list of keybindings は、構文エラーを直すか、ファイルの最上位の値を配列にしてから、/terminal-setup をやり直す(ターミナル・表示・音声入力) |
Skill usage reports are not available on this connection. |
スマートフォンやブラウザから、リモートコントロール経由で /skill-doctor を実行した。Claude Code は、スキルの利用状況のレポートをリモートコントロールでは送らない |
セッションが動いているマシンの端末で /skill-doctor を実行するか、そこで claude -p "/skill-doctor" を実行する(スキル) |
Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here. |
モバイルアプリや Web からリモートコントロール経由で /output-style を実行した、またはコマンドがセッションに中継されたメッセージで届いた |
組み込みのスタイルを選ぶ(例:/output-style concise)。カスタムのスタイルを使うには、プロジェクトの .claude/settings.local.json に outputStyle を設定するか、セッション自身の端末があればそこで /output-style <style> を実行する(出力スタイル) |
Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here. |
設定の出どころから local が外れているセッション(Agent SDK のセッションなど)で、/output-style <style> か /config outputStyle=<style> で出力スタイルを切り替えようとした |
セッションの設定の出どころに local を足して、もう一度切り替える。そのセッションが読み込む設定ファイル(プロジェクトの .claude/settings.json や ~/.claude/settings.json)に outputStyle キーを設定する(TypeScript の SDK では outputStyle を設定する) |
MCP のコマンド#
| 文言 | 原因 | 対処 |
|---|---|---|
`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly. |
claude import を実行したが、Claude Code がインポートの流れをオフと判断したので、始めずに終了コード 1 で終わる。Claude Code は、Anthropic から取得してディスクにキャッシュしたフィーチャーフラグで claude import を有効にする。キャッシュされた値がオフという意味。原因は、インストール後にセッションを始めていないのでまだフラグを取得していない(最初の claude import では、機能が使える場合でも出ることがある)、Amazon Bedrock・Google Cloud の Agent Platform・Microsoft Foundry・Claude Platform on AWS・Claude apps gateway 経由で使っている、DISABLE_TELEMETRY・DO_NOT_TRACK・DISABLE_GROWTHBOOK・CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC を設定していて、フィーチャーフラグの取得が止まり、claude import が使えないまま。v2.1.222 より前は、インポートの流れがオフのビルドは別の動作だった |
新しいインストールでは、claude を起動してセッションが読み込まれるのを待ち、終了して、claude import をもう一度実行する。フィーチャーフラグの取得がオフのままの環境では、設定を自分で作る(MCP サーバーは claude mcp add、CLAUDE.md のファイルを作る) |
Could not read Claude Code config — run \claude` with no arguments to recover it.` |
Claude Code が ~/.claude.json(ログインとプロジェクトごとの状態を保存するファイル)を解析できないときに、claude import を実行した。サブコマンドは、可用性の確認のためにこのファイルを読む |
引数なしで claude を実行する(Claude Code が不正なファイルを検出して、リセットを提案する)。そのあと claude import をもう一度実行する。手で編集した内容を残すなら、エディタで ~/.claude.json の JSON の構文を直してから、claude import を再実行する |
Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores. |
claude mcp add-from-claude-desktop で選んだサーバーの1つを、Claude Code が追加できなかった。コマンドは、選んだほかのサーバーは取り込み、追加できなかったサーバーごとに1行を出す。サーバー名のあとの文が理由。最も多いのは名前の検査:Claude Desktop はサーバー名に空白やピリオドなどを許すが、claude mcp は英数字・ハイフン・アンダースコアに限る。v2.1.205 より前は、最初に失敗したサーバーで止まった |
claude_desktop_config.json のサーバー名を、英数字・ハイフン・アンダースコアだけにして、claude mcp add-from-claude-desktop をもう一度実行する。そのサーバーを、有効な名前で claude mcp add か claude mcp add-json で直接足す(MCP サーバーをつなぐ) |
Cannot add MCP server to scope: managed |
claude mcp add か claude mcp add-json に --scope managed を付けた。そのスコープは、組織が managedMcpServers の管理設定で提供するサーバーを持つので、Claude Code は書き込まない |
書き込めるスコープ(local・user・project)にサーバーを足す(--scope なしは local)。組織のすべてのユーザーへ提供するには、配布する管理設定の managedMcpServers に足す |
Cannot add MCP server: your organization's managed settings allow only MCP servers that plugins provide. Install a plugin that provides this server, or ask your administrator to make it available. |
組織の管理設定が strictPluginOnlyCustomization を true か mcp を含む一覧にしている状態で、claude mcp add か claude mcp add-json を実行した。この設定では ~/.claude.json と .mcp.json の MCP サーバーを読み込まないので、読み込まれないサーバーを保存せず終了コード 1 で終わる。claude mcp add-from-claude-desktop は、選んだサーバーごとに、この文言を理由に「取り込めなかった」と報告する。/import は、追加を試みた MCP サーバーごとにこの文言を出し、見つけたほかの項目は取り込む。v2.1.284 より前は、これらのコマンドがサーバーを保存して成功と報告し、そのサーバーは読み込まれなかった |
そのサーバーを提供するプラグインをインストールする。または管理者に、プラグインでサーバーを配ってもらうか、リモートの HTTP か SSE のサーバーなら managedMcpServers で提供してもらう(プラグインを使う・組織への導入と管理設定) |
Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again. |
プロジェクトの .mcp.json を読むコマンド(--scope project の claude mcp add か add-json、claude mcp remove)が、現在のディレクトリのファイルが通常のファイルでない、または 2 MiB より大きいと判断した。v2.1.257 より前は、.mcp.json の FIFO で出力なしに永遠に待ち、/dev/zero のようなデバイスファイルへのシンボリックリンクで、プロセスが終了させられるまでメモリが増え続けた |
現在のディレクトリの .mcp.json に何があるか確認する。プロジェクトスコープの形式の通常の JSON ファイルに置き換えるか、消してから、コマンドをもう一度実行する |
MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.(削除では was not removed from で、then remove the server again で終わる。local スコープのサーバーは、パスにプロジェクトのディレクトリが続く) |
user か local スコープのサーバーの claude mcp add・add-json・remove を実行したが、変更が ~/.claude.json に届かなかった(どちらのスコープもそこに保存される)。v2.1.283 より前は、変更がファイルに届かなくても成功と報告した |
メッセージが示すファイルを書き込み可能にするか、サンドボックスの外でコマンドを実行してから、同じ追加か削除をもう一度実行する |
MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run \claude mcp get example` to check, then add the server ...(削除では may not have been removed で、then remove the server again if it is still listed` で終わる) |
user か local スコープのサーバーの追加・削除で、Claude Code が ~/.claude.json を読み戻して変更を確認できなかった。v2.1.283 より前は、変更が確認できなくても成功と報告した |
claude mcp get <name> で、変更がディスクにあるか確認する(local スコープは、プロジェクトごとなので、サーバーが属するプロジェクトのディレクトリで実行する)。追加のあとにサーバーが無い、削除のあとにまだ一覧にあるなら、同じ追加か削除をもう一度実行する |
"gmail" is Anthropic-hosted and doesn't support local OAuth. Connect it via Settings → Connectors on claude.ai (requires \claude login`), then it'll be available here automatically.` |
サードパーティの ID プロバイダー経由で認証する、Anthropic ホストのコネクタのホストを指す URL の MCP サーバー(microsoft365.mcp.claude.com・gmail.mcp.claude.com など)のサインインを始めた |
claude mcp remove <name> で自分の項目を消す(同じ URL の claude.ai のコネクタを隠さないよう)。消したら、Claude Code で使うアカウントでサインインしたまま、claude.ai/customize/connectors でサービスをつなぐ。つなぐと、コネクタは自動で Claude Code に現れる |
Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Aut... |
headersHelper が Authorization ヘッダーを渡す MCP サーバーが、接続に HTTP 401 か 403 で答えたので、Claude Code は接続を失敗として報告する。Claude Code は接続の試行ごとにヘルパーを再実行するので、トークンのローテーションの競合のような一時的な拒否のあとの再試行は、新しい認証情報で成功しうる。v2.1.248 より前は、ヘルパーが Authorization ヘッダーを渡すサーバーでも OAuth の検出を実行し、Incompatible auth server: does not support dynamic client registration で失敗しうる |
headersHelper のコマンドを、Claude Code が実行するとおりに、自分で実行する(Claude Code が実行するディレクトリから、Claude Code がそのために設定する環境変数を付けて)。ヘルパーかその認証情報の出どころを直したら、/mcp でサーバーを選んで「Reconnect」を選ぶ |
Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none |
--permission-prompt-tool に渡したツールが、実行が最初に権限の判断を要したとき、接続済みの MCP ツールの中になかった(サーバーが接続しなかった、など)。Available MCP tools: のあとの一覧が、接続された MCP ツール |
サーバーが起動し、接続を保つか確認する(同じディレクトリで claude mcp list を実行し、サーバーが connected と一覧されるか見る)。ツール名が、サーバーが公開する mcp__<server>__<tool> の名前と合うか確認する。サーバーの起動に30秒より長くかかるなら、MCP_TIMEOUT を上げる |
OAuth callback port <port> is already in use — another process may be holding it. Run \lsof -ti:<port> -sTCP:LISTEN` to find it.(Windows は netstat -ano | findstr :<port>`) |
リモートの MCP サーバーに OAuth でサインインするとき、Claude Code はサインインのコールバックを受けるローカルの待ち受けを始める。その待ち受けに必要なポートをほかのプロセスが使っていると、サインインがこのメッセージで失敗する | メッセージのコマンドでポートを使っているプロセスを見つけ、止めるか終わるのを待つ。ほかのプログラムがそのポートを恒常的に要るなら、サーバーに別のリダイレクト URI を登録し、MCP_OAUTH_CALLBACK_PORT か --callback-port で、そのポートを設定する。そのあと、/mcp でサーバーを選ぶなどして、サインインをやり直す |
No available ports for OAuth redirect |
リモートの MCP サーバーの OAuth のサインインで、Claude Code がコールバックを受ける待ち受けに使うポートを確保できなかった。v2.1.268 より前は、OS が割り当てるポートに切り替えなかったので、自分で選んだポートを待ち受けられなかっただけでもこのメッセージが出た(Windows のホストで Hyper-V がポートの範囲を予約している場合などで起きうる) | セキュリティソフトやサンドボックスのポリシーが、127.0.0.1 での待ち受けを止めていないか確認し、Claude Code がローカルポートを使えるようにする。そのあと、/mcp でサーバーを選ぶなどして、サインインをやり直す |
Git・コードレビューと GitHub#
| 文言 | 原因 | 対処 |
|---|---|---|
Error: Shell command failed for pattern "!\git diff --name-only origin/HEAD...`": [stderr] fatal: ambiguous argument 'origin/HEAD...': unknown revision or path not in the working tree.(git logや別のgit diff` を引用することもある) |
/security-review は、ブランチを origin/HEAD(origin リモートの既定のブランチを記録するローカルの参照)と比べて、レビューの文脈を作る。その参照がないと失敗する。Git が origin/HEAD を作るのは、リモートが既定のブランチを広告し、fetch の refspec がそれを含むときだけで、コミットのあるリモートの通常の git clone ならそうなる。ない場合:単一ブランチか CI のチェックアウト(fetch の refspec が狭い)、サーバー側の HEAD が誰も push していないブランチを指すリモート、origin リモートがない・一度も fetch していないリポジトリ。動的な文脈を注入するどのスキルでも同じエラーが出て、失敗した注入のコマンドが、そのスキルの呼び出しを中止する。コマンドの実行前に出る兄弟の文言:Shell command permission check failed for pattern "..."(コマンドの権限の確認が許さなかった)、Skill <name> requires bash (\shell: bash` in frontmatter) but Git Bash was not found(frontmatter が bash を要求するのに、マシンに無い。Git for Windows を入れるか、frontmatter を shell: powershell` に変える) |
リモートの既定のブランチを名指しして参照を作る:git remote set-head origin <default-branch>(ローカルの追跡参照 origin/<default-branch> があれば動く。なければ、先に fetch する。単一ブランチのクローンなど)。ブランチを名指ししたくなければ、git fetch origin のあとに git remote set-head origin --auto を実行する(リモートが既定のブランチを広告しないと error: Cannot determine remote HEAD で失敗する)。リポジトリにリモートがなければ、git remote add origin <url> で足して fetch してから、参照を作る。リモートが空なら、先に git push -u origin HEAD で自分のブランチを push して、そのブランチを set-head のコマンドで指す |
Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer ...(PR のレビューでは PR #<N> is too large for ultrareview で始まり、PR のファイル数と行数が出る) |
ブランチとベースのブランチの差分(コミットしていない変更とステージ済みの変更を含む)が、ultrareview のサイズの上限を超えているので、/code-review ultra と claude ultrareview のサブコマンドは拒否する |
作業により近いベースのブランチを渡す(/code-review ultra develop など)。変更を小さなブランチに分けて、それぞれレビューする(メッセージが挙げたファイルが、最も多くの変更行を占めるので、それらを別のブランチへ移すところから始める)(コードレビューと ultrareview) |
Could not find merge-base with main. Pass the base branch explicitly (e.g. \/code-review ultra develop`) or make sure you're in a git repo with a main branch.` |
/code-review ultra と claude ultrareview は、ブランチとベースのブランチの差分をレビューし、2つが共有するコミットを要する。git merge-base が見つけられないと、クラウドのセッションを作る前に拒否する。最初の文のあとのヒントは、Claude Code が見たもので変わる:ベースのブランチを渡していない(リポジトリの既定のブランチと比べて、明示して渡すよう案内する)、クローンにあったベースのブランチを渡した(Make sure <branch> exists locally or on origin (try \git fetch origin <branch>`))、クローンになかったベースのブランチを渡した(origin から fetch して比べたが、<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, ...`) |
ほかのブランチが本当のベースなら、明示して渡す:/code-review ultra <branch>。クローンに完全な履歴がないかもしれないなら、git fetch --unshallow origin を実行して、レビューをやり直す |
Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — \git checkout -b <name>` — then rerun /code-review ultra.` |
コミットはあるがブランチがないチェックアウト(git init のあと git fetch <url> と git checkout FETCH_HEAD をすると、参照のない detached HEAD になる)。Claude Code は、クラウドへアップロードするため、リポジトリを git のバンドルにまとめる。v2.1.221 より前は、このチェックアウトでも追跡中のすべてのファイルをレビューしようとして、アップロードが失敗した |
現在のコミットにブランチを作り(git checkout -b <name>)、レビューをやり直す |
Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an accou...(セッションで /web-setup が使えないときは、claude.ai のリンクだけを示す) |
/code-review ultra <PR#> か claude ultrareview <PR#> で、クラウドのセッションを作る前に、Claude Code が、Claude アカウントにつないだ GitHub アカウントがあるかをサーバーに尋ねた。ない、または接続が期限切れ。v2.1.248 より前は、起動前にこの確認をしなかった |
/web-setup で GitHub CLI のログインを Claude アカウントにつなぐか、claude.ai/connect-github でアカウントをつなぐ。つないだ1分後に、レビューをやり直す |
Your connected GitHub account can't see <owner>/<repo> — usually the Claude GitHub app isn't installed on <owner> or wasn't granted this repo (web-connected accounts need it for private repos), or a different GitHub account is c...(セッションで /web-setup が使えないときは、アプリのインストールだけを示す) |
/code-review ultra <PR#> か claude ultrareview <PR#> で、Claude アカウントにつないだ GitHub アカウントが、PR のリポジトリを読めないので、クラウドでのクローンが失敗する。v2.1.248 より前は、起動前にこの確認をしなかった |
手元の gh CLI がそのリポジトリを読めるなら、/web-setup でそのログインを Claude アカウントにつなぐ。変更したら、レビューをやり直す |
Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead |
ローカルのリポジトリからクラウドセッションを始めたとき、2つの段階が一緒に失敗した:リポジトリのバンドルを作る・アップロードできなかった、アップロードの前に GitHub のクローンから始められるかを確認したが、その確認が一時的に失敗した。v2.1.251 より前は、GitHub の確認が一時的に失敗しただけでも Please set up GitHub on https://claude.ai/code で終わっていた(一時的な失敗は、セットアップの助言では直らない) |
少し待ってコマンドをもう一度実行する(GitHub の確認が通れば、Claude Code は GitHub のクローンからセッションを始められ、失敗したアップロードは起動を止めない)。再試行が失敗し続けるなら、メッセージの最初が、アップロードを止めたものを示す。自分で直せる原因なら、直して、ローカルのリポジトリからセッションを始められるようにする |
Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change be... |
ローカルのリポジトリをアップロードするクラウドセッションか、ブランチの ultrareview を始めたが、アップロードが git の設定の1つに従えない。メッセージは設定とその設定場所を示し、当たったケースの直し方で終わる。core.attributesFile と attr.tree でも同じ拒否が出て、それぞれ固有の直し方がある。メッセージは、include や includeIf で git の設定が取り込む設定ファイルを示すことがあり、その条件がこのリポジトリに当てはまらなくても出る |
メッセージの最後の文にある直し方を行う |
GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github |
/autofix-pr などで、ローカルのリポジトリからクラウドセッションを始めた。Claude アカウントにつないだ GitHub アカウントがない、または接続が期限切れなので、Claude Code が拒否する。/schedule でルーティンを作るときは、同じメッセージが、リポジトリ名つきのセットアップの注記として出るが、ルーティンの作成は止めない。v2.1.268 より前は、Claude GitHub App の確認の一時的な失敗として報告して、再試行かアプリのインストールを案内した(どちらも GitHub アカウントをつなげない) |
/web-setup で GitHub CLI のログインを Claude アカウントにつなぐか、claude.ai/connect-github でアカウントをつなぐ。つないだ1分後に、コマンドをやり直す |
Single sign-on authorization needed と <owner>/<repo> belongs to an organization that enforces SAML single sign-on, and your GitHub CLI token isn't authorized for it yet. |
/install-github-app で、組織が SAML のシングルサインオンを強制しているリポジトリを選んだ。セットアップの前に、Claude Code は GitHub CLI でリポジトリへのアクセスを確認し、GitHub が拒否した。v2.1.273 より前は、同じ状態で Admin permissions required の警告が出た |
gh auth refresh -h github.com -s repo,workflow で、repo と workflow のスコープで GitHub CLI のログインを再認可し、GitHub がシングルサインオンを求めたら組織を認可する。GH_TOKEN の個人アクセストークンで認証しているなら、github.com/settings/tokens でトークンの「Configure SSO」を選び、組織を認可する。/install-github-app をやり直す(GitHub Actions) |
Your GitHub organization has an IP allowlist that is blocking Claude. Add Claude's IP ranges to your GitHub allowlist. / Your GitHub organization requires single sign-on. Disconnect and reconnect GitHub on the Connectors page in Claude on the web, click Authorize next to your organization when GitHub asks, then try again. / Your GitHub organization's identity provider (Microsoft Entra ID) has a Conditional Access policy that is blocking Claude. Ask your GitHub Enterprise or Entra ID admin to allow Claude in that policy. |
/autofix-pr のような、クラウドセッションを始めるコマンドを実行した。セッションを作る前に、Claude Code は GitHub でそのリポジトリへの Claude のアクセスを確かめるが、GitHub の組織のポリシーが Claude をブロックしているので、GitHub が拒否した。Claude Code はそこで止まり、ポリシーを名指しするメッセージを出す。IP 許可リストが原因なら1つ目、シングルサインオンなら2つ目、Microsoft Entra ID の Conditional Access ポリシーなら3つ目 |
IP 許可リストなら、GitHub の組織かエンタープライズのオーナーに、Anthropic の送信元 IP アドレスを許可してもらう(アドレスと設定はネットワークと LLM ゲートウェイの GitHub の節)。シングルサインオンなら、claude.ai/customize/connectors で GitHub を切断してつなぎ直し、GitHub に聞かれたら組織の横の「Authorize」を押す。Conditional Access なら、GitHub Enterprise か Microsoft Entra ID の管理者に、そのポリシーで Claude を許可してもらう。変更後にコマンドをもう一度実行する |
プラグインのエラー#
プラグイン とマーケットプレイスの設定から出るエラーです。ここに無い文言のプラグインの問題は、プラグインのドキュメントを見てください。
| 文言 | 原因 | 対処 |
|---|---|---|
`plugin eval` is currently in early access / `plugin eval` is currently unavailable |
claude plugin eval か claude plugin eval init が、何もせず終了コード 1 で終わった。1つ目は、ビルドが v2.1.269(コマンドが一般提供になった最初の版)より古い。2つ目は、Anthropic がサーバー側でコマンドをオフにしている(手元で戻せるものはない) |
claude --version のあと claude update を実行し、新しいセッションでコマンドをやり直す(プラグインの評価(evals))。現在のビルドで2つ目が出るなら、もう一度 claude update して、あとで試す |
Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remo... |
公式の Anthropic のマーケットプレイス用に予約された名前で登録されているが、登録された出どころが anthropics の GitHub リポジトリでない。出どころが GitHub のリポジトリでも Git の URL でもない場合(ローカルのディレクトリなど)、中ほどの文は can only be used with GitHub sources from the 'anthropics' organization になる |
すでに登録済みなら、claude plugin marketplace remove <name> で外し、公式の github.com/anthropics のリポジトリから追加し直す。予約される前にその名前を使っていたサードパーティのマーケットプレイスを公開しているなら、名前を変えて、利用者に自分の出どころから追加し直してもらう。予約された名前の一覧は、マーケットプレイスのスキーマの項を見る |
Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name. / known_marketplaces.json has an entry named "claude.code.plugins", another spelling of the reserved marketplace name "claude-code-plugins", so it is ignored. Remove it with: claude plugin marketplace remove claude.code.plugins(名前にシェルの引用が要るときは This marketplace's name is another spelling of "<reserved>", a reserved marketplace name. It is not exactly the reserved name it appears to be.) |
マーケットプレイスの名前は、予約された名前そのものではないが、Claude Code が予約された名前の別の綴りとして扱う。すでにそのような名前で登録されていると、その項目は読み込まれなくなり、/plugin・claude plugin install・claude plugin update が警告する |
予約された名前を綴らない名前に変えて、もう一度追加する。無視された項目の警告なら、示された claude plugin marketplace remove のコマンドを実行するか、~/.claude/plugins/known_marketplaces.json から項目を消す |
Claude Code refuses the marketplace name "anthropic-plugins-v2"(名前が真似ているときは、マーケットプレイス自身のエラーが Claude Code refuses this marketplace's name: it looks like one of Anthropic's own) |
登録されたマーケットプレイスの名前が、公式の Anthropic のマーケットプレイスをなりすましている。検査が止める前にその名前で登録されていたマーケットプレイスは、Claude Code がカタログを読むたびに名前を確認するので、マーケットプレイスと、そこからインストールしたプラグインが読み込まれなくなる。claude plugin marketplace add は、なりすましの名前を拒否する。v2.1.282 より前は、claude plugin list と /plugin が、なりすましの名前のプラグインも読み込みに失敗したと報告したが、原因がマーケットプレイスの名前だとは示さなかった |
claude plugin marketplace remove <name> を実行する(そのマーケットプレイスからインストールしたプラグインのアンインストールと、保存データの削除も行われる)。残すなら、保守者が名前を変えるのを待ってから、claude plugin marketplace update <name> を実行する。マーケットプレイスを公開しているなら、marketplace.json で名前を変える(利用者は、削除せず更新すればよい) |
Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools. |
/plugin install <plugin> --marketplace <source> でマーケットプレイスの追加を確認したが、その出どころから取得したカタログが名乗る名前が、すでに別の出どころから追加されたマーケットプレイスの名前と同じ |
すでに追加したものが望みのものなら、名前でインストールする:/plugin install <plugin>@<name>。新しい出どころに切り替えるなら、/plugin marketplace remove <name> のあと、インストールをやり直す |
Marketplace "<name>" is added but ignored / Marketplace "<name>" is registered but was refused (see the debug log) |
マーケットプレイスは追加されているが、無視された、または登録されているが拒否された。原因と直し方は、公式ドキュメントのプラグインのトラブルシューティングの「Marketplace is added but ignored」にある(デバッグログも見る) | claude --debug のログで、拒否された理由を確かめる(プラグインを使う) |
Hook from plugin formatter@acme-tools references ${user_config.*} in a shell-form command. The substituted value would be re-parsed by the shell. Use exec form instead — {"command": "<executable>", "args": ["${user_config.KEY}",... / Monitor "deploy-status" from plugin deploy-tools references ${user_config.*} in its command. The substituted value would be passed to a shell. Monitor commands cannot safely reference ${user_config.*}; have the monitor script read... / headersHelper for MCP server 'internal-api' references ${user_config.*}. The substituted value would be passed to a shell; read the value inside the helper script instead (e.g. from an env var set in the server's "env" block). |
プラグインのフック・モニター・MCP の headersHelper のコマンドが、シェルのコマンドの中で ${user_config.KEY} のプラグインのオプションを参照している。置き換えた値がシェルに再解釈される(またはシェルに渡される)ので安全でない。文言は、どの表面が参照したかで変わる(シェル形のフック・モニター・headersHelper) |
フックは、args の配列を足して exec 形で動かし、各 ${user_config.KEY} をシェルを介さない1つの引数にする(フックのリファレンス)。または参照をやめて、$CLAUDE_PLUGIN_... の環境変数から読む。モニターは、参照をやめて、モニターのスクリプトに設定ファイルから値を読ませる。headersHelper は、${user_config.KEY} を、シェルで解析されないサーバーの headers フィールドに移すか、ヘルパーのスクリプトの中で値を読む |
Plugin archive integrity check failed for https://artifacts.example.com/claude-plugins/my-plugin.zip: expected sha256 6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1, got ac52220c0914ef8ca6a602e4a7362f88d30fb02111... |
プラグインのマーケットプレイスの項目が sha256 のピン付きの archive の出どころを使い、ダウンロードしたファイルのダイジェストがピンと合わない。Claude Code はインストールを拒否する。原因は、作者がピンを計算した後に URL のファイルが変わった、作者が項目に誤ったダイジェストを入れた、URL が作者がピンしたものと別のファイルを返している |
プラグインを公開しているなら、URL が返すそのままのファイルのダイジェストを計算し直し(shasum -a 256 my-plugin.zip、PowerShell は Get-FileHash -Algorithm SHA256 my-plugin.zip)、マーケットプレイスの項目の sha256 を更新する。インストールする側なら、項目が直された可能性があるので /plugin marketplace update <name> でカタログを更新し、インストールをやり直す。更新してもダイジェストが合わないなら、インストールの前に、マーケットプレイスの持ち主にどのファイルをピンしたか尋ねる |
An npm plugin source must name a registry package |
npm のプラグインの出どころが、レジストリのパッケージを指していない。公式ドキュメントのプラグインのトラブルシューティングに、同じ見出しの節がある | プラグインの出どころの package に、レジストリのパッケージ名を書く(プラグインのリファレンス) |
The packages it lists are not installed / The packages it lists were not installed, because |
プラグインが列挙したパッケージがインストールされていない。理由は、because のあとに出る。公式ドキュメントのプラグインのトラブルシューティングに、同じ見出しの節がある |
メッセージの理由を直して、プラグインをもう一度インストールする(プラグインを使う) |
commands path escapes plugin directory: ./../shared.md(claude plugin のコマンドの出力では Path escapes plugin directory: ./../shared.md (commands))/ commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory / commands path escapes plugin directory: ./commands\deploy.md — its path contains a backslash, which is not resolved reliably on this platform |
プラグインの plugin.json やマーケットプレイスの項目で宣言した、コンポーネントのパスが、プラグイン自身のディレクトリの外に解決される。Claude Code はそのパスを落とす。書かれたままでプラグインの外を指すパス(../shared-utils)と、プラグインの外へ行き、マーケットプレイスのシンボリックリンクの規則に当てはまらないシンボリックリンクの両方を拒否する。macOS と Linux では、パスがプラグインの中にとどまっていても、バックスラッシュを含むコンポーネントのパスも拒否する(Windows 形式の区切りのパスは Windows では読み込めるが、ここでは読み込めない)。v2.1.251 より前は、マーケットプレイスの項目で宣言された commands のパスは、プラグインのディレクトリの外を指しても読み込んだ。v2.1.257 より前は、シンボリックリンクの先でなく、パスの綴りだけを検査した |
参照するファイルをプラグインのディレクトリの中へ移し、./ の相対パスで指す。プラグインの外のファイルへのシンボリックリンクなら、ファイルのコピーに置き換える。バックスラッシュを含むなら、パスをスラッシュで書く(./commands/deploy.md)。同じマーケットプレイスのほかのプラグインとファイルを共有するには、プラグインのディレクトリの中にシンボリックリンクで張る(シンボリックリンクの規則に従う) |
skills path could not be checked: /home/user/my-plugin/skills (ELOOP)(claude plugin list では Path not found: /home/user/my-plugin/skills (skills, ELOOP)) |
プラグインのパスが存在するかを OS に尋ね、「見つからない」以外のエラーが返ったので、そのパスが指すものを読み込まない。どこまで読み込まれるかは、失敗したパスで変わる:プラグインの既定のコンポーネントの場所(skills/ フォルダー・monitors/monitors.json・プラグインのルートの SKILL.md など)の1つなら、そのコンポーネントだけ。プラグイン自身のディレクトリなら、そのプラグインのものは何も読み込まれない。存在しないパスではこのエラーは出ない。/plugin では、プラグインの下に、パスと OS が返したコードが出る。原因:ELOOP(パスのシンボリックリンクが自分自身を指すか、ループする)、EIO か ESTALE(パスが壊れた、または古いネットワークマウントにある)、EACCES(パスの上のディレクトリが通過の権限を拒否している)。v2.1.265 より前は、確認できない既定のコンポーネントのフォルダーを無いものとして、エラーなしでそのコンポーネントなしに読み込んだ |
自分自身を指すシンボリックリンクを、実際のフォルダーに置き換えるか、削除する。パスがネットワークマウントにあるなら、共有を再マウントする。EACCES なら、パスの上のディレクトリの実行権限を戻す。直したら、/reload-plugins を実行するか Claude Code を再起動して、プラグインやコンポーネントを読み込む |
Cannot install my-plugin@my-marketplace: its marketplace entry path does not stay inside the marketplace directory (an absolute, climbing, network-shaped, backslash-containing or link-traversing entry, an entry of a fetched market...(インストール済みのプラグインでは、claude plugin list が failed to load と Plugin source path refused: ./my-plugin does not stay inside its marketplace directory. Check that the marketplace entry has a plain relative path. を出す) |
プラグインのマーケットプレイスの項目が宣言する出どころのパスを、Claude Code がマーケットプレイス自身のディレクトリの中の場所に解決できないので、プラグインをインストールも読み込みもしない。原因:絶対パス・.. でマーケットプレイスの外へ登る・ネットワークパスの綴り、macOS と Linux で先頭の ./ の後ろにバックスラッシュがある、リモートの出どころ(git や URL)から取得したマーケットプレイスの項目が、マーケットプレイスのディレクトリの外へ解決されるシンボリックリンクを通る、marketplace.json への直接の URL で追加したマーケットプレイスの相対の項目(そのファイルだけをダウンロードするので、パスが指すローカルのプラグインのファイルが存在しない) |
マーケットプレイスを保守しているなら、項目の source を、スラッシュ区切りの素の相対パス(./plugins/my-plugin など)で書き、通るシンボリックリンクはマーケットプレイスのディレクトリの中を指したままにする。直接の URL でマーケットプレイスを追加したなら、相対の項目は解決できない。マーケットプレイスの作者に、別のプラグインの出どころを使ってもらうか、その git リポジトリからマーケットプレイスを追加する |
Failed to load marketplace configuration(空のファイルでは ✘ Failed to install plugin "my-plugin": Failed to load marketplace configuration: JSON Parse error: Unexpected EOF)/ Marketplace configuration file is corrupted |
Claude Code は、追加したプラグインのマーケットプレイスを ~/.claude/plugins/known_marketplaces.json のレジストリファイルに持つ。レジストリが要る plugin コマンド(claude plugin install など)が、2つのメッセージのどちらかで失敗する。1つ目は、ファイルがあるが有効な JSON でない、または読めない(空のファイルも同じ)。2つ目は、有効な JSON だが、内容がレジストリのスキーマと合わない。v2.1.246 より前は、claude plugin install はこの失敗を報告しなかった |
~/.claude/plugins/known_marketplaces.json を開いて JSON を直すか、メッセージがスキーマに合わないと示す項目を直す。直せないなら、ファイルを削除するか中身を {} にして、各マーケットプレイスを claude plugin marketplace add <source> で追加し直す(Claude Code は、ユーザーや管理設定が宣言するマーケットプレイスを再登録する) |
Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it. |
claude plugin disable か /plugin の「Installed」のタブで、組織が必須とした、claude.ai から同期されたプラグインを無効にしようとした。何も保存されず、プラグインは有効のまま。必須のプラグインが依存しているプラグインを無効にしようとしたときも、同じように拒否し、それを必要とする必須のプラグインの名前を出す |
claude.ai の組織の管理者に、claude.ai でプラグインの必須の設定を変えてもらう |
✘ Failed to uninstall plugin "formatter": "formatter" was not uninstalled: it is still switched on in /home/user/project/.claude/settings.local.json, although the settings change reported no error. It is still installed. Take it...("<plugin>" was not uninstalled: で始まる) |
claude plugin uninstall か /plugin の「Installed」のタブの「Uninstall」が、止まった。Claude Code が enabledPlugins からプラグインの項目を消して、そのスコープの設定ファイルを読み戻すと、そこでまだプラグインが有効、またはプラグインを有効にしうるファイルを読めない・確認できなかった。中ほどがファイルと原因:it is still switched on in <file>, although the settings change reported no error(書き込みは成功と報告したが、読み戻すと項目が残っている)、it is still switched on in <file>, and the settings change failed (<error>)(括弧の理由でファイルを保存できなかった)、<file> is there and could not be read(ファイルはあるが、有効な JSON でないなど、設定として読めなかったので、プラグインを有効にしている可能性がある)、<file> (not read: it is on a network path or is a link to one, or could not be checked)(ファイルか、それを持つ .claude フォルダーが、ネットワークの場所へのリンクで、読まなかった)。claude plugin uninstall は終了コード 1 で終わり、--json では結果が failureCode: "settings_still_on" を持つ。/plugin も同じメッセージを出す |
メッセージの最後の文に従う:示されたファイルを直すか置き換える、またはそのファイルの enabledPlugins から、プラグインの項目を自分で消して、アンインストールをやり直す |
ツールのエラー#
Claude のツール呼び出しから出るエラーです。多くは Claude 自身が直します。自分の変更が要るものは、「対処」に書いています。
| 文言 | 原因 | 対処 |
|---|---|---|
Error: No such tool available: <tool name> / Error: No such tool available: read. Tool names are case-sensitive: call Read instead. |
Claude が、セッションのツール一覧にない名前でツールを呼んだ。Claude Code はこれをツール呼び出しの結果として Claude に返し、ターンは続く。ツールがない理由が分かるときは、ツール名のあとに、理由か代わりに呼ぶツールの名前を足す(2行目)。セッションを再開した直後は、MCP サーバーがまだ最初の接続の試行中に、Claude がそのツールを呼ぶことがある。そのとき Claude Code はサーバーを待ち、待ちが終わってもツールが使えなければこのエラーを返す(v2.1.284 より前は、そうした呼び出しは待たずにすぐ失敗した)。200 文字に切ったツール名の呼び出しもこのエラーで失敗する | 1回きりなら何もしなくてよい(Claude がエラーを読んでターンが続く)。MCP サーバーのツールの呼び出しが失敗し続けるなら、セッションで /mcp を、シェルで claude mcp list を実行して状態を確かめ、失敗したサーバーは /mcp から再接続する。Agent SDK では、SDK の MCP のエラー処理を見る |
Agent 'code-reviewer' would be spawned with zero tools — refusing. Its tools list resolved to nothing: unrecognized [Grpe]. Fix the agent's tools frontmatter or pass a different subagent_type. |
サブエージェントの tools リストのすべての項目が、使えるツールに一致しなかったので、Claude Code は、ツールがなく行動できないサブエージェントを起動しなかった。メッセージは項目を分類する:Unrecognized(どのツール名にも一致しない。Grep の Grpe のような打ち間違い)、Not available to subagents(実在するが、サブエージェントが使えないツール。バックグラウンドのサブエージェントは組み込みのツールが少ないので、前面のサブエージェントだけが使える項目もここに入る)、Matched no tools in this session(項目は有効だが、このセッションに、いま一致するツールがない。GitHub の MCP サーバーがつながっていない mcp__github__* や、深さの上限にあるサブエージェントの Agent など)。tools フィールドを省略したときは出ない。tools を空にした、または disallowedTools がすべての項目を除いたときも、拒否せず、ツールなしで起動する。v2.1.208 より前は、ツールなしで起動し、空の結果や分かりにくい結果を返すことがあった |
エラーが名指しした各項目を、サブエージェントが使えるツールと照らして直す。セッションにないツール(つながっていないサーバーの MCP ツール)の項目を消す。CronCreate のようにバックグラウンドのサブエージェントが落とすツールは、項目を消す(残すなら、フォークモードをオフにして、Claude に前面で動かさせる)。ツールを並べる代わりに tools フィールドを消すと、サブエージェントが使えるすべてのツールを渡せる。Agent だけの tools リストなら、深さの上限を上げるか、ほかのツールを少なくとも1つ与える(上限では Agent が渡されない)(サブエージェント) |
File is covered by a Read deny rule in your permission settings and cannot be edited.(Write ツールでは and cannot be written で終わる) |
Edit か Write ツールを、Read の拒否ルールに一致するパス(そのパスでの新しいファイルの作成を含む)に呼んだ。どちらのツールも、Claude が読み戻せる内容を変えるため、Claude Code は拒否する |
Claude にファイルを変更させたいなら、/permissions か設定で、Read の拒否ルールを消すか狭める。ファイルに触れさせたくないなら、ルールを残し、NotebookEdit ツールも止めるため、同じパスに Edit の拒否ルールを足す(権限ルール) |
Read file_path cannot contain null bytes (\0). Remove the null byte and try again. |
ファイルツールの呼び出しの、パスやパターンの引数に、ファイルシステムや検索ツールが受け付けないヌルバイトがあった。Read・Write・Edit・NotebookEdit・Glob・Grep が確認し、メッセージはツールと引数を示す。ツール呼び出しは失敗し、Claude がエラーを見て、ターンは続く。v2.1.281 より前は、Read・Write・Edit・NotebookEdit のパスのヌルバイトが、Path contains null bytes のエラーでターン全体を終え、ツールは実行されなかった |
自分では不要:エラーはツールの結果として Claude に返り、メッセージ自身が Claude にヌルバイトを除いてやり直すよう伝える |
subagent_type is required: the general-purpose agent is not available in this session. Available agents: ... |
Claude が subagent_type なしで Agent ツールを呼んだが、このセッションにはフォールバック先の汎用サブエージェントがない。非対話モードで CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1 を設定していて、組み込みのサブエージェントがすべて外れている、またはセッションのメインスレッドのエージェントが、general-purpose を除いた tools: Agent(...) の許可リストを持つ場合。v2.1.235 より前は、同じ呼び出しが Agent type 'general-purpose' not found で失敗した |
たいてい不要:メッセージがセッションにあるサブエージェントを一覧するので、Claude がそのどれかで再試行できる。Claude が失敗し続けるなら、tools: Agent(...) の許可リストに general-purpose を足すか、CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS を unset する |
Error: this write left the memory index at MEMORY.md at 214 lines, over its 200-line read limit. The write succeeded, but everything past the limit is silently dropped each time the index is loaded — entries at the end are alrea... |
Claude が auto memory の索引 MEMORY.md に書き込み、読み取り上限(200行か 25KB)を超えて残した。書き込みは成功したが、読み込まれるのは、先頭の200行か 25KB の、先に達したほうまで。上限に数えられるのは読み込まれる内容だけで、YAML の frontmatter とブロックレベルの HTML コメントは、索引を読み込む前に取り除かれるので、測定から除外される(v2.1.211 より前は、生のファイルを測っていた)。このエラーは、端末のバナーでなく、書き込みのあとに Claude へ渡るので、トランスクリプトでしか気づかないことがある。書き込みで上限を超えずに近づいただけなら、このエラーでなく、索引を詰めるやんわりした注意を返す |
Claude に MEMORY.md を書き直させる(1つの項目を1行にする、詳細をトピックのファイルへ移す、古い項目を統合するか捨てる)。自分で削るなら CLAUDE.md とメモリ の記憶の点検と編集を見る |
pkill: refusing to run — this pattern matches the Claude CLI process (PID 12345). Narrow the pattern, or target your own children with \pkill -P $$ ...`.` |
Bash ツールの pkill コマンドが、Claude Code のプロセス自身に一致するパターン(たいてい -f 付き)を使ったので、セッションを終えさせず、Claude Code が拒否した。拒否は、端末のバナーでなく Bash ツールの結果に出て、Claude はたいてい自分でコマンドを直す |
パターンを絞って、意図したプロセスだけに一致させる(短い部分文字列でなく、対象のバイナリのフルパスなど)。現在のシェルが始めたプロセスを止めるなら、パターンを付けた pkill -P $$ で、一致をシェル自身の子プロセスに限る |
Failed to write to researcher's inbox — nothing was sent. Try again, or message the lead.(構造化されたエージェントチームのプロトコルのメッセージでは、Failed to write the plan approval request to the lead's inbox — plan not submitted; try again / The permission request could not be delivered to the team lead (mailbox write failed) / The confirmation could not be written to team-lead's inbox.。自分で @name に送るときは通知 Couldn't write to @name's inbox — message not sent. Try again.) |
Claude Code が、~/.claude/teams/{team-name}/inboxes/ の下の teammate のメールボックスのファイルに、メッセージを書けず、受け手に何も届かなかった(ファイルを作れない・更新できない、など)。エラーは送る側のエージェントのツールの結果に出て、再試行を促す。計画の承認要求が書けないと、teammate は再送が成功するまで計画モードのまま。権限の要求が届かないと、誰もツール呼び出しを承認しない。The confirmation ... は、終了の承認自体は有効で teammate は終了し、リードへの確認だけが届かない |
送った側に、メッセージを再送してもらう(受信箱のロックの競合は一時的で、再試行で消える)。空きディスク容量と、~/.claude/teams とその下のファイルが自分のユーザーで書き込めるかを確認する(エージェントチーム) |
Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user... |
Claude が、停止したエージェントチームの teammate にメッセージを送り、Claude Code が、元になったサブエージェントの定義を再適用せずに戻した。通知は、送った側のツール結果にある再開の報告のあとに付き、理由を名指しする。この文言は、定義ファイルが保存済みの信頼のないフォルダーから来たときのもの。定義が、プロジェクトの、または --add-dir のディレクトリの .claude/agents/ にあるときの検査で、親のフォルダーの信頼ダイアログを承認しても満たせない |
デバッグログが示すフォルダーで claude を実行して、信頼ダイアログを承認する(次に teammate を戻すときに定義が再適用される。リードのセッションの再起動は要らない)。または ~/.claude.json の hasTrustDialogAccepted を true にする(デバッグログが出す正確な projects["<path>"] のキーで) |
Failed to send to api-worker: Message too large for cross-session delivery: the serialized message is 1,203,844 characters and the limit is 1,048,576. Shorten the message text — put bulk content in a file the recipient can read ... |
このマシンの別の自分のセッションへの、Claude のセッション間メッセージが、長すぎて送れなかった。Claude Code が拒否し、受け手には何も届かない。同じ文を再送しても同じように失敗する。v2.1.235 より前は、大きすぎるメッセージも送信済みと報告し、受け手のセッションは読まずに捨てた | Claude に、メッセージを要約させるか、大量の内容をファイルに入れてそのパスを送らせる。内容を複数の短いメッセージに分けさせる(セッション間のメッセージ) |
Failed to send to api-worker: Too many messages to this session just now: 30 were sent recently and more would be dropped by its rate limit, so this one was not sent. Batch what remains into one message, or wait a little before se... |
Claude が、このマシンの自分のセッションの1つへ、セッション間メッセージを短時間に大量に送り、そのセッションの受信箱が受け付ける量に達した。Claude Code が次の送信を拒否した。v2.1.236 より前は、これらの送信を送信済みと報告し、受け手のセッションは読まずに捨てた | たいてい不要:Claude が残りを1つのメッセージにまとめるか、待ってから送る。自分で連発を促したなら、Claude に、残りを1つのメッセージにまとめさせる |
Cross-session message was dropped at the recipient session's inbox (recipient: uds:/tmp/cc-socks/13605.sock) and not delivered — its queue of undelivered peer messages was full. Claude was told not to resend right away.(複数なら Cross-session messages (12) were dropped) |
Claude が自分の別のセッションへ送ったセッション間メッセージを、そのセッションの受信箱が、そのセッションの Claude が読む前に捨てた。行は受け手を示し、そのアドレスがどのセッションかは Peer address の行と照合できる。ダッシュのあとに理由が1つ以上:its queue of undelivered peer messages was full(受け手がすでに、ほかのセッションから受け付ける上限まで未配信のメッセージを持っていた)、you sent faster than that session accepts(受け手が1つの送り手から受け付けるより速く届いた)、it repeated your previous message(送る側が少し前に同じ受け手に送ったものと同一)、a relay loop between sessions was cut(セッション同士がメッセージを送り合う連鎖を続け、連鎖が受け手を何度も通った、または長くなりすぎた)。v2.1.238 より前は、受け手の受信箱がメッセージを捨てても、送る側に報告がなかった |
受け手は捨てられたメッセージを見ていないと考える(Claude Code も Claude に同じことを伝え、すぐ再送せず、あとで1つのメッセージに大事な内容を入れるよう促す)。セッション同士が頻繁に更新を送り合うなら、Claude に、少なく大きなメッセージにさせる(セッションが作業を終えたときに1つの報告にする、など)。a relay loop between sessions was cut は、セッションの1つに、次の指示を自分で打つ(自分のプロンプトへの応答として Claude が送るメッセージは、新しい連鎖を始める) |
Failed to send to api-worker: Refusing to send: reply target is a symlink(Refusing to send: のあとは cannot vet reply target もある) |
Claude Code は、別の自分のセッションへセッション間メッセージを書く前に、対象のセッションの受信箱のソケットが、メッセージの宛先のエンドポイントか確認する。reply target is a symlink は、対象のセッションのソケットのパスにシンボリックリンクがあり、リンクがセッションの作っていないエンドポイントへ誘導しうるので、経由しては届けない。cannot vet reply target は、権限エラーで読めないなど、対象のパスをまったく調べられなかった |
たいてい不要:検査は、宛先のセッション以外のエンドポイントにメッセージが届くことを防ぎ、何も送られていない。reply target is a symlink が1つのセッションで繰り返すなら、そのセッションのソケットのパス(/status の Peer address)に、何がリンクを作ったか確認する |
Refusing to read /path/to/file: its symlink resolution changed after permission was checked (a link on the way now leads somewhere the check did not see). If a link in the working directory is being rewritten concurrently, stop th... ほか下の表の各理由 |
Claude Code は、ファイルのパスの権限ルールを確認し、ツールがファイルを開く、または検索を始めるときに、その解決をもう一度確認する。パスが、承認された場所にまだ続いていると確かめられないとき、拒否する。理由は拒否ごとに示される(下の表)。v2.1.251 より前は、ファイルの書き込みだけ解決を再確認していたので、権限の確認のあとに置き換えられたリンクが、メッセージなしで、読み取りや検索を別の場所へ誘導しえた。v2.1.280 より前は、where it leads on disk could not be determined の拒否は出なかった |
たいてい不要:拒否は、ツールの結果として Claude に届き、拒否された操作は実行されない。1つのパスで拒否が繰り返すなら、そこのリンクを書き換え続けているもの(ビルドツールやファイル監視)を探すか、Claude にリンクでなく解決後のパスを使わせる。Windows の AppContainer や制限付きトークンのサンドボックスで、どのファイルにも出るなら、v2.1.265 以降へ更新する。macOS で、何も書き換えていないファイル(プロンプトにドラッグしたスクリーンショットなど)の読み取りで出るなら、v2.1.273 以降へ更新する。ripgrep の拒否は、パッケージマネージャーで ripgrep を入れて rg が PATH 上の絶対パスに解決されるようにするか、検索を作業ディレクトリの下に限る |
task output swap refused (tasks dir moved or linked): /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks/b7k2f9m3q.output. To recover: restart Claude Code with CLAUDE_CODE_TMPDIR set to a fres...(実行中のコマンドが止められると、結果に Command killed: its output file was replaced or could no longer be verified) |
Claude Code は、各 Bash コマンドの出力を、一時ディレクトリの下のファイルに保存し、開くたびに、パスが、自分が作ったファイル(シンボリックリンク・余分なハードリンク・移されたディレクトリがない)にまだ続いているか確認する。括弧の中が失敗した検査を示す:output symlink was re-pointed・output file identity changed・not a regular file などは、どれも、出力のパスか途中の何かが差し替えられたという同じ状態。コマンドが実行中に検査が失敗すると、Claude Code はコマンドを止める |
v2.1.260 以降へ更新する(それより前は、リンクも移されたディレクトリもないのにこのメッセージが出ることがあった)。CLAUDE_CODE_TMPDIR を新しいディレクトリに設定して、Claude Code を再起動する。または、Claude Code の一時ディレクトリの下の自分のプロジェクトのディレクトリ(例のメッセージでは /private/tmp/claude-501/-Users-you-my-project)を確認する(そのパスがシンボリックリンク、またはあるべきでないディレクトリなら、消す)。拒否が繰り返すなら、あるプロセスが、セッション中に Claude Code の一時ディレクトリの下の項目を置き換え・リンク・削除している。ほかが管理していないディレクトリを CLAUDE_CODE_TMPDIR に設定して再起動する |
Your disk quota is full on the filesystem with Claude Code's temp directory /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks (EDQUOT), so any output this command printed was lost, and it may... / The filesystem with Claude Code's temp directory ..., or your disk quota on it, is full (ENOSPC) / Command output was lost: the temp filesystem at ... is full / ... is out of inodes |
Claude Code は、Bash と PowerShell のコマンドの出力を、一時ディレクトリの下のファイルに保存する。コマンドが0以外のコードで、出力がまったくなしに終わると、そのファイルを持つファイルシステムの空きがないか確認する。何が尽きたか:EDQUOT(自分のクォータが尽きた。ファイルシステムに空きがあっても、クォータが満杯のことがある)、ENOSPC(ファイルシステム、またはそこでの自分のクォータに空きがない)、is full か is out of inodes(ファイルシステムにほとんど空きがない、または inode が尽きかけている) |
Claude Code の一時ディレクトリを持つファイルシステムの、要らないファイルを消す(EDQUOT は自分のクォータに数えられるファイル、out of inodes は大きなファイルを少し消すのでなく、多数のファイルを消す)。または、空きのあるファイルシステム上のディレクトリを CLAUDE_CODE_TMPDIR に設定して、Claude Code を再起動する。そのあと、Claude にコマンドを再実行させる(出力は、途切れたのでなく失われた) |
file_path: the source file is not valid UTF-8 text (first invalid byte at line 12, column 40). It may be saved in another encoding or contain binary data. Rewrite it as UTF-8, then publish again. Nothing was published. / file_path: the source file has the replacement character U+FFFD at line 12, column 40, usually left where an earlier edit or paste lost a character. Replace it with the intended text (in HTML, write an intended U+FFFD as �)... |
Claude が、バイト列がテキストとしてデコードできない、または、すでに置換文字 U+FFFD を含む、ファイルから、アーティファクトを公開しようとしたので、Claude Code は何もアップロードせず拒否した。Claude Code は、ファイルを UTF-8、またはリトルエンディアンの UTF-16 のバイト順マークで始まるなら UTF-16 としてデコードする。そのような UTF-16 のファイルがデコードできないときは、最初のメッセージが UTF-16 を示し、UTF-8 として書き直すよう伝える。v2.1.267 より前は、そのようなファイルを確認せずアップロードし、サーバーが公開を拒否した |
たいてい不要:Claude がファイルを書き直し、もう一度公開する。自分が書いた、または書き出したファイルなら、UTF-8 で保存し直し、以前の編集・貼り付け・変換で失われた文字で、各 U+FFFD を置き換える。意図的な U+FFFD をページに出すなら、文字そのままでなく、HTML に � と書く(アーティファクト) |
Reading a local file from outside this session's connected folders, or through a link, needs the approval card, and no one can answer it in this Cowork session. Use a plain file inside the connected folders; do not retry this file ... / cannot read file_path (ENOENT) — the file could not be examined, and no one can answer the approval card in this Cowork session. Check that the file exists as a plain file inside the connected folders, then retry with that path. |
Claude Desktop アプリの Cowork のセッション(自分のマシンで動く)で、Claude がアーティファクトのためにローカルのファイルを名指しした。Claude Code が、そのファイルが、つないだフォルダーの中の通常のファイルだと確認できなかった。拒否は Artifact ツールの結果に出る(ファイルをまったく調べられなかったときは、その失敗を示す) | たいてい不要:メッセージが Claude に、つないだフォルダーの中の通常のファイルを使うよう伝える。そのファイルをアーティファクトに入れるには、セッションのつないだフォルダーの1つに、シンボリックリンクでなく通常のファイルとしてコピーして、もう一度頼む |
WebFetch cannot fetch localhost or other hostnames without a dot. To reach a local server, use Bash with curl instead. |
Claude が WebFetch を、http://localhost:3000 や http://wiki/ のように、ホスト名にドットのない URL で呼んだ。WebFetch はそのような URL を、リクエストの前に拒否する。v2.1.268 より前は、これらの URL を一般的な Invalid URL のエラーで報告した |
たいてい不要:メッセージが Claude に、ローカルやイントラネットのサーバーに届く、Bash ツールの curl を使うよう案内する(ツール一覧) |
The safety check for domain example.com is rate-limited (...) / The safety check for domain ... is temporarily rate-limited / Unable to verify if domain example.com is safe to fetch. This may be due to network restrictions or enterprise security policies blocking claude.ai. |
WebFetch は、URL を取る前に、そのホスト名を api.anthropic.com に送り、Anthropic のドメインの安全性のブロックリストと照らす。その確認が完了しないと、ドメインの安全を確かめられないので、ページを取らず、ツールの結果にこれらのどれかが載る。rate-limited は、確認の窓口が HTTP 429 で答えたとき。Claude に、ページなしで続け、あとで1回だけ試すよう伝える。失敗した確認はキャッシュしないので、あとでそのドメインを取るとまた確認する。Unable to verify は、確認のリクエストが失敗した・タイムアウトした・ほかのエラー状態を受けたとき。v2.1.286 より前は、rate-limited の文言が temporarily rate-limited (too many domain checks from this network). Retry after about a minute; ... だった。v2.1.285 より前は、レート制限は Unable to verify で報告された |
ネットワークで頻発するなら、設定の skipWebFetchPreflight: true で確認を省く。ネットワークが api.anthropic.com を止めているなら、そのドメインを許可するか、同じ設定で確認を省く |
Not published: that file is on a network share. Publish a file from this session's folders instead. |
Claude が、ネットワークのホストを名指しするパスのファイルから、アーティファクトを公開しようとした。Windows では、起動時に --add-dir で渡したマップ済みネットワークドライブの下にない \\server\share のパス。macOS と Linux では、/net/<host>/page.html のような自動マウントのパス。そうしたパスを調べると、名指しされたホストに接続し、Windows ではその接続が資格情報をホストへ送ることがある。Claude Code は、そのファイルの公開を断り、読まない。拒否は Artifact ツールの結果に出る |
そのファイルでなくてよければ、何もしない(メッセージが、セッションのフォルダーのファイルを公開するよう Claude に伝える)。そのファイル自体を公開するなら、ローカルのディスクのフォルダーへコピーして、もう一度頼む。Windows で共有から直接公開させるなら、共有をドライブ文字にマップし、Claude Code の起動時にそのドライブを渡す(PowerShell なら net use Z: \\server\share のあと claude --add-dir Z:\)。セッションの途中の /add-dir では足りない。macOS と Linux では、共有を /mnt や /Volumes の下のようなディレクトリにマウントし、自動マウントのパスでなくそのパスから公開する |
シンボリックリンクの拒否の理由#
| 拒否の理由 | 意味 |
|---|---|
its symlink resolution changed after permission was checked |
パスの途中、または Grep や Glob の検索のルートのシンボリックリンクが、権限の確認から操作までのあいだに置き換えられた |
its parent-directory symlink resolution changed after permission was checked |
書き込みのパスが通るディレクトリが、承認された場所に解決されなくなった |
where it leads on disk could not be determined (a link on the way could not be examined, or the links do not resolve) |
パスを、ディスク上の最終的な場所まで辿れなかった(パス上のシンボリックリンクがループしている、など) |
it is a symbolic link. Write to the link's target path instead |
書き込もうとした場所そのものがシンボリックリンク(AGENTS.md へのシンボリックリンクの CLAUDE.md など)。メッセージが Claude に、リンクの先のパスへ書くよう案内する |
Refusing to write through symlink: <path>. Resolve the symlink and pass the real target path explicitly. |
別の書き手がファイルを開くときに捕まえた、同じ状態(シンボリックリンクの .mcp.json への書き込みなど) |
Refusing to write into symlinked directory: <path> |
ファイルを置くディレクトリ自体がシンボリックリンク(プロジェクトの .claude/ が別の場所にリンクしている、など) |
a path one of its Read deny rules is written through changed while the search was being prepared. Retry. |
検索の Read の拒否ルールが、シンボリックリンクを通るパスを名指しし、Claude Code が準備しているあいだにそのリンクが変わった |
it could not be opened (EACCES) — it is unreadable, or is being replaced concurrently. |
検索のルートは存在するが開けなかった(括弧のコードは OS のエラー) |
its permission check expired before it ran (too many concurrent file operations). Retry. |
多くのファイル操作が同時に起きて、ツールが使う前に、Claude Code が承認の記録を捨てた(再試行すると、新しい権限の確認が走る) |
ripgrep was found only by name on PATH, and a search outside the working directory cannot apply your Read deny rules in that configuration |
Claude Code が rg のバイナリを絶対パスに解決できなかったので、作業ディレクトリの外の検索を拒否する |
バックグラウンドセッションのエラー#
エージェントビュー のバックグラウンドセッションは、自前の対話の端末なしで動くので、端末を要するコマンドは別の動きになります。これらのメッセージは、バックグラウンドセッションのトランスクリプト・つないだ端末・claude attach などの出力に出ます。
| 文言 | 原因 | 対処 |
|---|---|---|
Can't open MCP settings while no terminal is attached to this background session. This session now shows "needs input" in agent view — open it and run /mcp to manage servers, or use \/mcp enable|disable|recon...`(コマンド名が入る) |
対話のダイアログを開くコマンド(/install-github-app・/mcp の設定一覧・MCP サーバーのメニューの認証の操作)は、バックグラウンドセッションに端末がつながっていないと開けない。v2.1.216 より前は、拒否されたあとにセッションが「Needs input」の下に出なかった。v2.1.213〜v2.1.215 では、端末がつながっているあいだは、コマンドは動いた |
エージェントビューからセッションにつないで、コマンドをもう一度実行する。または、メッセージが示す、つながなくても動く形(/mcp reconnect <server>・/mcp enable・/mcp disable)を使う |
This write was blocked because the path is spelled in a form that cannot be safely resolved (for example through a symlink storing a raw dot segment, a network-share or device-namespace shape, or an unreadable ...(コマンドでは、作業ディレクトリについて同じ原因で、re-run the command from its direct symlink-free path で終わる) |
Claude が、worktree の隔離の保護が、検証できる1つの場所に解決できない綴りで、ファイルや作業ディレクトリを指した。v2.1.217 より前は、シンボリックリンクを解決せずにパスの綴りだけを比べていた | たいてい不要:完全なメッセージがツールのエラーとして Claude に届き、Claude が、メッセージが示す直接のパスで再試行する。ブロックされたファイル編集は、会話の表示には短い Error editing file の行しか出ない。同じファイルでブロックが繰り返すなら、パスが、docs/current -> ../README.md のように、ターゲットに .. を含むコミット済みのシンボリックリンクを通っている可能性が高い。Claude に、ターゲットのファイルを実際のパスで編集させる |
This write was blocked because the path is network-shaped (a UNC share or /net automount spelling) while this session's checkout is local. Isolating cannot unblock it. If the file is genuinely inside the worktr...(コマンドでは re-run the command from its local, plainly-spelled path で終わる) |
Claude が、自分のマシンにないドライブ・\\server\share\file のような UNC 共有・/net の自動マウントのパスの名前でファイルや作業ディレクトリを指した。セッションのチェックアウトはローカル。v2.1.217 より前は、パスの文字列だけを比べていた |
たいてい不要:Claude が、メッセージが求めるローカルの綴りで再試行する |
This session is isolated in the worktree /path/to/worktree, but this command evaluates ${!x@P} arithmetically inside a construct too complex to verify, which can run a command hidden in a variable's value. Refu... |
worktree に隔離されたセッションで、Claude が Bash か Monitor のコマンドを実行し、Claude Code が2つのうち1つの理由で拒否した:コマンドが git をメインのチェックアウトに向けている、または、コマンドが実行する git が worktree の中にとどまると、コマンドの文字列から確認できない(git の名前を出さないコマンドでも、変数の展開が間接的にコマンドを作りうるので、この理由で拒否されることがある)。メッセージの中ほどが、確認できなかったものを示す | たいてい不要:Claude がメッセージを読み、最後の文が求める形にコマンドを書き直す。頼んだコマンドが拒否され続けるなら、フラグが立った値を文字どおり綴る(間接参照や置換を値そのものに替え、git を worktree の中から素のコマンドとして実行する)。メインのチェックアウトを意図して操作するなら、セッションの外のターミナルで自分でコマンドを実行する(worktree で並行作業) |
This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; \claude respawn <id>` starts this one fres...(エージェントビューでは一覧の下に Press enter again to restart this session fresh`) |
別の会話から ← か /background でバックグラウンドにし、最初の応答が終わる前に止まった、停止したバックグラウンドセッションにつないだ。最初の応答が終わるまで、保存されたトランスクリプトがない |
バックグラウンドにした元の会話は無傷:claude --resume で再開するか、そこで作業を続ける。止まったセッションを新しく始めるなら、メッセージの ID で claude respawn <id> を実行するか、エージェントビューのその行で Enter を2回押す。セッションが応答を終えたのにこの拒否が出て、v2.1.214 より前の版なら、~/.claude/projects の読めないフォルダーが、トランスクリプトの走査で保存された会話を見逃すことがある(更新する) |
Can't open — this session is running in another terminal / This conversation is already open in another running Claude session — use that one, or close it and try again |
エージェントビューで停止したセッションの行を開いたが、その保存された会話が、このマシンの別の生きている Claude Code のプロセスですでに開かれているので、2つ目を始めない。running in another terminal は、端末が会話を持っている(claude --resume か /resume で再開した端末など。行に Open in a terminal も出る)。already open in another running Claude session は、非対話の別の Claude Code のプロセスが持っている(同じセッションのバックグラウンドセッションのプロセスなど)。行を開いたときに入力した返信は保存され、セッションが次に始まるときに、次のプロンプトとして送られる。v2.1.248 より前は、後者の拒否だけがあり、端末で再開した会話は開いているとは数えられず、行を開くと2つ目の Claude Code のプロセスが始まった |
会話を開いているプロセスで続けるか、そのプロセスを終了して、行をもう一度開く |
This session's saved conversation is no longer on disk (it ended while the background service was off, and old transcripts are cleaned up), so there is nothing to resume. \claude rm 7c5dcf5d` deletes the row; ...` |
バックグラウンドサービスが止まっているあいだに終わったバックグラウンドセッションを開いたが、トランスクリプトの掃除が、保存された会話を消した。claude attach <id> がこの文を出す。エージェントビューのフッターは短く、ctrl+x deletes the row で終わる。v2.1.248 より前は、そのような行を開くと、拒否せずセッションの元のプロンプトを再実行し、数週間前のタスクを前面に戻した |
claude rm <id> で行を削除する(残す条件に当たる場合は、行と worktree を残して理由を示す)。セッションの元のプロンプトを新しい会話でもう一度動かすなら、claude respawn <id> を実行する |
kept 7c5dcf5d — its worktree is still at “/home/you/project/.claude/worktrees/fix-login” と 2 unpushed commits on “claude/fix-login”: a1b2c3d “Fix login flow” and 1 more. They exist on no remote, so deleting the worktree would lose them. と push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed ...(コミットを要約できないときは The worktree has unpushed commits。エージェントビューでは行に not deleted と同じ理由) |
バックグラウンドセッションを削除しようとしたが、その worktree に、ほかへ保存されたと確認できないコミットがある。Claude Code は worktree と行を残す。リモートにあるコミット、およびメインのチェックアウトにチェックアウトされている origin リモートの既定のブランチのローカルのコピーにあるコミットは、削除を止めない。v2.1.268 より前は、claude rm が kept の行にコミットの要約を入れ、要約できないときは worktree has commits that are not pushed anywhere。v2.1.260 より前は、ブランチもコミットも示さず、もう一度削除しても同じように拒否された。v2.1.248 より前は、メインのチェックアウトの既定のブランチは数えられず、すでにそこへマージしたブランチも、コミットがリモートへ届くまでこの拒否になった |
コミットを残すなら、worktree のブランチを push するか、メインのチェックアウトにチェックアウトされた既定のブランチへマージしてから、もう一度セッションを削除する。コミットを捨てるなら、メッセージが出した claude rm <id> --discard-unpushed のコマンドを実行するか、エージェントビューのそのセッションの行で Ctrl+X を2回押す(セッションと worktree も消える)。worktree が、終了した別のセッションにも記録されているとメッセージが言うときは、もう一度削除しても捨てられない:コミットを push してから、セッションをもう一度削除する |
terminal host process died — press Enter to restart(シェルでは Couldn't attach to <id> — This session's terminal host process died (the conversation is saved) — run \claude attach <id>` again to restart it on a fresh host.。シェルコマンドの行は terminal host process died — its output is gone; the command was not run again`) |
各バックグラウンドセッションの端末は、バックグラウンドサービスの下のホストプロセスで動く。そのプロセスが、サービスが接続を持ったまま死んだので、セッションに届かない。Linux と WSL では、サービスが数秒ごとに各ホストプロセスを確認し、プロセスは終了したのに、サービスへの接続が閉じていなければ、セッションを失敗とする。会話はどちらでも保存される。v2.1.247 より前は、死んだホストプロセスが、サービスの生存確認をすべて通過することがあり、セッションを開くと opening… · esc to cancel が無期限に出て、claude attach <id> が待ち続けた |
エージェントビューでは、失敗した行で Enter を押す(セッションは新しいホストプロセスで再起動し、会話が再開する)。シェルでは、claude attach <id> をもう一度実行する(Claude Code が Session <id>'s terminal host died — restarting it on a fresh one… と出して、セッションを開き直す)。シェルコマンドの行は、この方法では再起動できない。コマンドを再び送って、再実行する |
Press enter again to restart this session — it isn't responding (its conversation is saved and resumes).(シェルでは Couldn't attach to <id> — Session isn't responding — \claude stop <id>`, then `claude attach <id>` restarts it (the conversation is saved).`) |
バックグラウンドセッションを開き、バックグラウンドサービスが開くのを受け付けたが、約10秒出力が届かなかったので、セッションの出力を中継するプロセスが応答しないと判断した。シェルコマンドを動かす行は、再起動するとコマンドをもう一度実行してしまうので、Claude Code は代わりに再起動しない | エージェントビューでは、同じ行でもう一度 Enter を押す(応答しないプロセスを止めてセッションを再起動し、会話が再開する。2回目の押下なしには何も止めない)。シェルでは、claude stop <id> のあと claude attach <id>。シェルコマンドの行は、エージェントビューで Ctrl+X か claude stop <id> で止め、コマンドを再び送って再実行する |
Session <id> was stopped while the respawn was in flight |
プロセスが動いていないバックグラウンドセッションを開き、Claude Code が再起動しているあいだに、別の Claude Code のプロセス(別のターミナルの claude stop など)が止めた。送ったばかりのセッションを、プロセスがまだ始まっているあいだに開くと、代わりにプロセスを待つ。v2.1.246 より前は、そのときに開くと、止めて、このメッセージが出ることがあった |
自分で止めていないなら、エージェントビューで行を開き直すか、claude respawn <id> で再起動する。自分で止めたなら、することはない(セッションは止まったまま) |
This session was running agent 'code-reviewer', which is no longer available (no agent by that name in /home/you/project). Continuing with the default tools and system prompt — the agent's tool restrictions n... |
--agent か agent の設定で始めた、カスタムのエージェントで動いていたセッションを再開したが、Claude Code がその名前のエージェントを見つけなかった。警告は、探したディレクトリだけを示し、バックグラウンドセッションを起こす・/resume や claude --resume を実行する、などで再開した会話に出る。Claude Code は、フォールバックをセッションに保存しないので、対処するまで、再開のたびに警告が繰り返される。組み込みの claude のエージェントは警告を出さない(既定のツールセットへのフォールバックで何も変わらないため) |
セッションのプロジェクトの .claude/agents/<name>.md(個人のエージェントは ~/.claude/agents/<name>.md)にエージェントのファイルを作り直して、もう一度再開する。または、実在するエージェントを名指しした --agent <name> で再開して、そのエージェントとして動かす。エージェントがプロジェクトのスコープで、セッションの元のディレクトリを信頼していないなら、そこで一度 Claude Code を動かして信頼ダイアログを承認し、もう一度再開する(サブエージェント) |
CLAUDE_CODE_PROCESS_WRAPPER: launcher \/opt/corp/launcher` is not an executable regular file(ランチャーが始まるが Claude Code に置き換わらず終了すると、セッションが失敗し、エージェントビューの行が must exec, not daemonize` を報告する) |
CLAUDE_CODE_PROCESS_WRAPPER を設定したが、その値を使えないので、ランチャーなしで動かさず、対象のプロセスの起動を拒否した |
変数を、exec "$@" を呼んで終わる実行ファイルの絶対パスに設定する(ランチャーの契約は社内ランチャーのドキュメントを見る)。/status の Self-exec の項目が、解決された起動コマンドを示し、動いているバックグラウンドサービスが合わないと警告する(シェルから claude daemon status でも確認できる)。設定の env ブロックの値を直したら、claude daemon stop --any でバックグラウンドサービスを再起動して、次の送信が、ラップされたサービスを始めるようにする |
Couldn't reach the background service (spawn background service: EUNKNOWN: unknown error, uv_spawn) — run 'claude daemon status'(アカウントによっては background service が daemon。v2.1.212 より前は Couldn't start the session — EUNKNOWN: unknown error, ...) |
Windows が、標準の名前のないエラーコードでプログラムの起動を拒否したので、失敗は EUNKNOWN として現れる。たいてい、グループポリシーや AppLocker などのソフトウェア制限ポリシーが止めている。npm 版で npm install -g @anthropic-ai/claude-code がバイナリを置き換えている間に出る EUNKNOWN も、同じ原因(下の EACCES と同じ)。Claude Code は、ターミナルを閉じてもサービスが生き残るよう、PowerShell 経由でバックグラウンドサービスを始める(PowerShell 7 があればそれ、なければ Windows PowerShell 5.1)。v2.1.212 より前は、Windows PowerShell 5.1 だけを使い、グループポリシーが PowerShell 5.1 を止めるマシンでは失敗した |
メッセージが Couldn't start the session なら、v2.1.212 以降へ更新する(古い版では、先に別の端末で claude daemon run を実行してからバックグラウンドセッションを始めてもよい)。npm のインストールがバイナリを置き換えていたなら、終わるのを待って、もう一度始める。v2.1.212 以降で、npm のインストールが動いていないのに出るなら、Windows の管理者に、制限ポリシーが Claude Code の実行ファイルを止めていないか確認する。ターミナルを閉じるとサービスが止まるなら、Claude Code が PowerShell なしで始めた。PowerShell 7 を入れるか、管理者に PowerShell のブロックを解除してもらう |
Couldn't start the background service — spawn background service: EACCES: permission denied, posix_spawn '/usr/local/lib/node_modules/@anthropic-ai/claude-code/bin/claude'(/background や claude --bg では Couldn't reach the background service (...) の中に同じ理由。npm の更新中は Claude Code is being updated by npm on this machine (still not runnable after 2 min, EACCES) — try again when the update finishes) |
Claude Code が、バックグラウンドセッションをホストするバックグラウンドサービスを始めるため、自分のバイナリを実行できなかった。npm 版では、たいてい npm install -g が、バイナリを置き換えている最中。同じ再インストールの間に、別のコードが出ることもある。npm 版では、再インストールが終わるのを待って自動で再試行する(最大10秒。マシン上で Claude Code の npm インストールが走っているのが見えるあいだは、最大2分)。v2.1.257 より前は、どの場合も待ちが10秒で止まり、別の Claude Code のプロセスが更新をまだダウンロードしているあいだにこのエラーが出た。v2.1.246 より前は、待たずにすぐ失敗した |
数秒待って、セッションを開くか送るかをもう一度する。Claude Code が更新中と書かれたら、更新が終わってから再試行する。npm のインストールが動いていないのに続くなら、自分のユーザーがインストールされたバイナリを実行できない。その権限とディレクトリの権限を確認するか、Claude Code を再インストールする |
Couldn't reach the background service (background service exited before it became reachable (exit code N): <the service's first error line>) — run 'claude daemon status'(エージェントビューからセッションを開くと、Couldn't start the background service — のあとに同じ理由。サービスが何も出さずに終了すると nothing on stderr) |
Claude Code が、バックグラウンドサービスとして始めたプロセスが、接続を受け付ける前に終了したので、セッションを開けなかった。サービスの最初のエラーの行つきで報告する。v2.1.246 より前は、45秒待ってから background service did not become reachable within 45s と、サービスのエラーなしで表面化した。引用された理由で原因が分かるもの:Error: claude native binary not installed.(npm のインストールがそのとき Claude Code のバイナリを置き換えていて、サービスが npm のプレースホルダーを動かした。インストールが終わってから再試行する)、Windows で毎回の起動で終了コード 1 の nothing on stderr(daemon.lock が、Claude Code が信号を送れず、いなくなったと確かめることもできないプロセスを名指ししているので、新しいサービスが毎回、別のサービスがロックを持っていると判断する) |
メッセージが行を引用しているなら、それが名指すものを直してから、セッションをもう一度開くか送る(次の試行でサービスがもう一度始まる)。claude daemon status で、サービスがいま動いているか確認する |
Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo) |
バックグラウンドセッションを始めたディレクトリが、セッションの起動中に削除された。Claude Code はセッションを始めず、メッセージが、ないディレクトリを示す。v2.1.257 より前は、セッションは始まったように見え、あとからエージェントビューに、同じ理由で失敗した行が出た。v2.1.281 より前は、始める前にディレクトリがすでになかったときも、このメッセージが出た(その場合は、いまは could not be resolved on disk と報告する) |
メッセージが示すディレクトリを作り直すか、存在するディレクトリから送って、もう一度試す |
Workspace not trusted. Run \claude` in /path/to/project once and accept the trust prompt, then retry.` |
信頼していないディレクトリで、バックグラウンドセッションを始めた・再起動したが、ワークスペースの信頼ダイアログが答えを得られなかった。セッション自身のディレクトリのターミナルからの同じコマンドは、代わりに信頼ダイアログを出し、承認すればセッションを始める。このメッセージは、スクリプトなど、ダイアログが出せない場所で出る。別の原因を示す2つの変種:The home directory is trusted one session at a time(セッションのディレクトリがホストディレクトリ。Claude Code はホストディレクトリの信頼を保存しないので、前のセッションでそこでダイアログを承認しても、満たせない)、<path> could not be resolved on disk(Claude Code が、セッションのディレクトリをディスク上に見つけられなかった)。v2.1.286 より前の Windows では、すでに信頼したディレクトリでも、信頼の記録が大文字小文字の違うパスで保存されていると、このメッセージが出ることがあった(v2.1.286 以降へ更新する) |
メッセージが示すディレクトリで claude を実行して信頼ダイアログを承認し、コマンドをもう一度実行する。ホームディレクトリのメッセージなら、ダイアログが出せるよう、ホームディレクトリのターミナルからコマンドを実行するか、プロジェクトのディレクトリからセッションを始める。could not be resolved on disk なら、ディレクトリを作り直すか、存在するディレクトリから新しいセッションを始める |
ラッパーと IDE のエラー#
Claude Code 自身でなく、Claude Code を起動したプログラム(IDE の拡張や Agent SDK のアプリケーション)が出すエラーです。
| 文言 | 原因 | 対処 |
|---|---|---|
Error: Claude Code process exited with code 1 |
元の claude プロセスが0以外のコードで終了した。終了コードだけでは何が失敗したか分からない。本当のエラーはプロセス自身の出力にあり、ラッパーが捕まえていれば添え、なければ終了コードだけを報告する。Windows のネイティブ版は、ターンが完了した直後に、終了コード 4294967295 で終了することがある。その終了が、待つメッセージも動いているバックグラウンドのタスクもないターンの境目に来たときは、VS Code 拡張が扱う(v2.1.273 より前は、何も失われていないのに、毎回ターンの境目でこのエラーを出した) |
VS Code では、エラーに添えられた「View output logs」のリンクで、根本の失敗を見る。Agent SDK のアプリケーションでは、メッセージのループの周りでエラーを捕まえる(各 SDK の言語が受け取るものは Agent SDK の本番運用)。同じプロジェクトのターミナルで claude を実行する(たいてい、本当のエラーメッセージとともに再現し、そのメッセージをこのページで引ける)。ターミナルで claude doctor を実行して、インストールと設定を確認する |
Failed to run Claude Code: Error: Could not locate the Claude CLI on PATH. Launching by name in a PowerShell terminal would run a 'claude' from the open folder instead of the installed CLI, so the launch was bl... |
VS Code 拡張が、Windows で統合ターミナルで Claude Code を開いたときに出す。ターミナルのシェルは PowerShell で、拡張がインストール済みの claude を見つけられない。名前で起動すると、インストールした CLI でなく、開いているフォルダーの claude が動くので、起動を止めた |
VS Code の外で新しい PowerShell のウィンドウを開き、where.exe claude を実行する(パスが出ないなら、CLI は PATH にない。インストールとログイン の PATH の手順で、インストールのディレクトリを足す)。PATH の項目は、PowerShell のプロファイルでなく、ユーザーかシステムの環境変数に設定する(拡張はプロファイルを実行しないので、そこだけにある PATH の編集は届かない)。PATH を変えたら VS Code を再起動する(拡張は、VS Code が起動時に捕まえた PATH を確認する) |
The connection to Claude Code ended before this message completed — it may not have been processed, so please send it again. |
VS Code 拡張が、メッセージを claude プロセスへ送ったが、プロセスが受け取った・完了する前に、エラーなしで接続が終わった。拡張は、処理されたかどうか分からない |
メッセージをもう一度送る(次のメッセージは、会話を再開する新しい claude プロセスを始める)。繰り返すなら、同じプロジェクトのターミナルで claude を実行する(プロセスを終わらせ続ける失敗は、たいてい、本当のエラーメッセージとともにそこで再現する) |
巻き戻しの警告とエラー#
/rewind のコードの復元から出るメッセージです。
| 文言 | 原因 | 対処 |
|---|---|---|
Restored the code, but skipped 2 files: the tracked path is (or became) a link or other non-regular file, its directory changed since the checkpoint, or its backup could not be safely read. Skipped files were l... |
/rewind のコードの復元が、追跡中のパスを、書いたり消したりせずに1つ以上飛ばした。飛ばすのは、パスがシンボリックリンク・ハードリンク・そのほか通常でないファイルである(またはなった)、チェックポイントのあとにそのディレクトリが変わった、バックアップを安全に読めない、のとき。飛ばされたパスは、現在の内容のまま。v2.1.216 より前は、追跡中のパスのリンクを通って書き込み・削除をし、部分的な復元も報告しなかった |
どのファイルが飛ばされたかを確認して、1つずつ対処する(メッセージは数だけ示す。~/.claude/debug/<session-id>.txt のデバッグログが、復元の実行時に飛ばした各パスを名指しする)。飛ばされたファイルが、自分が意図して作ったリンク(dotfile の管理ツールが管理する設定ファイル、pnpm などがハードリンクしたファイル)なら、巻き戻しはその内容に触れていない。自分で作っていないリンクなら、内容を信用する前にパスを調べる(チェックポイントと巻き戻し) |
Failed to restore the code: と No files were restored: 1 file failed (backup missing, or the file could not be updated) |
/rewind でコードを復元したとき、そのチェックポイントのどのファイルも復元できなかった。各ファイルについて、Claude Code が保存したバックアップがない、またはファイルを更新できなかった。Claude Code は、保持の掃除で、セッションのバックアップを、そのセッションが最後に保存してから既定で約30日後に消す。そのあとでセッションを再開すると、バックアップがない。セッションを分岐(--fork-session や /branch)すると、元のセッションのバックアップが分岐先にコピーされる。v2.1.260 より前は、バックアップがないファイルを黙って飛ばし、巻き戻しが成功したように見えた |
別の方法で変更を元に戻す(Claude に編集を取り消させる、バージョン管理からファイルを戻す)。バックアップがなければ、/rewind をやり直しても同じように失敗する。Claude Code が書き込めない・消せないなら、権限など、書き込みを妨げるものを直して、/rewind をやり直す。今後のセッションでバックアップを長く残すには、cleanupPeriodDays を上げる |
セッション保存の警告#
Claude Code がセッションのトランスクリプトを保存していないとき、入力ボックスの下の1行に出る警告です。どちらの場合も、セッションは動き続けます。警告は、あとで再開したときに内容が欠けうることを知らせます。
| 文言 | 原因 | 対処 |
|---|---|---|
Transcript writes are failing (disk full — ENOSPC) · recent messages may not be saved for resume |
Claude Code は作業しながらトランスクリプトをディスクに保存しており、そのファイルへの書き込みが失敗している。原因は括弧に根本のエラーコードで出る。警告が出る時点はエラーで違う:自然に直らない状態(ディスクが満杯・ディスクのクォータ超過・読み取り専用のファイルシステム・パスがファイルシステムの長さの上限を超える・macOS と Linux の権限エラー)は、最初の失敗で出る。それ以外は、少なくとも1分にわたる繰り返しの失敗のあとに出る(Windows の権限エラーを含む。ウイルススキャンが1回の書き込みだけ失敗させて、再試行で成功することがあるため)。v2.1.217 より前は、警告なしで失敗した書き込みを捨て、あとで --resume で最近のメッセージが欠けていることが最初の兆候だった |
エラーコードが示す状態を直す:ENOSPC はディスクの空きを作る、EDQUOT はクォータを上げるか空ける、EACCES・EPERM・EROFS はトランスクリプトの場所への書き込みを戻す。次の書き込みが成功すると警告は自動で消える(再起動は要らない)。警告が出ているあいだに送ったメッセージは、あとでセッションを再開したときに欠けていることがある(トランスクリプトの場所は セッションの再開と管理) |
Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set · --resume will not find this session; if unintended, unset it and restart |
CLAUDE_CODE_SKIP_PROMPT_HISTORY を設定してセッションを始めたので、Claude Code はそのセッションのトランスクリプトもプロンプト履歴も書かない。この変数は、一時的なスクリプトのセッションの意図的なオプトアウトだが、シェルのプロファイル・ラッパースクリプト・export した親プロセスから、セッションに届くこともある |
意図して設定したなら、対処は不要(通知は、セッションが --resume・--continue・上矢印の履歴に出ないことの確認)。意図していないなら、claude を起動するシェルやスクリプトから変数を外して、新しいセッションを始める(現在のセッションのメッセージは、さかのぼって保存されない) |
Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker · restart with CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1 to keep future transcripts |
Claude Code は、起動するサブプロセスに CLAUDE_CODE_CHILD_SESSION を設定し、それを引き継いだ対話のセッションを入れ子として扱い、トランスクリプトを保存しない。別の Claude Code のセッションの中から claude を動かしたなら想定どおりで、マーカーが、長く生きている仲介(ターミナル・screen のセッションなど)を通って漏れたなら、誤分類の合図。tmux の中では、tmux サーバーのグローバルな環境経由で届いたマーカーを Claude Code が検出して、保存を続けるので、この通知は出ない |
別の Claude Code のセッションの中から、意図して始めたなら、対処は不要。トップレベルのセッションなら、終了して CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1 を設定して再起動する(保存は再起動から効くので、その前に送ったメッセージは保存されない)。同じターミナルやランチャーからの今後の起動を直すには、その環境から CLAUDE_CODE_CHILD_SESSION を外す |
設定の警告#
これらのメッセージの多くは、会話でなく標準エラーに、起動時に出ます。デバッグログや状態の行など、別の場所に出るものは、その旨を書いています。
| 文言 | 原因 | 対処 |
|---|---|---|
Claude Code exited after an unrecoverable interface error (<error>). It happened while the fullscreen renderer was starting, so the next launch will use the classic renderer (CLAUDE_CODE_DISABLE_ALTERNATE_SCREE... |
Claude Code の端末インターフェースが、どちらのレンダラーでも復旧できないエラーに当たったので、終了した。2つ目の文は、フルスクリーンのレンダラーの起動中にエラーが起きたときだけ出る。v2.1.236 より前は、この種のエラーで、メッセージなしで終了した | Claude Code をもう一度起動する。会話に戻るには、同じディレクトリで claude --resume を実行する。メッセージがフルスクリーンのレンダラーを示すなら、次の起動の動作は、フルスクリーンをどうオンにしたかで決まる(ターミナル・表示・音声入力) |
Agent descriptions are over the 15.0k-token limit (~16.2k tokens) · ask Claude to trim agent descriptions in .claude/agents/ |
会話の表示に、標準エラーでなく起動時の通知として出る。組み込み以外の サブエージェント の説明を合わせたものが 15,000 トークンを超えている | エージェントのファイルの description の frontmatter を短くするか、Claude に削らせる。使っていないエージェントのファイルを消す |
Not loaded: rename .claude/skills/anthropic-skills, then restart — its name uses "anthropic-skills", a name reserved for the skills synced from your claude.ai account |
スキルのフォルダー・frontmatter の name・.claude/commands/ のファイルかサブフォルダー・保存したワークフローが、anthropic-skills か、それで始まる名前を使っている(claude.ai のアカウントから同期されるスキル用に予約された名前)。会話の表示に、標準エラーでなく起動時の通知として出る。最初に拒否した項目について、変えるもの(名前を変えるフォルダーかファイル、直す name: の行、名前を変えるワークフロー)を示す。複数拒否したときは、通知の最後に数が付く。v2.1.282 より前は、これらの名前のスキルとコマンドも読み込んでいた |
通知が示す項目の名前を変えるか、指された name: の行を直して、セッションを再起動する |
Ignoring 2 permissions.allow entries from .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/Users/you/proje... |
プロジェクトの .claude/settings.json か .claude/settings.local.json に permissions.allow のルールや permissions.additionalDirectories の項目があったが、ワークスペースを信頼していないので、適用しなかった(リポジトリ由来の許可ルールは、信頼を承認するまで適用されない) |
そのディレクトリで claude を実行して信頼ダイアログを承認する(承認が覆うフォルダーは 権限ルール を見る)。-p の非対話モードではダイアログが出ない。~/.claude.json の hasTrustDialogAccepted を、メッセージが出す正確な projects のキーで設定する。メッセージが .claude/settings.local.json を示し、git リポジトリの外やホームディレクトリで Claude Code を始めたなら、v2.1.200 以降へ更新する(v2.1.196〜v2.1.199 は、自分の設定を別に扱っていた) |
\\server\share is a network path, which cannot be added as a working directory. On Windows, map the share to a drive letter and pass it at launch with --add-dir (a drive letter added mid-session does not yet ca... |
Claude Code は、ネットワークパスを作業ディレクトリとして足さない。ネットワークパスを調べると、その名前のホストに接続することがあり、Windows ではその接続が認証情報をホストに送りうるので、拒否する。拒否するパス:\\server\share のような UNC 共有、/net/<host> の自動マウントのパス(そのホストの自動マウントの下のディレクトリから Claude Code を起動した場合を除く)、シンボリックリンクやジャンクションでネットワークの場所へ届くローカルのパス。割り当て済みのドライブ文字と \\wsl$ のパスはネットワークパスに数えない。v2.1.257 より前は、届くネットワークパスを作業ディレクトリとして受け付けた |
Windows では、共有をドライブ文字に割り当て(net use Z: \\server\share など)、起動時に claude --add-dir Z:\ でドライブを渡す。macOS と Linux では、共有をローカルのパスにマウントして、そのパスを足す。パスが permissions.additionalDirectories にあるなら、それを載せている設定ファイルから消す |
Remote managed settings failed to load(括弧の原因:network error・request timed out・authentication rejected (401)・no setting in the server response could be applied as written。行の残りが、セッションの動くポリシーを示す:過去の成功した取得のキャッシュ、またはキャッシュなしの no remote policy applied) |
セッションはサーバー管理設定の対象だが、Claude Code が取得できなかった、またはサーバーが返した内容を適用できなかったので、対話の起動時にこの警告を出す。キャッシュがあれば、そのキャッシュのポリシーで動く(保留される環境変数を除く)。キャッシュがなければ、サーバー管理設定なしで動く。v2.1.248 より前は、設定の取得の失敗をデバッグログにだけ報告した | メッセージが示す原因に対処する:ネットワークの原因なら、このマシンが api.anthropic.com に届くか確認する。認証の原因なら、/status でサインインを確認する。no setting in the server response could be applied as written なら、管理者に、サーバー側の設定を直してもらう。/status か claude doctor で、診断の全体を見る(組織への導入と管理設定) |
Managed settings were not approved; exiting without applying them. |
組織のサーバー管理設定に、自分の承認が要る設定が含まれていて、セキュリティの承認ダイアログを断った | Claude Code をもう一度起動して、ダイアログを承認し、組織の設定のもとで続ける(断った答えは記憶されないので、次の起動でもう一度出る)。ダイアログが挙げる設定に不安があるなら、承認する前に、組織の管理設定を保守している人に尋ねる |
Claude Code can't start: your organization's managed settings block the default model (claude-opus-5-5) in "deniedModels", and none of the models they allow can be used as the default instead. Ask your administ... / Claude Code can't start: your organization allows only the models listed in "availableModels", and none of them can be used as the default model (claude-opus-5-5 isn't listed). Ask your administrator to update ... |
組織の管理設定が、Default の選択肢が解決するモデルと、そこから下がりうるすべてのモデルを止めている。Default で始まるはずのセッションは、始まるところで終了する。後者は、availableModelsMatch を "exact" にした availableModels の一覧が、そのモデルを含まないとき |
設定を管理しているなら、ユーザーが動かせるモデルを availableModels に足すか、すべてのフォールバックを止めている deniedModels の項目を狭める。管理していないなら、メッセージを管理者に送る(自分の設定ファイルでは、管理された availableModels や deniedModels の一覧を広げられない)(モデル・effort・fast mode) |
Your organization's managed settings allow Claude Code to use: Anthropic API, Amazon Bedrock.(一覧が空なら Your organization's managed settings allow Claude Code to use no API provider at all (allowedProviders is an empty list), so it cannot start on this machine.。すべての項目が認識されないときは括弧が (allowedProviders lists only unrecognized entries)) |
組織の管理設定が allowedProviders の一覧を設定していて、セッションの API プロバイダーがそこにない(または一覧がセッションの使うプロバイダーを含まない) |
メッセージの To continue: の手順に従う。設定を管理しているなら、メッセージの Admins: で始まる行が、足す項目や固定する値を示す(allowedProviders の項目は インストールとログイン を見る) |
MCP server <name> is blocked by enterprise managed policy |
/mcp でサーバーの「Reconnect」を選ぶ、または無効にしたサーバーをそこでオンに戻したが、MCP サーバーを制限する設定がそのサーバーを止めている。Claude Code は、そのサーバーに接続しない。次のどの設定でも出る:サーバーに一致する deniedMcpServers の項目(自分の ~/.claude/settings.json やプロジェクトの設定のものを含む)、サーバーが一致しない allowedMcpServers の一覧、mcp をロックした strictPluginOnlyCustomization(~/.claude.json と .mcp.json で設定したサーバーを止める)、サーバーが claude.ai のコネクタのときの disableClaudeAiConnectors。v2.1.257 より前は、セッション途中のポリシーの更新で止められたサーバーでも、/mcp の「Reconnect」と再有効化で接続できた |
自分のユーザーとプロジェクトの設定ファイルに、これらの設定がないか確認し、変えるか消す。自分の設定で説明できないなら、管理者に、どの管理設定がサーバーを止めているか尋ねる |
/Library/Application Support/ClaudeCode/managed-settings.json: Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.(managed-settings.d/ のディレクトリがあるが一覧できないときは Managed settings drop-in directory could not be read: と根本のエラー) |
組織が管理設定を配っていて、配った文書のどれかが、存在するのに JSON のオブジェクトとして解析できないので、Claude Code は起動時に、終了コード 1 で終わる。出どころは、managed-settings.json か managed-settings.d のドロップインファイルのパス、macOS の管理されたプリファレンスのプロファイル(per-user managed preferences か device-level managed preferences)、Windows のレジストリの値(Registry: HKLM\SOFTWARE\Policies\ClaudeCode\Settings)のどれか。別の管理者の出どころが有効なポリシーを配っていても、起動を拒否する。対話のセッション・claude -p・Agent SDK のセッション・バックグラウンドセッションなどで出る。解析できる文書のスキーマの問題は、このエラーにならない |
マシンを管理しているなら、名指しされた文書を、JSON のオブジェクトとして解析できるよう直すか、ファイル・プロファイル・レジストリの値を消す(空の managed-settings.json は {} として数えられ、起動を止めない)。管理していないなら、管理者に、配った文書を直してもらう(自分の設定ファイルは、このエラーの原因でも解消でもない) |
Unable to read managed policy settings. / This machine may require organization login enforcement, but the policy file failed to load. / Contact your administrator. / Detail: <source>: <reason> |
組織が管理設定を配っていて、配った出どころのどれかが存在するが、読めなかった(OS が読み取りを拒否したのでなく、I/O のエラーなどの理由)。ほかに有効な出どころがないと終了する。同じ状態では、サインインの流れ・すでに動いているセッションの API リクエスト・claude gateway のサーバーが、allowedProviders を示す1行目の変種で拒否される。OS が拒否した読み取り(root だけのファイルなど)は、この終了にならず、その出どころのポリシーなしでセッションが始まる。v2.1.285 より前は、claude.ai か Claude Console の認証情報でサインインしたセッションだけがこのメッセージで終了し、OS が拒否した読み取りでも出た |
マシンを管理しているなら、Detail: の行が示す問題を直して、配った出どころが読めるようにするか、出どころを消す。管理していないなら、メッセージを管理者に送る(自分の設定ファイルは、このエラーの原因でも解消でもない) |
otelHeadersHelper failed; telemetry is not being exported. See /status: exited 1: token service unreachable(-p の非対話モードでは標準エラーに otelHeadersHelper failed (OpenTelemetry export headers unavailable): <error>) |
otelHeadersHelper のスクリプトが失敗した、または要件を満たさない出力を出した。端末インターフェースの通知として、対話のセッションごとに一度出る。スクリプトが失敗し続けるあいだ、エクスポートが失敗し、テレメトリのバックエンドは、そのセッションから何も受け取らない。See /status: のあとが、失敗の内容(スクリプトの終了コードとエラー出力など) |
/status で失敗の詳細を読む。スクリプトを、30秒以内に終了コード 0 で終わり、標準出力に文字列のヘッダー値の JSON オブジェクトを出すように直す(利用状況の計測 のスクリプトの要件)。組織が管理設定でスクリプトを配っているなら、保守している人に直してもらう |
MCP server 'internal-api': headersHelper not run — this workspace has no persisted trust; accept the trust dialog here once interactively, or set projects["/Users/you/project"].hasTrustDialogAccepted in /Users/you/.claude.json. |
Claude Code が MCP サーバーを静的な headers だけで接続し、サーバーの headersHelper を飛ばした。ヘルパーはシェルコマンドで、フォルダーに保存された信頼がないため。非対話モードでだけ、サーバーごとに一度この行を出す(対話のセッションでは、同じ拒否をデバッグログに書く)。メッセージが出す projects のキーは、Claude Code が信頼を結びつけるフォルダー |
メッセージが示すフォルダーで claude を実行して信頼ダイアログを承認してから、-p か SDK のコマンドをやり直す。~/.claude.json の hasTrustDialogAccepted を、メッセージが出す正確な projects のキーで自分で設定する。ホームディレクトリでセッションを始めたなら、信頼したプロジェクトのディレクトリから作業する(ホームディレクトリで信頼ダイアログを承認しても、その信頼は現在のセッションだけ) |
Invalid permission rule "Bash(ls) x" was skipped: Malformed Tool(content) rule. Rules take the form Tool or Tool(content) and must end at the closing ")"; parentheses inside the content are literal... |
設定ファイルの権限ルールが、Tool か Tool(content) の形でない(閉じ括弧の後ろに文字がある、括弧の片方がないなど)。v2.1.260 より前は、括弧が対応しないルールを Mismatched parentheses と報告した |
メッセージが示す設定ファイルで、ルールを閉じ括弧で終わるよう書き直す(Bash(ls) x の代わりに Bash(ls *))。内容の中の括弧はそのままにする(リテラルなので、Edit(./Finance (2024)/**) はエスケープなしで有効) |
Permission deny rule (.claude/settings.json): Write(docs/**) is not matched by file permission checks — only Edit(path) rules are. Use Edit(docs/**) instead (Edit rules cover all file-editing tools). |
設定ファイル・管理設定・コマンドラインのフラグにある、パスつきの Write・NotebookEdit・MultiEdit・Glob の権限ルールは、ファイルの権限の確認で一致しない。バックグラウンドセッションや --output-format json と stream-json では、機械が読む出力をきれいに保つため、標準エラーでなくデバッグログに書く(--debug で取得できる) |
Write(path)・NotebookEdit(path)・古い MultiEdit(path) のルールを Edit(path) に替える(Edit のルールは、すべてのファイル編集ツールを覆う)。--allowedTools で Claude Code が警告なしで受け付ける Glob のルールを除いて、Glob(path) のルールを Read(path) に替える。括弧に名指しされた出どころのルールを直す(設定ファイルのパス、--allowed-tools と --disallowed-tools はフラグ自体。ディスクにない claude-settings-<hash>.json のパスは、インラインの --settings の値)。Write や Glob のようなツール名だけのルールはそのままにする(ツール単位で一致し、警告しない)。出どころが managed policy settings なら、管理設定の保守者に警告を転送する(自分では消せない) |
Permission allow rule (.claude/settings.json): Bash(git -C * status *) has a wildcard before the rest of the command, so it also matches any options inserted at that position and approves them without a prompt. For git, options su... |
設定ファイルの Bash の許可ルールの * が、どのコマンドかを決める後ろの語(Bash(git * main) や Bash(git -C * status *))より前にある。ワイルドカードが意図より広いルールを狭められるようにする警告で、Claude Code はルールを残し、一致のしかたは変えない。警告は、ルールと括弧の出どころを示す。バックグラウンドセッションや --output-format json と stream-json では、デバッグログに書く |
サブコマンドの前の * を、意図した値に替える(Bash(git * main) の代わりに Bash(git checkout main))。* をすべてサブコマンドの後ろへ移す(Bash(git -C * status *) の代わりに Bash(git status *))。許可したいサブコマンドごとに1つのルールを書く。括弧に名指しされた出どころ(設定ファイルのパス、--allowed-tools のフラグ自体。ディスクにない claude-settings-<hash>.json はインラインの --settings の値)のルールを直す。出どころが managed policy settings なら、管理設定の保守者に転送する |
"crossSessionInbound" must be one of "accept", "hold", "refuse"; received "reject". This value was ignored; while it is present, cross-session messages are held for your approval instead of being delivered. Set it to one of the va... |
設定ファイルの crossSessionInbound に、"reject" の打ち間違いなど、Claude Code が認識しない値がある。警告の2つ目の文は、どのファイルが値を持つかで変わる。管理設定では、認識されない値を、最も厳しい refuse として扱い、警告は、管理者が直すまでセッション間メッセージが断られると言う。v2.1.248 より前は、認識されない値を警告なしで無視した |
キーを "accept"・"hold"・"refuse" のどれかにするか、消す。警告が管理設定を示すなら、管理者に値を直してもらう |
CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced for <model>, so this session can grow past it. To enforce it, set CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000 (or the autoCompactWindow setting). |
CLAUDE_CODE_DISABLE_1M_CONTEXT=1 を設定したが、これは通常、1M の文脈のモデルのセッションを 200K のウィンドウに自動圧縮で抑えるはずのところ、圧縮が働かない。Claude Code は、ネイティブの 1M のウィンドウを持つと認識するすべてのモデルに自分で 200K の上限を強制し、認識しないモデル ID には想定するウィンドウで圧縮する。警告が出るのは、ほかの設定がそれを妨げるとき:LLM ゲートウェイの別名など、Claude Code が認識しないモデル ID で、CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1 を設定したか、想定のウィンドウを 200K より上に上げた、または ANTHROPIC_BETAS や --betas で要求した context-1m のベータが、そのベータを受け付けるモデルで、まだ API に 1M のウィンドウを求めているのに、何も圧縮しない。バックグラウンドセッションや --output-format json と stream-json では、標準エラーでなくデバッグログに書く |
CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000 か autoCompactWindow の設定を 200000 にして、200K の境界で自動圧縮させる。メッセージが、この版が認識しないモデル ID を示すなら、claude update を実行する(そのモデルを 1M の文脈と認識する版は、追加の設定なしで上限を強制する)。そのモデルの完全なウィンドウを使いたいなら、CLAUDE_CODE_DISABLE_1M_CONTEXT を unset する(警告は、200K の上限が強制されていないことだけを報告する) |
[claude-code:unrecognized_model] {"model":"my-proxy-model","query_source":"sdk"} |
Claude Code が、この版が認識しないモデル ID のリクエストを送ったが、その ID を、認識するモデルに対応づける modelOverrides の項目がなかった。標準エラーを読むスクリプトやハーネスでは、[claude-code:unrecognized_model] の接頭辞で一致させる。接頭辞と空白1つのあとに、1行の JSON オブジェクトが続く(あとの版で項目が増えうる)。model は設定したモデル文字列、query_source はそのモデルを使ったリクエストの経路(-p の実行は sdk、サブエージェントは agent: で始まる値)。-p では、どの --output-format でも標準エラーに書き、標準出力を、行を除かずに解析できる。対話のセッションとバックグラウンドセッションでは、デバッグログに書く(--debug で ~/.claude/debug/<session-id>.txt に取得する)。モデル文字列ごと、プロセスごとに一度書き、認識されないIDが増えるたびに別の行を書く。Claude Code が認識するモデルに解決するプロバイダーの ID(Amazon Bedrock の us.anthropic.claude-...・Google Cloud の Agent Platform の @ 付きのバージョン・Microsoft Foundry のデプロイ名など)には、行を書かない。v2.1.233 より前は、認識しないモデル ID のリクエストでも行を書かなかった |
LLM ゲートウェイの別名のように、意図して設定した ID なら、設定ファイルに modelOverrides の項目を足す({"modelOverrides": {"claude-opus-4-6": "my-proxy-model"}}。Claude Code は my-proxy-model を claude-opus-4-6 として扱い、行を書かなくなる)。ID が、Claude Code の版より新しいモデルなら、claude update を実行する。ID が打ち間違いなら、モデルを設定できる場所か別名の変数のうち、それを持つものを直す。query_source が agent で始まるなら、サブエージェントの定義のモデルを直す |
- Stale sandbox mask files left by a killed session: /home/you/project/.claude/settings.local.json(Fix: Remove each with \rm <path>` while no other Claude Code session is running in that project — a 0-byte read-only file where a settings file belongs makes "Yes, and don't ask again" fail to save, ...`) |
claude doctor が診断に出し、/status が同じ行を一覧する。Linux と WSL2 で、ファイルシステムの隔離をオンにしてサンドボックスを有効にしているときに出る。サンドボックスは、サンドボックスのコマンドの実行中、まだ存在しないファイルへの書き込み拒否を、0バイトの読み取り専用のプレースホルダーを作って保持し、終わると消す。そのクリーンアップの前にセッションが強制終了されると、プレースホルダーが残る。設定ファイルのあるべき場所の0バイトの読み取り専用のファイルは、「Yes, and don't ask again」が保存に失敗する原因になる。v2.1.257 より前は、claude doctor はこれらのファイルを指摘せず、それ以前の版も、セッションが強制終了されると同じプレースホルダーを残す |
そのプロジェクトで動いているほかの Claude Code のセッションを終了してから、一覧された各ファイルを rm で削除する(警告は最大3ファイルを名指しし、残りは数で示すので、警告が出なくなるまで、削除のあとに claude doctor をもう一度実行する)。「Yes, and don't ask again」で保存した権限の選択が反映されなかったなら、プレースホルダーを削除したあとで、もう一度保存する(サンドボックス) |
Denying Bash also turns off the PowerShell tool, so Claude has neither. To use PowerShell, set CLAUDE_CODE_USE_POWERSHELL_TOOL=1. |
--disallowedTools Bash や、設定ファイルの Bash か Bash(*) だけの deny ルールで、Bash ツール全体を外した。Git Bash が入った Windows では、Bash を拒否すると PowerShell ツールも止まり、シェルのツールがないセッションが始まる。この警告は起動時に出る。バックグラウンドセッションや --output-format json・stream-json では、標準エラーでなくデバッグログに書く(--debug で ~/.claude/debug/<session-id>.txt に残る)。v2.1.287 より前は、警告なしに同じく PowerShell ツールを止めた |
PowerShell を使わせるなら、CLAUDE_CODE_USE_POWERSHELL_TOOL を 1 にする(環境か設定ファイルの env)。Bash の deny ルールがあっても PowerShell は有効のままになる。特定のコマンドだけを止めるなら、Bash だけのエントリを Bash(git push *) のような範囲を絞ったルールに置き換える。そのとき Claude は Bash を使え、その変数を設定するか、範囲を絞った PowerShell の権限ルールを足すまで、PowerShell は止まったまま(権限ルール) |
API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name (2-64 letters, digits and hyphens, not starting or ending with a hyphen, such as my-resource), not a URL or host name. To use a full URL, set ANTHROPIC_FOUNDRY_BASE_URL instead. |
ANTHROPIC_FOUNDRY_RESOURCE に、Microsoft Foundry のリソース名だけでなく、エンドポイントの URL やホスト名のような値を設定した。Claude Code はリクエストを送る前にその値を断った。メッセージは起動時の警告でなく、Claude の返信の代わりに出る |
ANTHROPIC_FOUNDRY_RESOURCE をリソース名だけにして Claude Code を再起動する(エンドポイント https://my-resource.services.ai.azure.com/anthropic なら my-resource)。URL 全体を渡すなら、ANTHROPIC_FOUNDRY_BASE_URL に URL を設定して ANTHROPIC_FOUNDRY_RESOURCE を外し、再起動する。2つのうち一方しか受け付けない(Bedrock・Vertex AI・Foundry) |
応答の質が普段より低いと感じるとき#
エラーが出ないのに、Claude の答えが期待より能力が低く感じるなら、原因はたいてい、モデルでなく会話の状態です。Claude Code は、黙ってモデルのバージョンを変えません。ただし、次の場合は、フォールバックのモデルに切り替わることがあります。
- 設定した
--fallback-modelが、可用性のエラーのあと、そのターンだけ引き継ぐ(トランスクリプトに通知が出る) - Amazon Bedrock や Google Cloud の Agent Platform の起動時の確認が、既定のモデルを使えないと見つける、またはセッション途中でアカウントがそのモデルへのアクセスを失う
- Fable 5.1・Fable 5・Opus 5.5・Sonnet 5.5・Opus 5 の自動モデルフォールバックが、検知された分類にフォールバックのモデルがあれば、セッションをそのモデルへ移し、通知を出す
2つ目と3つ目は、下の「モデルの選択」の確認で見つかります(1つ目は、/model の変更でなくトランスクリプトの通知として出ます)。各フォールバックがいつ働くかは モデル・effort・fast mode を見てください。まず次を確認します。
| 確認すること | 内容 |
|---|---|
| モデルの選択 | /model で、期待したモデルを使っているか確認する。以前の /model の選択や ANTHROPIC_MODEL 環境変数で、意図より小さなモデルになっていることがある |
| effort level | /effort で、現在の推論の水準を確認し、難しいデバッグや設計では上げる。既定はモデルで変わるので、最大より下だと決めつけずに確認する |
| 文脈の圧迫 | /context で、ウィンドウがどれだけ埋まっているか見る。満杯に近いなら、区切りのよいところで /compact、または /clear で新しく始める(コンテキストとプロンプトキャッシュ) |
| 古い指示 | 大きな、または古い CLAUDE.md や MCP のツール定義が、文脈を使い、応答を誘導しうる。/doctor の点検が、大きすぎるメモリのファイルと使っていない拡張を指摘し、/context が MCP のツールの使用量も示す |
ヒント
応答がおかしくなったときは、返信で訂正を重ねるより、巻き戻したほうがうまくいくことが多いです。Esc を2回か /rewind で、悪いターンの前へ戻り、より具体的にプロンプトを言い直します。
- 確認しても質が変だと感じるなら、
/feedbackで、期待したことと得たことを書く。この方法で送るフィードバックには会話のトランスクリプトが含まれ、Anthropic が原因を調べるのにいちばん早い - Claude がプロンプトインジェクションの疑いを警告する、またはその疑いで依頼を断り、警告が名指すテキストが、ファイルや Web の内容でなく Claude Code が自動で会話に足す文脈(用語集 の system reminder)なら、
claude updateを実行して再試行する。更新しても繰り返すなら、引っかかった内容をプロンプトに貼り直さず、報告する(v2.1.201 より前は、Sonnet 5 も一部の依頼を同じように断っていた)
ほかのページで扱うエラー#
次の文言は、該当する機能のページで扱っています。
| 文言 | 見るところ |
|---|---|
Couldn't verify your organization's policy for remote control |
リモートコントロールとモバイル |
403 と This GraphQL query is not enabled for this session(クラウドセッション) |
クラウド(Web)で使う |
upstream rejected the request / request too large for this upstream(Claude apps gateway のセッション) |
Claude apps gateway |
upstream rate limit exceeded(同上) |
Claude apps gateway |
all upstreams failed (N attempted)(同上) |
Claude apps gateway |
Claude Code may not be enabled for your organization(ゲートウェイのサインイン後) |
Claude apps gateway |
Plugin "<plugin>" was not uninstalled: installed_plugins.json(アンインストールの失敗の原因が installed_plugins.json の内容のとき) |
プラグインのリファレンス |
Claude Code's fullscreen renderer didn't finish starting last time on this machine / Claude Code's fullscreen renderer has repeatedly failed to start on this machine |
ターミナル・表示・音声入力 |
エラーを報告する#
このページが扱わない部品のエラーは、それぞれのページを見てください。
- MCP サーバーの接続や認証の失敗:MCP サーバーをつなぐ
- フックのスクリプトの失敗やツールのブロック:フックのリファレンス
- インストール中の権限エラーやファイルシステムのエラー:インストールとログイン
このページに載っていない、または対処で直らないエラーは、次のようにします。
- Claude Code の中で
/feedbackを実行して、トランスクリプトと説明を Anthropic に送る(コマンドは、事前に入力された GitHub の issue を開くことも提案する。Anthropic への送信には認証が要る) - シェルから
claude doctorで、インストールの読み取り専用の診断を行うか、Claude Code の中の/doctorで、設定の問題を見つけて直す - status.claude.com で、進行中の障害を確認する
- GitHub の既存の issue を検索する
設定が効かないときは 設定のデバッグ、動き出したあとの性能の問題は トラブルシューティング も見てください。
公式ドキュメント(英語)
2026年10月5日時点の内容をもとに、日本語でまとめています。