What
Hooks are your own commands that Claude Code runs at set moments, such as before a tool is used. Before this change, if Claude Code hit an error while working out which hooks match an event, it ran no hooks and said nothing. Now it:
- logs "Failed to resolve matching hooks for" followed by the event
- records the failure in usage data, unless usage data is turned off
- passes the error on, if the hook rules had already been read
Hooks that belong to a plugin can also now have their if conditions checked against a stand-in for the tool's input.
Why
A broken hook rule used to switch hooks off without any sign. Now there is a log line you can find.
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubt
It is not clear what the stand-in path for plugin hooks is for.