Hooks issues on Linux — page 2
Issues the maintainers labelled both platform:linux and area:hooks.
132 issues · 36 open · 96 resolved (73%) · first seen Aug 5, 2025
Is this getting better or worse?
This class of problem is holding steady. 46 new reports in the last 90 days vs 43 in the 90 before — +7%. The open backlog peaked at 36 in 2026-10 and sits at 36 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
96 of these reports name the Claude Code build they were running, spanning 70 releases. Heaviest reporters:
- Claude Code v2.1.296
- Claude Code v2.1.258
- Claude Code v2.1.206
- Claude Code v2.1.111
- Claude Code v2.1.119
- Claude Code v2.1.74
- Claude Code v2.1.294
- Claude Code v2.1.281
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 96 closures. Of the 96 closures with a recorded reason, 25% were closed as completed and 72 as not-planned or duplicate. The most recent completed fix landed in 2026-08.
Workarounds reported by the community
46 of these issues post a workaround someone says worked. The highest-engagement ones:
- PermissionRequest hooks not triggered for subagent permission requests in Agent Teams
- …The current behavior makes these two features incompatible. Workaround Pre-approve common subagent commands in permissions so they don't need to ask: This lets subagents work autonomously but removes the ability to revie…
Found in the description of #23983 · still open - [Critical] Max Plan subscriber: Opus 4.6 instruction-following regression breaks production workflows — 24-hook enforcement system cannot compensate for model-level degradation
- …survive compression with their priority intact. Pattern E: "Workaround Generation" When a hook blocks a forbidden action, the model generates creative alternatives that achieve the same forbidden outcome through a differ…
Found in the description of #34358 · resolved - v2.1.23+ causes 100% CPU hang with multiple parallel instances and hooks
- …- The UI becomes unresponsive - Process must be killed with Workaround Using v2.1.22 resolves the issue completely: With v2.1.22, everything works perfectly - all hooks, all plugins, multiple parallel instances. Potentia…
Found in the description of #22172 · resolved - PreToolUse/PostToolUse hooks do not fire for subagent (Agent tool) tool calls
- …which is the primary recommended workflow for performance. Workaround We query the actual systems of record ( , Jira API) at checkpoint time rather than trusting hook-maintained counters, and reconcile the state file af…
Found in the description of #34692 · resolved - Feature request: built-in, cross-platform way to list running Claude Code sessions and their state
- …broadly useful capability beyond that one use case. Current workaround and its limitations Without an official API, the only way I found to approximate this is: 1. Find processes via . 2. Wire , , , , and hooks in that e…
Found in the description of #94620 · still open
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 101–132
Ranked by community engagement (reactions weighted over comments).
- [Bug] SessionStart hook sessionTitle not reflected in ListAgents alias
- [BUG] Recursive FileChanged watchPaths registration over a large NFS directory blocks the main thread at startup (D state, rpc_wait_bit_killable)
- Linux: hook blocked reading stdin (pipe kept open, no EOF) wedges the session for hours; declared hook timeout not enforced (2.1.246)
- [FEATURE]: Allow the built-in /goal Stop hook under allowManagedHooksOnly (or add a managed opt-in)
- Read dedup does not account for PostToolUse updatedToolOutput: repeated Reads bypass substituting hooks, and readFileState records disk content the model never received
- Bash tool shell runs with `expand_aliases` enabled — shell aliases can silently rewrite commands after PreToolUse hook approval
- PostToolUse hooks do not fire in daemon/background-job sessions (PreToolUse + SessionStart do) — v2.1.208
- [FEATURE] Render hook system messages with user-facing labels
- Hooks fail open when CWD is invalidated (e.g. worktree deletion)
- PreToolUse hooks on the `Bash` matcher silently and persistently stop firing partway through a session
- Plugin-sourced PreToolUse hooks never dispatch for MCP tool-name matchers (mcp__<server>__.*)
- [BUG] /doctor schema validator rejects exec-form (args[]) hooks added in 2.1.139
- --worktree --tmux skips WorktreeCreate/WorktreeRemove hooks
- [BUG] Headless (-p / stream-json): mid-turn task notifications and hook attachments never reach the model
- [BUG] An agent started by $.agent.spawn from a $.clock callback can’t reach its own plugin’s tool.call hook
- Focus view hides the answer written before a Stop hook continues the turn
- [BUG] Remote Control: AskUserQuestion answered from the web reaches PostToolUse hooks without the call's `metadata`
- [FEATURE] A launcher cannot start a session's first turn without it being recorded as a typed human prompt
- [FEATURE] Let a hook or a CLI command request /compact in a running session (not only typing it)
- [FEATURE] Set, pause and clear a native /goal without typing (launcher flag, hook output or CLI)
- [BUG] `hookName` is `Event:Matcher` — hooks have no user-visible identity
- [BUG] Stop hook exit 2 is silently made non-blocking when its stderr mentions "No such file" or "can't open" (re-file of #60490)
- [BUG] CLAUDE_ENV_FILE env lost after in-app /resume — hook writes to startup session dir, Bash reads resumed dir (still on 2.1.287; #40391, #24775 auto-closed)
- [BUG] gitOperation reports PR "created" when a command merely mentions "gh pr create"
- [BUG] managed-settings.json "hooks" key is silently ignored (PreToolUse hooks never registered)
- [Bug] /goal Stop hook infinite loop when auto-mode classifier denies required action
- Let the model or a hook rename the session / set the terminal title
- [BUG] Bash tool inlines CLAUDE_ENV_FILE into a single `bash -c` argument, so a hook env file over ~128 KiB makes every Bash call fail with E2BIG and permanently breaks the session
- [BUG] PreToolUse hook `ask` resolves correctly in interactive mode but is silently denied in headless/stream-json mode, because the `PermissionRequest` hook never fires
- A `/goal` Stop-hook record written mid-turn splits an advisor server-tool call from its result, permanently bricking the session (400 loop)
- Hook `additionalContext` is silently truncated at 10,000 characters, discarding injected instructions
- `hasTrustDialogAccepted: false` coexists with fully-working hooks in 2.1.241 — no reliable programmatic signal for workspace trust