Plugin update fails with 'not installed at scope project' after successful install

Resolved 💬 3 comments Opened Feb 19, 2026 by sebastianlungu Closed Feb 23, 2026

Bug

/plugin install bsk@bester-ops succeeds ("installed successfully") but /plugin update bsk@bester-ops immediately fails with:

Failed to update: Plugin "bsk" is not installed at scope project (/Users/.../bester-web)

Reproduction

  1. Repo A (bester-ops) is a marketplace repo with a plugin bsk defined in .claude-plugin/marketplace.json
  2. Repo B (bester-web) consumes it via .claude/settings.json:

``json
{
"extraKnownMarketplaces": {
"bester-ops": {
"source": { "source": "github", "repo": "bester-org/bester-ops" }
}
},
"enabledPlugins": { "bsk@bester-ops": true }
}
``

  1. Open Claude Code in Repo B
  2. Run /plugin install bsk@bester-ops → says "installed successfully"
  3. Run /plugin update bsk@bester-opsfails with "not installed at scope project"

Root cause (suspected)

~/.claude/plugins/installed_plugins.json only records the plugin for the first project it was installed in (Repo A). Installing in Repo B says "success" but doesn't write a second entry with "projectPath": "/path/to/bester-web". The update command then checks the project path, doesn't find a matching entry, and fails.

Contents of installed_plugins.json after "successful" install in Repo B — note only Repo A is listed:

{
  "version": 2,
  "plugins": {
    "bsk@bester-ops": [
      {
        "scope": "project",
        "projectPath": "/Users/.../bester-ops"  // <-- only Repo A, Repo B missing
      }
    ]
  }
}

Expected behavior

Installing the same marketplace plugin at project scope in multiple repos should register separate entries per projectPath, and update should work in each.

Workaround

Install at user scope instead: /plugin install bsk@bester-ops --scope user

Environment

  • Claude Code v2.1.47
  • macOS Darwin 25.2.0

View original on GitHub ↗

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