{"version":"2.1.299","anchor":"permission-prompt-deny-answers-skip-permissionrequest-hooks","canonical_anchor":"permission-prompt-deny-answers-skip-permissionrequest-hooks","heading":"Denied permission answers passed on from a subagent no longer run PermissionRequest hooks","tier":"notice","area":"Hooks","scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/permission-prompt-deny-answers-skip-permissionrequest-hooks","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299","markdown":"### Denied permission answers passed on from a subagent no longer run PermissionRequest hooks\n\nWhen a subagent's permission answer is a denial, Claude Code now skips `PermissionRequest` hooks instead of always running them\n\n**What**\n\nA subagent is a helper Claude starts to work on part of a task. A `PermissionRequest` hook is a script you can set up to run when a tool call needs a permission decision. When a permission answer is passed on from a subagent and that answer is a denial, Claude Code now skips these hooks. Before, they always ran.\n\nTwo smaller changes come with it:\n\n- Claude Code records whether the prompt held back, offered a broad, or offered an exact \"always allow\" option.\n\n- If a hook fails after the session has been stopped, the error is passed on rather than ignored.\n\n**Why**\n\nIf you rely on `PermissionRequest` hooks, they will not fire for denials handed up from a subagent.\n\n- Area: Hooks\n- Names: `PermissionRequest`\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 2\/5\n- Scope: individual\n- Heads-up: yes"}