Desktop plugin marketplace: Remove reports success but entry persists

Resolved 💬 2 comments Opened Apr 16, 2026 by timmy5685 Closed May 24, 2026

Summary

In Claude Desktop (1.2773.0 on macOS), a plugin marketplace shown as claude-code-plugins (installed as vladolaru-claude-code-plugins) cannot be removed from Directory → Plugins → Personal. Clicking Remove shows a success toast — "Marketplace 'claude-code-plugins' removed." — but the entry remains in the list and persists across full app restarts.

Environment

  • Claude Desktop 1.2773.0
  • macOS 15 (Darwin 25.4.0)
  • Synced commit shown in UI: 905be5a

UI error text (before Remove)

Marketplace sync failed Some plugins in this marketplace have validation errors.

Reproduction

  1. Open Directory → Plugins → Personal.
  1. See claude-code-plugins with a red error badge ("Marketplace sync failed").

<img width="1062" height="924" alt="Image" src="https://github.com/user-attachments/assets/3eca012d-1e9d-4abb-88f2-e297bfa6bf44" />

  1. Click the menu → Remove (or click Remove in the error banner).

<img width="1170" height="906" alt="Image" src="https://github.com/user-attachments/assets/7cd98d01-f832-4186-92f8-947cf0c9b5f6" />

  1. A toast appears: "Marketplace 'claude-code-plugins' removed." The error badge is cleared — but the claude-code-plugins entry is still visible in the Personal list.

<img width="1337" height="749" alt="Image" src="https://github.com/user-attachments/assets/53634803-3358-45e2-b656-e298cf3a0d30" />

  1. Restarting the desktop app does not clear it. Reopening Directory shows the entry again (sometimes with the sync-failed badge restored).So the Remove action reports success to the user but the marketplace is not actually removed.

<img width="1062" height="924" alt="Image" src="https://github.com/user-attachments/assets/44cacf06-f3e7-4da1-bc10-7038121759ff" />

What I tried on disk (no effect)

  • Removed the entry from ~/.claude/settings.jsonextraKnownMarketplaces.
  • Removed the entry from ~/.claude/plugins/known_marketplaces.json.
  • Deleted ~/.claude/plugins/marketplaces/vladolaru-claude-code-plugins/.
  • Fully quit the desktop app (pgrep -lf Claude.app returned no processes) between each step.

Terminal Claude Code shows clean state (/mcp fine, no references). Only the desktop Directory UI still shows the entry.

Investigation

  • grep -r for vladolaru and claude-code-plugins across ~/Library/Application Support/Claude/ — including IndexedDB/, Local Storage/, Session Storage/, shared_proto_db/, and Partitions/ — returned no matches. The marketplace is not cached locally.
  • ~/Library/Application Support/Claude/config.json contains "remote_marketplace_migration_done_v1": true, suggesting marketplaces have been migrated to a server-synced store tied to the claude.ai account rather than local files.

Hypothesis: the client-side Remove path shows a success toast optimistically, but the server-side delete is failing or isn't being called — so on next render/sync the entry reappears from the remote store.

Suggested fixes

  • The Remove action should wait on the server response before showing a server response before showing a success toast, and surface an error if the delete fails.
  • Provide a way to force-remove a stuck marketplace entry from the account.

View original on GitHub ↗

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