Hooks issues on Windows — page 3
Issues the maintainers labelled both platform:windows and area:hooks.
334 issues · 114 open · 220 resolved (66%) · first seen Jan 7, 2026
Is this getting better or worse?
This class of problem is still growing. 140 new reports in the last 90 days vs 105 in the 90 before — +33%. The open backlog peaked at 114 in 2026-10 and sits at 114 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
219 of these reports name the Claude Code build they were running, spanning 114 releases. Heaviest reporters:
- Claude Code v2.1.289
- Claude Code v2.1.207
- Claude Code v2.1.143
- Claude Code v2.1.295
- Claude Code v2.1.284
- Claude Code v2.1.280
- Claude Code v2.1.260
- Claude Code v2.1.251
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 33 days across 220 closures. Of the 220 closures with a recorded reason, 24% were closed as completed and 167 as not-planned or duplicate. The most recent completed fix landed in 2026-10.
Workarounds reported by the community
121 of these issues post a workaround someone says worked. The highest-engagement ones:
- [FEATURE] Expose pasted image data to hooks and plugins
- …that plugins/skills can call: Alternative Solutions Current workarounds all have significant limitations: Asking users to provide file paths instead of pasting defeats the purpose of the paste feature and degrades UX. Us…
Found in the description of #16592 · still open - [BUG] SessionStart hooks break stdin on Windows Terminal
- …s valid : JSON is correctly parsed, no errors in processing Workaround - Use vscode plugin - Use WezTerm instead of Windows Terminal when working with projects that have SessionStart hooks, somewhat working but still som…
Found in the description of #23083 · resolved - [Windows] Visible console window flashes on every tool use in v2.1.143
- …es for hook execution on Windows. Alternatively, use with . Workaround Rolling back to v2.1.123 eliminates the issue, but loses subsequent security and feature improvements.
Found in the description of #61051 · resolved - Session hangs mid-turn after a PreToolUse hook returns: tool never dispatches (2.1.220, Windows)
- …Windows event log / crash — empty; the process never dies. Workaround Kill and . Nothing is lost, as file edits are already on disk, but the in-flight turn and its reasoning are gone. What would help - A dispatch-stage…
Found in the description of #95354 · still open - [BUG] Skill subagent inherits parent's 1M-context tier but not extra-usage entitlement
- …log warning instead of failing the subagent. Today the only workaround is to remove the directive entirely (subagent inherits parent + parent's already-paid extra-usage), which defeats the cost-saving intent of declaring…
Found in the description of #57249 · 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 201–300
Ranked by community engagement (reactions weighted over comments). Listing the top 300 of 334 matches; the statistics above cover all 334.
- Feature request: PreCompact / PostCompact hook events
- Allow hooks to set session name (programmatic /rename)
- [BUG] Plugin hooks.json: ${CLAUDE_PLUGIN_ROOT} not expanded on Windows
- [BUG] Hooks execution deferred until terminal tab regains focus (Windows Terminal)
- Claude Code umgeht PreToolUse:Edit Hook durch Python-Script via Bash
- [BUG] SessionStart hooks hang indefinitely on Windows
- [BUG] Desktop (Windows): hook-forced permission prompt for git commit answered "Allow once" without the user seeing it
- Question: supported native bilingual security UI and submission authorization interfaces (Windows 2.1.296)
- Function-hook session.compact replacement re-saves kept messages as new entries, so the desktop app shows them duplicated
- [BUG] onFailure "block" does not block when a Windows hook exits 0xFFFD0000 (powershell.exe -File <missing script> counted as success)
- [BUG] With --project-config-root (desktop worktree sessions), hook processes start in the config root, not the session cwd
- [Critical] Runaway: agent could not be stopped by any in-product means; only closing the VS Code window with the X button stopped it
- [harness] Subagent lifecycle invisible to hooks: resumes log no start, reports delivered twice, tool-written files carry no caller identity
- [Bug] Working directory change hook not triggering
- [BUG] PermissionRequest hook allow for ExitPlanMode no longer skips the plan approval dialog (regression of #15755)
- [Windows] Hook timeout kills only the Git Bash launcher; an orphaned grandchild keeps the stdout pipe open and the session hangs mid-turn indefinitely
- Desktop app: dangling plugin hook (security_reminder_hook.py missing) fires endless 'Background security review found issues' notifications
- [Opus 5] Every hook held. The model went around them. Six seam failures in one session under twelve enforced rules — and the two harness affordances that would close the seams
- SessionStart hook additionalContext silently dropped when source=fork (rewind); startup/compact inject normally
- [FEATURE] Hook visibility for tool calls rejected at input validation (Edit old_string not found): PreToolUse before validation, or a rejection event with additionalContext
- Windows: synchronous command hooks wait for persistent descendants
- Hooks silently dropped when allowManagedHooksOnly is set, and the PreToolUse counter still increments
- [BUG] UserPromptSubmit hook registered and valid but never invoked on real prompt submission (Git Bash CLI, Windows, v2.1.261) — possible regression of #17277
- [BUG] Only one SessionStart hook executes when multiple are registered
- [Windows] Plugin hooks' commandWindows field silently ignored - forces Git Bash, causes MSYS2 crash (errno 1 add_item)
- asyncRewake blocks session startup instead of running in background (docs say "Implies async") — 2.1.246
- Edit tool's auto-opened Browser-pane preview silently reverts the file being edited
- [BUG] SessionStart hook fires for sessions that never materialize (no transcript file is ever created) - side effects get attributed to a real, named session
- [BUG] Windows hook commands with backslash paths silently never execute (bash eats the backslashes) — killed my memory hooks for 46 days
- PermissionRequest hooks never fire in --print mode on 2.1.237, while a PreToolUse control in the same settings file does
- [BUG] PreToolUse prompt-hook deny returns the hook's entire configured prompt to Claude in the tool error, not just the reason
- [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
- Edit tool false-positive JSON validation failure on .claude/settings.json hook commands
- Declared hook timeout does not apply while a hook is blocked reading its stdin payload — hook survives ~300s and holds the tool call
- Subscription OAuth token not passed to plugin hook subprocesses on Windows — security-guidance LLM review silently disabled
- [Feature Request] hooks[].if couples a tool name to the condition, so one condition across N tools costs N handlers
- [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 Request] PreToolUse "Ask" return should include hook message and tool context
- VS Code extension: hook permissionDecisionReason is never shown to the user (manual mode)
- Fable 5: headless -p refusal triggered by benign verbosity-limiting hook injection (bisected repro)
- UserPromptSubmit hook not invoked when prompt contains an attachment (VSCode extension) — distinct from #58269
- Mid-session plugin update leaves session in mixed state: new hook definitions resolve against the old ${CLAUDE_PLUGIN_ROOT} cache until restart
- [BUG] Windows + Git Bash: statusLine/hook command paths with backslashes are silently mangled - status line never renders (root cause behind #57629)
- Hook processes hang forever: client never closes hook stdin pipe (Windows, 2.1.208+)
- PostToolUse hook exit-2 stderr not surfaced to Claude in conversation or in --debug-file logs
- [BUG] Desktop diff panel silently shows the base repo when a WorktreeCreate-hook worktree is not auto-trusted
- TUI freezes (keyboard dead, process alive) when SessionStart hook systemMessage contains block characters U+2588/U+2591 - Windows
- Hook process freezes at startup on Windows (thread Suspended, 0 CPU, never resumed) -> hangs the turn; kills subagents permanently
- hookify plugin: prompt-event rules never fire on Windows (cp1252 encoding) + wrong field name 'user_prompt' vs 'prompt'
- [BUG] Stop Hook Overrides Live User Stop Instruction
- PreToolUse hooks stop firing after EnterWorktree switches session into a linked worktree (Windows, v2.1.207); /hooks reload doesn't fix it
- Remote Control: SessionStart hook sessionTitle output is delivered to the bridge but never applied to the session's display title
- Windows: hooks leak shell redirection - zero-byte files created in CWD from '>' tokens in tool input (e.g. '-> Signal:' creates file 'Signal')
- Desktop app: hook decision:block reason not displayed
- [BUG] SessionStart (and other command-type) hooks fail to execute on Windows — shell resolution drops \bash.exe from Git path
- Cowork (Windows): UserPromptSubmit hooks now execute, but stdout/additionalContext is discarded — wire hook output into context at parity with Claude Code
- Windows desktop app: plugin SessionStart hook executes but its stdout is never injected into session context
- [BUG] VS Code extension: Claude can't see problems of the file past a certain line
- UserPromptSubmit hook failure blocks all input when plugin cache file is missing [Errno 2]
- Windows: SessionStart hooks that invoke bash fail (exit 127, bash: command not found)
- Hook `command` field is wrapped in bash -c '...'; substituted paths with apostrophes brick the session
- PreToolUse hooks may not fire for subagent (Agent tool) Bash calls
- [BUG] Can't even start hook due to stupid mkdir error since 2.1.80
- C:/Program Files/Git/new command should fire SessionStart hooks
- [BUG] Stop hook background_tasks is empty while a finished task's notification is still queued, so hooks treat a mid-chain turn end as session done
- [Bug] Plugin API: a plugin's own hooks are skipped for $.agent.spawn made after its hook returned (auto mode then refuses the spawn)
- [FEATURE] Expose MCP server connection status to statusLine commands and hooks
- agent-memory@inline PostToolUse hook fails on Windows usernames with a space (unquoted hook path)
- [Feature Request] agents-view should emit prompt.autocomplete and other hooks for Claude Mods
- [VS Code, Windows] The first Bash result fires CwdChanged for a drive-letter case change (`c:\` to `C:\`), and FileChanged stops firing
- [BUG] /goal clear typed while a goal is running is queued forever: the goal's Stop hook never lets the turn end
- [BUG] SessionStart hooks declared in MANAGED settings deliver no additionalContext in the desktop app on Windows; the same hook from user settings delivers, and managed settings deliver in the terminal CLI
- All project hooks silently disappear for the rest of a session after the project's volume dismounts and remounts (Windows, Google Drive for desktop)
- [MODEL] Agent briefs/replies refused by the user's own hook: STOP BLOCK: release gate (worked as designed) (2 on one day)
- [MODEL] Agent briefs/replies refused by the user's own hook: STOP BLOCK: reply uses internal ids (8 on one day)
- [MODEL] Agent briefs/replies refused by the user's own hook: UPLOAD BLOCKED (worked as designed) (1 on one day)
- [MODEL] Agent briefs/replies refused by the user's own hook: DESTRUCTIVE ACTION BLOCKED (false positive) (4 on one day)
- [MODEL] Agent briefs/replies refused by the user's own hook: SITE DUPLICATE (1 on one day)
- [MODEL] Agent briefs/replies refused by the user's own hook: GUARD UNTESTED (1 on one day)
- [MODEL] Agent briefs/replies refused by the user's own hook: FAKE REPLY (1 on one day)
- [MODEL] Agent briefs/replies refused by the user's own hook: NO STOP (2 on one day)
- [MODEL] Agent briefs/replies refused by the user's own hook: READ-FIRST MISSING (2 on one day)
- [MODEL] Agent briefs/replies refused by the user's own hook: THROTTLE (3 on one day)
- [MODEL] Agent briefs/replies refused by the user's own hook: NO EDIT (3 on one day)
- [MODEL] Agent briefs/replies refused by the user's own hook: JOB MISSING (5 on one day)
- [MODEL] Agent briefs/replies refused by the user's own hook: SITE MISSING (6 on one day)
- [MODEL] Agent briefs/replies refused by the user's own hook: NO RELAY (15 on one day)
- PreToolUse hooks declared in project .claude/settings.json never fire (user-level works)
- [BUG] prompt.suggest hooks never run for the engine's own suggestion in SDK mode (Claude Desktop Code tab)
- [BUG] hookify fails with "Expecting ',' delimiter" on long PowerShell commands
- [BUG] A hooks-shaped section under another top-level settings key silently stops every hook in the file
- [BUG] Detailed transcript for "Edit|Write" hook says "2 PostToolUse hooks ran", but only 1 hook actually ran (once)
- PostToolUse hooks never fire from the desktop Code-tab surface
- [FEATURE] Pass quotaLimits (rateLimitType, resetsAt) to the StopFailure hook input
- [harness] PostToolUse hooks run synchronously for subagents with no agent or worktree context; a per-edit test hook starved a builder for two hours
- [feedback] guard-set-delta: A refactor moved safety-critical halt code behind facades;
- [Bug] Desktop app displays assistant reply text that the transcript records only as a (summarized) thinking block
- [Windows] Hook timeout doesn't release the tool call while an orphaned descendant still holds the hook's stdout