Plugin hook scripts lose execute permissions after install, causing SessionStart:resume hook error

Resolved 💬 5 comments Opened Mar 28, 2026 by yozefutuuubes Closed May 20, 2026

Describe the bug

When a plugin's hook script is installed without execute permissions, Claude Code fails with SessionStart:resume hook error on every session resume. The script exists at the correct path but is not executable, so the shell rejects it with a permission error.

To reproduce

  1. Install the learning-output-style plugin
  2. Check permissions on the installed hook script:

``
ls -la ~/.claude/plugins/cache/claude-plugins-official/learning-output-style/unknown/hooks-handlers/session-start.sh
``

  1. Observe -rw-r--r-- (no execute bit)
  2. Resume any existing session — SessionStart:resume hook error appears on every resume

Expected behaviour

Claude Code should ensure hook scripts are executable after installation (i.e. apply chmod +x to any script referenced in hooks.json commands).

Workaround

chmod +x ~/.claude/plugins/cache/claude-plugins-official/learning-output-style/unknown/hooks-handlers/session-start.sh

Note: this fix is reset on plugin updates, requiring the workaround to be reapplied each time.

View original on GitHub ↗

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