[Bug] Async hooks fail to notify Claude Code of completion

Resolved 💬 3 comments Opened Jan 26, 2026 by zippoxer Closed Jan 30, 2026

Bug Description
Async hooks don't notify Claude Code on completion.

Environment Info

  • Platform: darwin
  • Terminal: ghostty
  • Version: 2.1.19
  • Feedback ID: bb85982b-fd0a-4e89-beb5-ccfb946e2e15

Errors

[{"error":"Error: ENOENT: no such file or directory, scandir '/Library/Application Support/ClaudeCode/.claude/skills'\n    at readdirSync (unknown)\n    at <anonymous> (/$bunfs/root/claude:12:1903)\n    at mW (/$bunfs/root/claude:11:35435)\n    at readdirSync (/$bunfs/root/claude:12:1864)\n    at ILR (/$bunfs/root/claude:2215:380)\n    at ILR (/$bunfs/root/claude:2215:1350)\n    at <anonymous> (/$bunfs/root/claude:2215:4440)\n    at <anonymous> (/$bunfs/root/claude:2215:5171)\n    at A (/$bunfs/root/claude:11:7259)\n    at FZ8 (/$bunfs/root/claude:4862:4342)","timestamp":"2026-01-26T10:00:23.046Z"},{"error":"Error: NON-FATAL: Lock acquisition failed for /Users/zippo/.local/share/claude/versions/2.1.19 (expected in multi-process scenarios)\n    at BUR (/$bunfs/root/claude:4003:2091)\n    at YkA (/$bunfs/root/claude:4003:1202)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-01-26T10:00:23.092Z"}]

Export


 ▐▛███▜▌   Claude Code v2.1.19
▝▜█████▛▘  Opus 4.5 · Claude Max
  ▘▘ ▝▝    ~/code/finality

❯ please stop 

⏺ I'm not currently running any tasks. Is there something specific you'd like me
   to help you with?

❯ an async hook completed, do you see its response? 
  ⎿  Async hook Stop completed

⏺ No, I don't see any hook response in my context. The only messages I have are
  your initial "please stop" and this follow-up question. If a hook completed,
  its output wasn't delivered to me.

❯ /feedback 
  ⎿  Feedback / bug report submitted
 ▐▛███▜▌   Claude Code v2.1.19
▝▜█████▛▘  Opus 4.5 · Claude Max
  ▘▘ ▝▝    ~/code/finality

❯ please stop 

⏺ I'm not currently running any tasks. Is there something specific you'd like me
   to help you with?

❯ an async hook completed, do you see its response? 
  ⎿  Async hook Stop completed

⏺ No, I don't see any hook response in my context. The only messages I have are
  your initial "please stop" and this follow-up question. If a hook completed,
  its output wasn't delivered to me.

❯ /feedback 
  ⎿  Feedback / bug report submitted

Config & Hooks

{
  "hooks": {
    "Stop": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "./ops/scripts/test-stop-hook.sh",
            "timeout": 30,
            "async": true
          }
        ]
      }
    ]
  }
}
#!/bin/bash
# Test Stop hook that sleeps 10 seconds then injects a prompt back to Claude

echo "[test-stop-hook] Starting 10 second sleep..." >&2

sleep 10

echo "[test-stop-hook] Sleep complete, injecting prompt..." >&2

# Return JSON to block stopping and inject a message
cat <<'EOF'
{
  "decision": "block",
  "reason": "Async hook completed after 10 seconds! This proves async: true works for background hooks."
}
EOF

View original on GitHub ↗

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