{"version":"2.1.290","anchor":"webfetch-denies-permissionrequest-hook-approvals-that-attach","canonical_anchor":"webfetch-denies-permissionrequest-hook-approvals-that-attach","heading":"WebFetch refuses hook approvals that attach arguments it can't check","tier":"notice","area":"Hooks","scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.290\/e\/webfetch-denies-permissionrequest-hook-approvals-that-attach","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.290","markdown":"### WebFetch refuses hook approvals that attach arguments it can't check\n\nIf a PermissionRequest hook approves a web fetch but attaches arguments WebFetch can't check, Claude Code now denies the fetch\n\n**Unclear.** Exactly which hook replies cause a fetch to be denied is not settled.\n\n**What**\n\nWebFetch is the tool Claude uses to read a web page. A `PermissionRequest` hook is your own script that runs when a tool call needs a permission decision, and it can approve the call. If such a hook approves a fetch but also attaches arguments WebFetch cannot check, Claude Code now denies the fetch. The message says nothing was fetched because the hook approved it with arguments WebFetch cannot check. This kind of approval is also never treated as one an automatic classifier could approve.\n\n**Why**\n\nIt stops a hook from changing the address or the request on its way through without the permission check seeing what changed.\n\n- Area: Hooks\n- Tier: You'll notice\n- Useful: 1\/5\n- Signal: 2\/5\n- Scope: individual\n- Heads-up: yes"}