PaPoo
cover

exit code 5 が出るとき、/usage が空振りすることがある

claude -p "/usage" --output-format json を投げた直後に exit code 5 で落ちる、あるいは is_error:false の包みだけ返って result がない、という症状が #87983 で報告されています。報告者の環境では、長い print-mode 実行のあとに間隔をおかず起きていました。しかも 3 回の観測のうち 2 回は exit code 5、1 回はエラーヘッダのようなものがありつつ結果本体が欠ける形だったとされています。

手元で確認できる一次情報は、環境メモだけです。

[env_summary]
OS          : Linux 3.10.0-1160.76.1.el7.x86_64 (x86_64)
Python      : 3.8.13
検証日時    : 2026-09-23T08:51:27+09:00

この時点では、こちらで同じ不具合を再現するところまではできていません。なので、断定できるのは「exit code 5 がこの種の失敗として報告されている」ことまでです。

見分けるときは、まず出力の形を見ます。#87983 では次の 2 パターンが分かれていました。ひとつは単純に exit code 5 で stdout に使えるものが出ない形。もうひとつは、JSON の外枠らしきものは返るのに result がない形です。どちらも、少なくともその issue では「/usage を JSON で取ろうとしたときに起きる失敗」としてまとまっています。

同じ exit code 5 でも、別件では意味がかなり違います。#95755 では Windows 上で Bash の起動が MSYS 側の fatal error に落ち、その結果として Exit code 5 が出ています。こちらは bash.exe 自体のエラーが見えているので、/usage の JSON 崩れとは切り分けた方がよさそうです。

また #96078 は、Windows の長い対話セッション中に Edit が権限プロンプトなしで通ってしまった報告です。これは exit code 5 の話ではありませんが、同じクラスタに見えても「権限まわりの挙動」と「コマンド実行の失敗」は別物です。exit code 5 を見たからといって、すぐに permission 問題と決めつけない方がよさそうです。

現時点で、確実に言える対処は多くありません。少なくとも #87983 は closed ですが、報告本文だけを見る限り、原因の特定や再発防止策までは書かれていません。したがって、ここでは「既知の再現形」を覚えておくのが実用的です。長い print-mode 実行の直後に、非対話で claude -p "/usage" --output-format json を叩いて exit code 5result 欠落が出るなら、少なくとも #87983 と似ています。

もしあなたのログに bash.exe の fatal error が出ているなら #95755 側を疑ってください。逆に、JSON の包みだけは出るのに中身が欠ける、あるいは完全に無出力で exit code 5 だけ返るなら、#87983 の系統です。今ある情報では、それ以上の一般化はできません。


検証環境

OS          : Linux 3.10.0-1160.76.1.el7.x86_64 (x86_64)
Python      : 3.8.13
検証日時    : 2026-09-23T08:51:27+09:00

参照した Issue(anthropics/claude-code): #96078, #87983, #95755

同じ著者の記事