Windows: SessionStart plugin hooks show 'hook error' despite succeeding

Resolved 💬 3 comments Opened Feb 16, 2026 by IAmRubenNavarro Closed Feb 20, 2026

Description

On Windows 11, Claude Code v2.1.44 displays "SessionStart:startup hook error" for every plugin with a SessionStart hook, even though the hooks execute successfully and their context is loaded into the session.

Reproduction

  1. Install Claude Code v2.1.44 on Windows 11
  2. Enable any plugin with a SessionStart hook (e.g., superpowers, learning-output-style)
  3. Start a new session
  4. Observe:
⎿  SessionStart:startup hook error
⎿  SessionStart:startup hook error

Despite the errors, hook context IS injected (skills, instructions all present).

Diagnostic Details

  • Claude Code: v2.1.44 (latest)
  • OS: Windows 11 Pro 10.0.26200
  • Shell: Git Bash
  • Affected plugins: superpowers (v4.3.0), learning-output-style

Manual testing of both hooks shows no issues:

  • Exit code: 0
  • stderr: empty
  • JSON output: valid (verified with Python json.loads)
  • No stray \r bytes in output
  • Scripts execute correctly under Git Bash on Windows

What was checked:

  • Both cached and marketplace hook script files exist and are executable
  • No user-level or project-level hooks configured
  • No CRLF contamination in JSON output (0 \r bytes)
  • One script (learning-output-style) has CRLF line endings in the .sh file itself, the other (superpowers) has LF — both show the same error, so line endings are not the differentiator

Expected Behavior

No error banner when hooks exit 0, produce valid JSON on stdout, and emit nothing on stderr.

Actual Behavior

"SessionStart:startup hook error" displayed for each plugin hook, but output is still consumed and applied to the session.

View original on GitHub ↗

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