{"version":"2.1.300","anchor":"hook-match-errors-can-now-abort-instead-of-being-swallowed","canonical_anchor":"hook-match-errors-can-now-abort-instead-of-being-swallowed","heading":"More errors while matching hooks now stop the run instead of being ignored","tier":"notice","area":"Hooks","scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.300\/e\/hook-match-errors-can-now-abort-instead-of-being-swallowed","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.300","markdown":"### More errors while matching hooks now stop the run instead of being ignored\n\nSome errors raised while Claude Code works out which hooks apply now stop the operation instead of being logged and skipped\n\n**What**\n\nA hook is a command or script you configure to run automatically at certain points, such as before a tool runs. Before running hooks, Claude Code first works out which ones match the current event.\n\nWhen that matching step hit an error, Claude Code usually logged it and carried on as if no hooks matched. Only one narrow case let the error through. Now an additional kind of error is also passed on and stops the operation. All other errors are still logged, and the step still runs with no hooks.\n\n**Why**\n\nSome failures while resolving hooks, possibly cancellations, now surface instead of being silently treated as \"no hooks apply\".\n\n- Area: Hooks\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: yes"}