[BUG] Cowork: Custom marketplace plugins removed by RemotePluginManager sync — marked NOT_AVAILABLE on every session start

Resolved 💬 2 comments Opened Apr 1, 2026 by sequenzia Closed Apr 1, 2026

Description

Custom marketplace plugins installed in Cowork are immediately removed by RemotePluginManager sync on every session start. The plugins install successfully, but when a new session begins, the sync marks them as NOT_AVAILABLE and removes them from the active session. Only first-party plugins (e.g., cowork-plugin-management from knowledge-work-plugins) survive the sync.

The user sees "authenticating → working on it" and then nothing happens — the session completes silently with no output.

Steps to Reproduce

  1. In Cowork, add a custom GitHub marketplace (e.g., https://github.com/<user>/cowork-plugins)
  2. Wait for marketplace sync to complete (pollSyncUntilDone...settled with status=success)
  3. Install a plugin from the custom marketplace (e.g., hello-world@cowork-plugins)
  4. Installation succeeds: installPlugin: remote API install succeeded
  5. Start a new Cowork session and invoke a skill from the plugin (e.g., /hello-world:hello-echo)
  6. Nothing happens — the skill is silently not recognized

Root Cause (from logs)

The RemotePluginManager sync cycle runs on every session start:

  1. fetchAutoInstalledPlugins: 0 plugins
  2. fetchBrowsableRemotePlugins: 18 plugins (offset=0, hasMore=false)always exactly 18, regardless of custom marketplaces
  3. Removed 1 user-installed plugins set to NOT_AVAILABLE
  4. Using 1 remote plugins — only cowork-plugin-management remains

The browsable plugins catalog never includes custom marketplace plugins. The install API registers the plugin, but fetchBrowsableRemotePlugins returns only curated/official plugins. The sync logic then removes any installed plugin not in the catalog.

Audit log confirmation

The VM process returns immediately with zero API usage:

"result": "Unknown skill: hello-world:hello-echo"
"duration_ms": 8
"duration_api_ms": 0
"had_first_response": false

RPM manifest after sync

Only the first-party plugin survives:

{
  "plugins": [
    {
      "id": "plugin_016jbzs7aGBZSgBfSWhp4ToX",
      "name": "cowork-plugin-management",
      "marketplaceName": "knowledge-work-plugins",
      "installedBy": "user",
      "installationPreference": "available"
    }
  ]
}

Custom marketplace plugins never appear in this manifest after sync.

Log Evidence

# Install succeeds
[CustomPlugins] installPlugin: remote API install succeeded for plugin hello-world@cowork-plugins

# Marketplace sync succeeds
[remoteMarketplaceClient] pollSyncUntilDone id=marketplace_01KEiP7xZbHaYQ8LQjjJEhVn settled with status=success after 19865ms

# But on session start, plugin is removed
[RemotePluginManager] Starting remote plugins sync
[PluginsFetcher] fetchBrowsableRemotePlugins: 18 plugins (offset=0, hasMore=false)
[RemotePluginManager] Removed 1 user-installed plugins set to NOT_AVAILABLE
[RemotePluginManager] Sync complete: 0 downloaded, 0 removed, 0 orphans cleaned
[LocalAgentModeSessionManager] Using 1 remote plugins

This pattern repeats on every session start, dating back to at least 2026-03-30.

Attempted Fixes

  • Removed and re-added the custom marketplace — same result
  • Removed both custom marketplaces (cowork-plugins and resume-agent) and re-added — same result
  • Reinstalled the plugin after marketplace re-sync — same result
  • Verified plugin structure matches working cowork-plugin-management plugin.json format exactly

Expected Behavior

Custom marketplace plugins that install successfully via the remote API should:

  1. Appear in the fetchBrowsableRemotePlugins catalog after marketplace sync
  2. Persist in the RPM manifest across session starts
  3. Be mounted into the VM and available as skills

Environment

  • App version: Claude Desktop (Cowork)
  • Claude Code SDK: 2.1.87
  • OS: macOS (Darwin 25.4.0, arm64)
  • VM: 4 CPUs, 4GB RAM, gvisor networking
  • Plugin structure: Standard .claude-plugin/plugin.json + skills/*/SKILL.md

Related Issues

  • #33718 — Plugin from custom marketplace not appearing (CLI, different mechanism)
  • #25278 — Claude Code plugins should be available in Cowork sessions

View original on GitHub ↗

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