Hooks issues on VS Code
Issues the maintainers labelled both platform:vscode and area:hooks.
65 issues · 25 open · 40 resolved (62%) · first seen Feb 26, 2026
Is this getting better or worse?
This class of problem is still growing. 35 new reports in the last 90 days vs 28 in the 90 before — +25%. The open backlog peaked at 25 in 2026-08 and sits at 25 today.
Derived by counting each matching issue from its creation date until it closed. First-party
computation over the anthropics/claude-code tracker — the trend is not published
anywhere upstream.
Which builds report this
46 of these reports name the Claude Code build they were running, spanning 40 releases. Heaviest reporters:
- Claude Code v2.1.198
- Claude Code v2.1.224
- Claude Code v2.1.211
- Claude Code v2.1.210
- Claude Code v2.1.181
- Claude Code v2.1.123
- Claude Code v2.1.247
- Claude Code v2.1.238
Report volume, not a defect count: an issue can mention a build without that build having caused the failure. Versions come from the version string in the bug-report template, matched against real published tags.
Do these get fixed?
Median time to close is 34 days across 40 closures. Of the 40 closures with a recorded reason, 33% were closed as completed and 27 as not-planned or duplicate. The most recent completed fix landed in 2026-08.
Workarounds reported by the community
24 of these issues post a workaround someone says worked. The highest-engagement ones:
- Feature request: built-in completion notifications for VS Code extension
- …ainful) The community has converged on increasingly complex workarounds: - Time-based debouncing (sleep 3s, check if another Stop fires) — arbitrary, unreliable - Transcript JSONL parsing in Stop hooks to find recent tim…
Found in the description of #29928 · still open - [BUG] Notification hooks not firing for permission_prompt in VS Code extension
- …created - Other hooks (PreToolUse, Stop) work as expected - Workaround: Using PreToolUse hook with matcher "Write Edit Bash NotebookEdit" to achieve similar functionality - Unclear if this issue exists in the CLI version…
Found in the description of #55875 · resolved - [BUG] PermissionDecision in PreToolUse is ignored in latest VS Code Extension
- …class of bug as 37210 — is ignored for certain tool types. Workaround using chmod defense-in-depth: For the standard destructive command hooks: — 8 hooks that use exit code 2 (which does work reliably for Bash tool bloc…
Found in the thread of #36286 · resolved - PreToolUse(Bash) hook returning permissionDecision: "defer" causes "[Tool result missing due to internal error]"
- …instead of falling through to the normal permission system. Workaround Disabling the hook (or changing - ) restores Bash. Neither is acceptable long-term: is documented as "fall through to the normal permission system,"…
Found in the description of #64389 · still open - [BUG] No hook event fires for sandbox network permission popup in v2.1.120 (regression from v2.1.76)
- …last comment on 23217]( in v2.1.76 the event at least fired as a workaround. In v2.1.120 even that's gone. What Should Happen? should fire when the popup appears, with and the target host in . The docs at describe exactl…
Found in the description of #68399 · resolved
Excerpts are quoted from the linked issue so you can judge relevance before opening it. Threads that only ask for a workaround, or report that there is none, are excluded. These are community suggestions, not official guidance from Anthropic — read the full thread before applying one.
Matching issues 1–65
Ranked by community engagement (reactions weighted over comments).
- Feature request: built-in completion notifications for VS Code extension
- [BUG] Notification hooks not firing for permission_prompt in VS Code extension
- [BUG] UserPromptSubmit hook rejection reason never displayed (Desktop + VS Code)
- [BUG] The Notification hook never fires when Claude Code runs as the VSCode native extension
- [BUG] PermissionDecision in PreToolUse is ignored in latest VS Code Extension
- PreToolUse(Bash) hook returning permissionDecision: "defer" causes "[Tool result missing due to internal error]"
- Hook systemMessage and statusMessage not displayed in VSCode extension
- [BUG] No hook event fires for sandbox network permission popup in v2.1.120 (regression from v2.1.76)
- [BUG] Session resume loses 80%+ of conversation — progress entries create parasitic forks in parentUuid chain
- Webview crash "Unhandled case: [object Object]" — markdownlint diagnostics with non-string `code` field
- [BUG] Claude Code — Per-Agent Permission Control Gap
- [BUG] v2.1.142 VSCode extension: PostToolUse Bash hook does NOT fire for LLM-initiated Bash tool calls (stream-json mode)
- Stop hook does not fire in VS Code / VSCodium extension mode
- [BUG] PreToolUse updatedInput silently ignored for Edit tool — works for Read and Bash
- [BUG] Prompt cache invalidated by rewrites of messages in long sessions
- VS Code extension: Notification hooks don't fire on permission-approval or elicitation dialogs
- Hook bug: PreToolUse permissionDecision:deny is silently ignored on ExitPlanMode
- Read tool bypasses PreToolUse hooks and permissions.deny rules in VSCode extension
- Allow hooks to set the session name (e.g. reset tab title on /clear)
- [Bug] Stop hook error: Failed with non-blocking status code
- VSCode extension: SessionStart hook receives source='startup' after /clear instead of 'clear'
- UserPromptSubmit hook additionalContext not injected into model context in VSCode extension
- Stop hook does not fire in VSCode extension
- [BUG]: VS Code Extension: Windows-styled paths in command in hooks
- User-level settings.json hooks silently ignored in v2.1.120 VSCode extension
- [BUG] PostToolUse hook stdout JSON output duplicated in terminal and context (re-filing #23381)
- [BUG] PostToolUse hook exit-2/stderr warning not delivered to model in VSCode extension
- [BUG] VS Code extension's native permission-prompt UI doesn't fire the Notification (permission_prompt) hook
- Stop hook does not fire reliably in VSCode extension (works via CLI, confirmed via git history)
- Subagent tool calls: PreToolUse denials don't surface to the parent, and hook payload carries the parent's session_id
- Session-env snapshot file breaks when sourced: unquoted LS_COLORS/SSH_CONNECTION/LESSCLOSE spam 'command not found' on every Bash call
- Model behavior: agent substitutes easier implementations for explicit specs, makes unverified 'done' claims, games user-defined enforcement hooks (7-day pattern)
- [BUG] CLI repeatedly self-spawns sessions with prompt "Code" every ~12s, independent of VSCode
- Per-turn command hooks (PreToolUse/UserPromptSubmit/Stop) don't fire in non-interactive modes (VS Code extension, `claude -p`) — only SessionStart fires
- [BUG] ralph-loop: Stop hook fails to detect a correct <promise> when the transcript window contains a control character
- [FEATURE] Programmatic control over session titles (disable / instruct / post-edit the auto-titler)
- [Bug] bash: .claude/hooks/skill-instructions-hook.sh: No such file or directory
- [BUG] VS Code extension doesn't render outputs from user-prompt-submit-hook
- [Bug] Notification hooks not firing for permission_prompt in VS Code extension
- [BUG] Notification hook does not fire in VS Code/Cursor extension when Claude asks for user input
- [Bug] FileChanged hook doesn't detect file modifications from Bash tool execution
- HTTP hooks silently fail in second+ concurrent sessions (report success, never send request)
- VS Code extension: hook permissionDecisionReason is never shown to the user (manual mode)
- SessionStart hooks fire for phantom sessions that never materialize (no transcript is ever created), racing the real session within a few hundred ms
- VS Code extension: Stop-hook-blocked draft and its rewrite both render as duplicate full responses
- PreToolUse hook's empty stdout forces an interactive prompt, ignoring an existing allow rule (VS Code extension)
- [BUG] VS Code extension renders no SessionStart hook output — systemMessage, statusMessage, and additionalContext never reach the user (refile of stale-closed #47692)
- PreToolUse hooks intermittently not invoked at all (VSCode extension host, Windows)
- [BUG] duplicate for 69380 Plugin hooks.json does not register the MessageDisplay hook event (other events load fine)
- PreMessageSend hook event silently removed in v2.1.96 — breaks existing configs without warning
- Include rate_limits data in hook inputs (Stop, Notification)
- UserPromptSubmit hooks permanently stop firing for a session, correlated with a duplicate generate_session_title request
- PreToolUse hook silently stops firing mid-session and never recovers; concurrent session unaffected
- VS Code extension: SessionStart plugin hook additionalContext logged as succeeded but never injected into model context
- [BUG] Stop hook no longer fires on stream-stall-terminated turns ("The response stopped arriving") — StopFailure fires instead but its decision output is ignored, breaking auto-continue hooks
- VS Code extension: PreToolUse 'ask' permission tier (static rules + hooks) silently resolves to allow, no prompt shown
- [Bug] Fable 5 fails to persist explicit per-turn anti-closure instructions and reverts to trained wrap-up format during active work
- [BUG] `/goal` and `/goal clear` report "No goal set" after a met/failed verdict while the Stop hook stays armed
- [BUG] `/goal`: the Stop-hook condition is frozen at creation time and the verifier cannot see later cancellation
- [FEATURE] VS Code extension doesn't render Stop-hook systemMessage
- [Feature Request] PreToolUse "Ask" return should include hook message and tool context
- UserPromptSubmit hook not invoked when prompt contains an attachment (VSCode extension) — distinct from #58269
- [Windows] Bash tool permanently wedged: hook env (CLAUDE_ENV_FILE) grows on every compact, torn export line fails every command with "line 182: e: command not found" (exit 127)
- [BUG] VS Code window reload fires SessionStart twice (throwaway source=startup + resume) — creates a phantom session hooks cannot distinguish
- [BUG] VS Code extension: Claude can't see problems of the file past a certain line