Unparseable hook output now shows the failure kind, exit code and stderr.
What's wrong with this entry?
When a hook prints something Claude Code cannot read as JSON, the message now says which failure it was and includes the hook's exit code and stderr.
- Parsing distinguishes plain text, valid JSON, several JSON documents run together, and output that looks like JSON but is not.
- The last case advises using a real encoder: "Emit the payload with a JSON encoder (jq, ConvertTo-Json, json.dumps) rather than string concatenation so backslashes and quotes inside strings are escaped."
Emit the payload with a JSON encoder (jq, ConvertTo-Json, json.dumps) rather than string concatenation so backslashes and quotes inside strings are escaped.
Strings lifted out of the shipped bundle, so the claim above can be checked against them.
Related
Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.
-
v2.1.234
SessionEnd hooks lose the
bypass_permissions_disabledreasonBoth mention hook
-
v2.1.236
Hooks and Ctrl-C go quiet once shutdown has started
Both mention hook
-
v2.1.236
Shutdown seals transcript writes and gives SessionEnd hooks more time
Both mention hook