Skip to content

vercel login repeatedly prompts to update the Claude Code plugin and reports false success (never persists) #113

Description

@SamMaxwell

Summary

vercel login repeatedly offers to update the Claude Code Vercel plugin (e.g. "update from 0.44.0 to 0.45.1"), reports Success! Updated the Vercel plugin, but the update never persists. The next vercel login prompts again with the identical version pair — an endless loop with a false success message.

Steps to reproduce

  1. Install the Vercel plugin in Claude Code via the official marketplace (vercel@claude-plugins-official), which currently resolves to 0.44.0.
  2. Run vercel login with the Vercel CLI (observed on 54.6.0).
  3. Accept the prompt: Working with Vercel is easier with the latest Vercel Plugin for Claude Code. Would you like to update from 0.44.0 to 0.45.1?yes.
  4. CLI prints Success! Updated the Vercel plugin.
  5. Run vercel login again later → the same prompt reappears, unchanged.

Expected

Either the plugin is actually updated (and the prompt stops), or — if the CLI cannot update a plugin that Claude Code installed from a pinned marketplace source — the CLI should detect that and not claim success / not re-prompt on every login.

Actual

The "update" is a no-op against Claude Code's plugin registry, but is reported as success.

Root cause (from inspecting the local Claude Code plugin state)

The plugin the Vercel CLI is trying to update is not owned by the Vercel CLI — it's installed and version-pinned by Anthropic's marketplace:

  • ~/.claude/plugins/installed_plugins.json pins vercel@claude-plugins-official to version: 0.44.0, installed from the claude-plugins-official marketplace. Accepting the CLI prompt does not change this entry — version stays 0.44.0 and no 0.45.x build ever lands in ~/.claude/plugins/cache/claude-plugins-official/vercel/ (only 0.43.0 and 0.44.0 are present).
  • That marketplace pins the plugin to a frozen git SHA of this repo:
    "source": "url",
    "url": "https://github.com/vercel/vercel-plugin.git",
    "sha": "5f3f0ad7931ad49d6a4c6ed43ab4bf4781a69f6d"   // == 0.44.0
    
    claude plugin marketplace update claude-plugins-official + claude plugin update vercel@claude-plugins-official both confirm vercel is already at the latest version (0.44.0) — i.e. the marketplace hasn't advanced past 0.44.0, so 0.45.1 is unreachable through the channel Claude Code actually uses.
  • The CLI appears to write its "update" to a different path than the one Claude Code loads. On this machine it left behind an empty ~/.claude/plugins/data/vercel-claude-plugins-official/ directory (created at first plugin install), which is not referenced by known_marketplaces.json or installed_plugins.json — a strong sign the CLI's update targets a location Claude Code doesn't read.

Net effect: the CLI compares the user's install (0.44.0, pinned by Anthropic's marketplace) against the latest upstream plugin release (0.45.1), tries to bridge the gap through a path Claude Code ignores, and so re-prompts forever while reporting success.

Suggested fixes (either/both)

  1. Make the success message truthful: verify the plugin version actually changed in installed_plugins.json before printing Success!; if it didn't, say so.
  2. When the plugin was installed from a pinned marketplace source the CLI can't mutate (vercel@claude-plugins-official), don't attempt the update or re-prompt — point the user at claude plugin update, or coordinate with Anthropic to bump the pinned SHA in anthropics/claude-plugins-official when a new plugin version ships.

Environment

  • Vercel CLI: 54.6.0 (macOS, Darwin arm64)
  • Claude Code plugin: vercel@claude-plugins-official 0.44.0 (user scope)
  • Marketplace SHA pin: 5f3f0ad7931ad49d6a4c6ed43ab4bf4781a69f6d

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions