claude-code - 💡(How to fix) Fix [BUG] `autoUpdate: true` on git-sourced marketplace does not `git pull` the clone — silent across quit/relaunch (2.1.139)

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

Error Messages/Logs

Fix Action

Workaround

claude plugin marketplace update <marketplace> performs the missing fast-forward and, on the same invocation, reinstalls the plugin into a new versioned cache directory and bumps version / installPath / lastUpdated in installed_plugins.json. It does not, however, refresh gitCommitSha — see the companion comment on #56740.

Code Example



---

"ro-marketplace": {
     "source": { "source": "git", "url": "https://github.com/roipatents/ro-marketplace.git" },
     "installLocation": "/Users/<me>/.claude/plugins/marketplaces/ro-marketplace",
     "autoUpdate": true
   }

---

git -C ~/.claude/plugins/marketplaces/ro-marketplace fetch
   git -C ~/.claude/plugins/marketplaces/ro-marketplace status
RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • I am using the latest version of Claude Code

What's Wrong?

A marketplace registered with "autoUpdate": true does not fast-forward its local clone against the remote, even across full quit/relaunch cycles. The lastUpdated timestamp in ~/.claude/plugins/known_marketplaces.json is touched on launch, but no git fetch && git pull runs against the clone, so plugin version bumps published to the remote are invisible until the user runs claude plugin marketplace update <name> by hand.

This is the inverse of #17361 (where the marketplace clone was pulled but the cache stayed stale) and overlaps with the architectural cluster diagnosed in #56740 / #52218: writes related to marketplace+plugin state are scattered across entry points, and the autoUpdate path skips the fetch step entirely. The canonical earlier issue #36938 was closed stale and locked without a fix.

What Should Happen?

What Should Happen?

When autoUpdate: true is set on a git-sourced marketplace, every launch (or at least a documented periodic schedule) should perform git fetch && git pull --ff-only against the clone before reading marketplace.json, and should only bump lastUpdated when a fetch actually occurred.

Observed

  • known_marketplaces.json lastUpdated is bumped to the launch time.
  • Clone HEAD is still on the pre-push commit; git status reports Your branch is behind 'origin/main' by 1 commit, and can be fast-forwarded.
  • installed_plugins.json still records the old version, installPath, and gitCommitSha.
  • The /plugin UI does not surface that an update exists.

Error Messages/Logs

Steps to Reproduce

  1. Register a git-sourced marketplace with autoUpdate: true:

    "ro-marketplace": {
      "source": { "source": "git", "url": "https://github.com/roipatents/ro-marketplace.git" },
      "installLocation": "/Users/<me>/.claude/plugins/marketplaces/ro-marketplace",
      "autoUpdate": true
    }
  2. Install a plugin from it; note gitCommitSha and the marketplace clone HEAD.

  3. Push a new commit to the marketplace remote that bumps a plugin version (e.g., data-handling 0.1.0 → 0.1.2 in its .claude-plugin/plugin.json).

  4. Fully quit Claude Code and relaunch. Do not run /plugin marketplace update.

  5. Inspect the local clone:

    git -C ~/.claude/plugins/marketplaces/ro-marketplace fetch
    git -C ~/.claude/plugins/marketplaces/ro-marketplace status

Claude Model

Sonnet (default)

Is this a regression?

I don't know

Last Working Version

No response

Claude Code Version

2.1.139

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

Workaround

claude plugin marketplace update <marketplace> performs the missing fast-forward and, on the same invocation, reinstalls the plugin into a new versioned cache directory and bumps version / installPath / lastUpdated in installed_plugins.json. It does not, however, refresh gitCommitSha — see the companion comment on #56740.

Environment

  • Claude Code: 2.1.139
  • Platform: macOS, Darwin 25.5.0
  • Marketplace source type: git (HTTPS to public GitHub repo)
  • Reproducible 100% across multiple quit/relaunch cycles.

Additional Information

Cluster: #56740 (architectural diagnosis), #52218, #17361, #43763. Earlier closed canonical: #36938.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING