[Bug] Plugin install command reports success but fails to persist plugin data

Resolved 💬 2 comments Opened Mar 7, 2026 by AnttiRask Closed Apr 4, 2026

Bug Description
Title: Plugin install reports success but doesn't actually install plugins (v2.0.59)

Environment:

  • Claude Code version: 2.0.59
  • Installation method: Homebrew
  • OS: Linux 6.8.0-101-generic

Description:
The claude plugin install command reports "Successfully installed" but plugins are never actually installed. The installed_plugins.json file is not created/updated and the cache directory
remains empty.

Steps to Reproduce:

  1. Clear all plugin data:

rm -rf ~/.claude/plugins/cache/*
rm -f ~/.claude/plugins/installed_plugins.json
rm -rf ~/.claude/plugins/marketplaces/*
rm -f ~/.claude/plugins/known_marketplaces.json

  1. Add marketplace:

claude plugin marketplace add anthropics/claude-plugins-official
# Output: ✔ Successfully added marketplace: claude-plugins-official

  1. Install a plugin:

claude plugin install pr-review-toolkit@claude-plugins-official
# Output: ✔ Successfully installed plugin: pr-review-toolkit@claude-plugins-official

  1. Check installation:

cat ~/.claude/plugins/installed_plugins.json
# Result: File doesn't exist
ls ~/.claude/plugins/cache/
# Result: Empty directory

Debug log evidence:
Found 0 plugins (0 enabled, 0 disabled)
0 marketplaces, 0 installable plugins, 0 uninstallable plugins
Loaded plugins - Enabled: 0, Disabled: 0, Commands: 0, Agents: 0, Errors: 0

Expected behavior:

  • installed_plugins.json should be created/updated with the plugin entry
  • Plugin files should be cached in ~/.claude/plugins/cache/
  • /plugin command should show installed plugins

Actual behavior:

  • Install command returns success
  • No files are written
  • /plugin command returns nothing
  • Debug log shows 0 plugins loaded

Environment Info

  • Platform: linux
  • Terminal: gnome-terminal
  • Version: 2.0.59
  • Feedback ID: fef5c990-6643-48a1-be73-8efcd11cf5dd

Errors

[{"error":"Error\n    at PS (/$bunfs/root/claude:173:1143)\n    at <anonymous> (/$bunfs/root/claude:174:10086)\n    at emit (node:events:92:22)\n    at endReadableNT (internal:streams/readable:862:50)\n    at processTicksAndRejections (native:7:39)\n    at request (/$bunfs/root/claude:176:2147)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-03-07T21:27:09.249Z"},{"error":"Error\n    at PS (/$bunfs/root/claude:173:1143)\n    at <anonymous> (/$bunfs/root/claude:174:10086)\n    at emit (node:events:92:22)\n    at endReadableNT (internal:streams/readable:862:50)\n    at processTicksAndRejections (native:7:39)\n    at request (/$bunfs/root/claude:176:2147)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-03-07T21:28:20.541Z"},{"error":"Error\n    at PS (/$bunfs/root/claude:173:1143)\n    at <anonymous> (/$bunfs/root/claude:174:10086)\n    at emit (node:events:92:22)\n    at endReadableNT (internal:streams/readable:862:50)\n    at processTicksAndRejections (native:7:39)\n    at request (/$bunfs/root/claude:176:2147)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-03-07T21:28:35.577Z"},{"error":"Error\n    at PS (/$bunfs/root/claude:173:1143)\n    at <anonymous> (/$bunfs/root/claude:174:10086)\n    at emit (node:events:92:22)\n    at endReadableNT (internal:streams/readable:862:50)\n    at processTicksAndRejections (native:7:39)\n    at request (/$bunfs/root/claude:176:2147)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-03-07T21:29:19.545Z"},{"error":"Error\n    at PS (/$bunfs/root/claude:173:1143)\n    at <anonymous> (/$bunfs/root/claude:174:10086)\n    at emit (node:events:92:22)\n    at endReadableNT (internal:streams/readable:862:50)\n    at processTicksAndRejections (native:7:39)\n    at request (/$bunfs/root/claude:176:2147)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-03-07T21:29:35.390Z"},{"error":"Error\n    at PS (/$bunfs/root/claude:173:1143)\n    at <anonymous> (/$bunfs/root/claude:174:10086)\n    at emit (node:events:92:22)\n    at endReadableNT (internal:streams/readable:862:50)\n    at processTicksAndRejections (native:7:39)\n    at request (/$bunfs/root/claude:176:2147)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-03-07T21:29:50.738Z"},{"error":"Error\n    at PS (/$bunfs/root/claude:173:1143)\n    at <anonymous> (/$bunfs/root/claude:174:10086)\n    at emit (node:events:92:22)\n    at endReadableNT (internal:streams/readable:862:50)\n    at processTicksAndRejections (native:7:39)\n    at request (/$bunfs/root/claude:176:2147)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-03-07T21:30:07.898Z"},{"error":"Error\n    at PS (/$bunfs/root/claude:173:1143)\n    at <anonymous> (/$bunfs/root/claude:174:10086)\n    at emit (node:events:92:22)\n    at endReadableNT (internal:streams/re

Note: Error logs were truncated.

View original on GitHub ↗

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