PostToolUse hooks display "(1/2 done)" despite both hooks completing successfully

Resolved 💬 5 comments Opened Jan 4, 2026 by rso42 Closed Feb 24, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

When running two PostToolUse hooks, Claude Code displays "Running PostToolUse hooks… (1/2 done)" as the final state, even though both hooks complete successfully.

Debug log proves both hooks complete (--debug mode):

[DEBUG] Matched 2 unique hooks for query "Bash" (2 before deduplication)
[DEBUG] Hooks: Checking initial response for async: {"hookSpecificOutput"...}
[DEBUG] Successfully parsed and validated hook JSON output ← Hook 1 ✓
[DEBUG] Hooks: Checking initial response for async: {"hookSpecificOutput"...}
[DEBUG] Successfully parsed and validated hook JSON output ← Hook 2 ✓

Both hooks run, output valid JSON, and are parsed/validated. The "(1/2 done)" is a UI display bug.

What Should Happen?

Display should show "(2/2 done)" when both hooks complete successfully.

Error Messages/Logs

Steps to Reproduce

  1. Configure two PostToolUse hooks in ~/.claude/settings.json:

```json
"PostToolUse": [
{
"hooks": [
{"type": "command", "command": "/path/to/hook1.py", "timeout": 5},
{"type": "command", "command": "/path/to/hook2.py", "timeout": 2}
]
}
]

  1. Run any command that triggers PostToolUse (e.g., Bash)
  2. Observe "Running PostToolUse hooks… (1/2 done)" displayed
  3. Run with --debug to confirm both hooks complete successfully

Claude Model

Opus

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.0.76

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

iTerm2

Additional Information

_No response_

View original on GitHub ↗

This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗