Plugin cache updates leave stale paths in settings.json
Resolved 💬 3 comments Opened Jan 12, 2026 by iamadalek Closed Feb 27, 2026
Description
When a plugin updates and gets a new cache hash, references to the old hash in ~/.claude/settings.json are not updated. This causes hook errors when the old cached directory is cleaned up.
Steps to Reproduce
- Have a plugin installed with hooks configured in settings.json (e.g.,
ralph-wiggum) - Plugin updates and gets new cache hash (e.g.,
6d3752c000e2→dbc4a7733cd4) - Old cache directory is removed
- settings.json still references the old hash
Error
Stop hook error: Failed with non-blocking status code: /bin/sh: /Users/username/.claude/plugins/cache/claude-plugins-official/ralph-wiggum/6d3752c000e2/hooks/stop-hook.sh: No such file or directory
Affected Paths
Both hooks and permissions can reference stale hashes:
{
"permissions": {
"allow": [
"Bash(/Users/username/.claude/plugins/cache/.../6d3752c000e2/scripts/*)"
]
},
"hooks": {
"Stop": [{
"hooks": [{
"command": "/Users/username/.claude/plugins/cache/.../6d3752c000e2/hooks/stop-hook.sh"
}]
}]
}
}
Expected Behavior
When a plugin cache is updated to a new hash, settings.json should be updated to reference the new paths, or plugins should use stable paths that don't include the hash.
Workaround
Manually update the hash in ~/.claude/settings.json to match the current cache directory.
Environment
- Claude Code version: latest (as of 2025-01-12)
- OS: macOS (Darwin 25.2.0)
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗