{"version":"2.1.299","anchor":"hook-failure-on-pretooluse-can-carry-advice-onfailure-conti","canonical_anchor":"hook-failure-on-pretooluse-can-carry-advice-onfailure-conti","heading":"Unfinished PreToolUse hooks now respect onFailure: continue","tier":"notice","area":"Hooks","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/hook-failure-on-pretooluse-can-carry-advice-onfailure-conti","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299","markdown":"### Unfinished PreToolUse hooks now respect onFailure: continue\n\nA `PreToolUse` hook with `onFailure: continue` that does not finish lets the call run; otherwise the call is blocked with advice\n\n**What**\n\nA hook is a command you set to run at a given moment. A `PreToolUse` hook runs before a tool call and can block it. When such a hook does not finish, Claude Code now looks at its `onFailure` setting:\n\n- With `onFailure: continue`, the tool call goes ahead.\n\n- Otherwise the call is blocked, and the message saying the hook did not finish can now include advice about what to do.\n\nBefore, only a narrower set of calls was refused this way, with a fixed message.\n\n**Why**\n\nHook authors can choose whether an unfinished hook lets calls through or stops them, and can give guidance when it stops them.\n\n- Area: Hooks\n- Names: `PreToolUse`, `onFailure`\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: no"}