PaPoo
cover

hook_non_blocking_error が Windows で出るときに見ておきたいこと

まず、この症状は「Claude Code の hook が関係しているらしいが、処理自体は止まらない」タイプではなく、少なくとも issue 上ではもっと厄介に見えます。Windows 環境で hook_non_blocking_error が繰り返し出て、設定した hook コマンドが実行されていないように見える、という報告が上がっています。

報告は 2 件あり、どちらも Windows 上の Claude Code に関するものです。#72636 では「configured hook commands を実行しない。hook runner が git を呼んで失敗を黙って飲み込む」と書かれています。#79847 では、Windows で fg: no job controlhook_non_blocking_error として再発し、同期 hook で繰り返し起きるとされています。

自分の環境で確認できたのは、Claude Code CLI のバージョンと settings.json の構造です。ここから言えるのは、少なくとも hook 設定自体は複数のイベントにまたがって置かれている、ということまでです。

$ claude --version
2.1.207 (Claude Code)
[settings_structure]
~/.claude/settings.json:
  permissions: object
    allow: array[73]
    additionalDirectories: array[3]
  model: str
  hooks: object
    Stop: array[1]
      hooks: array[1]
        ...
    PermissionRequest: array[1]
      hooks: array[1]
        ...
    PreToolUse: array[1]
      matcher: str
      hooks: array[1]
        ...
    UserPromptSubmit: array[1]
      hooks: array[1]
        ...
    SubagentStop: array[1]
      hooks: array[1]
        ...
  effortLevel: str
  voiceEnabled: bool
  agentPushNotifEnabled: bool
~/git/papoo/newsbot_openai/.claude/settings.json: (存在しない)
~/git/papoo/newsbot_openai/.claude/settings.local.json: (存在しない)

ここで大事なのは、issue 側の観測と合わせると、hook_non_blocking_error は「単発の表示崩れ」ではなく、hook の実行経路そのものに問題がある可能性が高いことです。#79847 のコメントでは、セッションの transcript を調べたところ hook_non_blocking_error の 191 件すべてで stdout が空だったとされています。さらに、同じ設定の中で async: true の hook 呼び出し 9 件ではこのエラーが一度も出ていない、と書かれています。これは、少なくともその報告者の環境では、同期 hook に寄って症状が出ていたことを示しています。

ただし、ここから先は断定できません。自分の検証出力だけでは、あなたの環境で同じことが起きるかは分からないですし、#72636#79847 が同じ原因かどうかも、現時点では言い切れません。少なくとも issue 上では、どちらも Windows で hook 実行まわりが壊れて見える、という点は共通しています。

切り分けるなら、次の順で見るのが自然です。

まず、Windows かどうかです。両 issue とも Windows です。次に、同期 hook かどうかです。#79847 の報告では、"type": "command" の同期 hook で再現し、async では出ないとされています。最後に、hook_non_blocking_error が出たときに hook 側の出力が残っているかです。issue のコメントでは、stdout が空だったケースが大量に集計されています。

現時点で確認できる事実だけを並べると、hook_non_blocking_error は少なくとも Windows の Claude Code で起きており、同期 hook と相性が悪そうです。実際の修正方法までは、この材料だけでは書けません。未解決の症状として扱うのが安全です。


検証環境

claude --version : 2.1.207 (Claude Code)
OS          : Darwin 25.3.0 (arm64)
Python      : 3.14.2
検証日時    : 2026-08-20T22:38:46+09:00

参照した Issue(anthropics/claude-code): #79847, #72636

同じ著者の記事