Plugin update fails with 'not installed at scope project' after successful install
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
- Repo A (
bester-ops) is a marketplace repo with a pluginbskdefined in.claude-plugin/marketplace.json - 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 }
}
- Open Claude Code in Repo B
- Run
/plugin install bsk@bester-ops→ says "installed successfully" - Run
/plugin update bsk@bester-ops→ fails 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
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗