[BUG] claude.ai personal marketplace: git-subdir/external plugin sources never refresh; Check for updates reports 'latest' while upstream is ahead

Status Open
Reported on v2.1.291
Maintainer reply None cached
Activity 1 comment · opened Oct 11, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet (closest: #69683, closed; #45810)
  • [x] This is a single bug report

What's Wrong?

On claude.ai (web and the Claude Desktop Chat/Cowork tab), a plugin from a personal marketplace whose source is a git-subdir pointing at another public GitHub repo never picks up upstream changes. claude.ai keeps its stored copy until the marketplace repo itself gets a new commit. Check for updates (on the marketplace and on the plugin) reports "latest version" while the source repo is several commits and a version bump ahead.

This rules out the most useful pattern for git-subdir: a static personal marketplace that installs one folder of someone else's repo and follows its releases.

Setup

  • Personal marketplace repo (public), one entry:

``json
{
"name": "update-probe",
"source": { "source": "git-subdir", "url": "https://github.com/<me>/skill-update-probe.git", "path": "skills" },
"skills": "./",
"strict": false
}
``

  • The source repo (public, separate from the marketplace) had the same layout as mattpocock/skills: a root .claude-plugin/plugin.json with version, and the skill in skills/update-probe/SKILL.md. The skill replied with a marker (PROBE-vN) so we could read the version from chat.
  • "Sync automatically" was on (Claude GitHub App installed, GitHub connector connected).

What we observed (2026-10-11, several hours of testing)

| Change | Waited | Check for updates | claude.ai served |
|---|---|---|---|
| Source repo: new commit, content only | 10–15 min | pressed, "up to date" | old version |
| Source repo: root plugin.json version bump (1.0.0 → 1.0.1, and later 1.0.1 → 1.0.2) | 10 min | pressed, "up to date" | old version |
| Marketplace repo: commit (manual or by a GitHub Action) | 10 min, no button | – | old version |
| Marketplace repo: commit, then Check for updates (marketplace, then plugin → Update) | – | pressed | new version |
| Remove and re-add the marketplace | – | – | new version |

We also tried a variant with the versioned plugin.json inside the git-subdir folder (no strict: false). Same result: upstream changes weren't picked up until the marketplace repo changed.

What Should Happen?

One of these:

  1. Check for updates re-resolves external github/url/git-subdir sources (at least their HEAD / declared version), not only the marketplace repo commit. Or
  2. External sources are refreshed on a schedule. Or
  3. The UI says plainly that external sources are snapshotted at sync time and only refresh when the marketplace repo changes. Right now "latest version" is misleading.

Separately: with "Sync automatically" on, a push to the marketplace repo didn't apply anything within 10 minutes. A manual Check for updates was still needed.

Workaround we're using

A daily GitHub Action in the marketplace repo pins source.ref/source.sha/version to the upstream's latest GitHub Release and commits. After that commit, Check for updates (marketplace, then plugin → Update) works.

Environment

  • claude.ai web + Claude Desktop (macOS), Chat/Cowork tab, personal (non-org) marketplace
  • Claude Code CLI 2.1.291 validates and installs the same marketplace fine (claude plugin validate passes)

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗