{"version":"2.1.232","anchor":"blocking-web-fetches-with-a-pretooluse-hook-now-explains-the","canonical_anchor":"blocking-web-fetches-with-a-pretooluse-hook-now-explains-the","heading":"Blocking web fetches with a PreToolUse hook now explains the consequence","tier":"notice","area":"Hooks","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.232\/e\/blocking-web-fetches-with-a-pretooluse-hook-now-explains-the","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.232","markdown":"### Blocking web fetches with a PreToolUse hook now explains the consequence\n\nBlocking a web fetch via a hook now tells Claude that's the only fetch route, so it stops retrying.\n\n**What**\n\nIf a PreToolUse hook denies a Task call that targets the built-in `web-fetch` agent, and the session has no direct WebFetch tool available, the error returned to Claude now appends a paragraph saying this is the only route to fetching web pages and that it should tell the user rather than retry.\n\n**Details**\n\n- The added text also describes how a hook can exempt this case, by matching on `tool_input.subagent_type`.\n- It notes the caveat that matching on that name would also let through a project, user or plugin agent defined under the same name.\n- Only appended when there is no separate WebFetch tool in the session.\n\n**Evidence**\n\n`so while this hook blocks it there is no other way to fetch them. If the page is required, tell the user;`\n\n- Area: Hooks\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 1\/5"}