What probably matters to youSection of the release
What
Hooks are your own commands or web requests that Claude Code runs at set moments, for example before a tool runs. Command hooks and http hooks now accept an onFailure field. Set it to "block" and a failure of that hook is treated as blocking, so the action it guards does not go ahead.
This does not apply to command hooks set to run in the background with async or asyncRewake. When a hook blocks this way, the reason given is blocking because onFailure is "block".
Why
By default a failing hook does not stop anything. A hook that enforces a rule can now fail closed, so a crash or error in the hook stops the action instead of letting it through unchecked.