extraKnownMarketplaces local entry regenerated without required `source` discriminator on session start

Resolved 💬 1 comment Opened May 21, 2026 by Leoshneido Closed Jun 21, 2026

Describe the bug

When a local plugin marketplace is configured in extraKnownMarketplaces, Claude Code regenerates the local entry on each session start without the required source type discriminator field. This causes /doctor to report:

Settings (settings.json › extraKnownMarketplaces.local.source.source): Invalid input

Steps to reproduce

  1. Enable a local plugin (e.g. quant-skills@local) so Claude Code writes a local marketplace entry
  2. Manually add the missing discriminator: extraKnownMarketplaces.local.source.source = "local"
  3. Restart Claude Code
  4. Run /doctor — the error reappears

Expected behavior

The source discriminator ("source": "local") is preserved across sessions:

"local": {
  "source": {
    "source": "local",
    "path": "/path/to/local/plugins"
  }
}

Actual behavior

The field is stripped on each startup, leaving:

"local": {
  "source": {
    "path": "/path/to/local/plugins"
  }
}

Environment

  • OS: macOS 14
  • Claude Code CLI

View original on GitHub ↗

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