[BUG] /reload-plugins cannot hot-reload LSP servers and /plugin shows false 'not found in marketplace' errors (2.1.69)

Resolved 💬 3 comments Opened Mar 5, 2026 by ANcpLua Closed Mar 9, 2026

Bug Description

Two related issues with the plugin system in v2.1.69:

1. /reload-plugins cannot hot-reload LSP servers

After running /reload-plugins, LSP servers always show:

4 LSP server(s) provided by plugins require restart to activate.

Even after a full restart and re-running /reload-plugins, the same message persists. MCP servers have a hot-reload mechanism via pluginReconnectKey increment, but LSP servers lack an equivalent — they are loaded at startup and never reconnected.

Expected: /reload-plugins should restart LSP server processes (kill old, spawn new) similar to how MCP servers are reconnected via pluginReconnectKey.

2. /plugin Errors tab shows false-positive "not found in marketplace" for all plugins

The /plugin UI Errors tab shows 29 errors like:

✘ typescript-lsp @ claude-plugins-official (user)
  Plugin 'typescript-lsp' not found in marketplace 'claude-plugins-official'
  Plugin may not exist in marketplace 'claude-plugins-official'

This affects every single installed plugin — including official ones like superpowers, commit-commands, code-simplifier, etc. The plugins are functionally loaded (26 plugins, 48 commands, 54 agents, 24 hooks all work), but the marketplace lookup fails for all of them.

The official marketplace at anthropics/claude-code/.claude-plugin/marketplace.json defines marketplace name claude-code-plugins with 13 plugins, but the installed plugins reference marketplace claude-plugins-official — suggesting a marketplace name mismatch or a regression in how installed plugins resolve their marketplace source.

Steps to Reproduce

  1. Install Claude Code v2.1.69
  2. Have any LSP plugins enabled (typescript-lsp, csharp-lsp, pyright-lsp, jdtls-lsp)
  3. Start a new session
  4. Run /reload-plugins → observe "LSP server(s) require restart"
  5. Run /plugin → navigate to Errors tab → observe all plugins show "not found in marketplace"

Environment

  • Claude Code v2.1.69 (native binary, macOS arm64)
  • macOS Darwin 25.3.0
  • 4 LSP plugins enabled (typescript-lsp, csharp-lsp, pyright-lsp, jdtls-lsp)
  • 26 total plugins across 3 marketplaces (claude-plugins-official, claude-code-workflows, custom)

Additional Context

LSP .lsp.json schema

The v2.1.69 schema for .lsp.json requires (extracted from binary via S.strictObject):

{
  command: string,      // no spaces allowed (use args for arguments)
  args?: string[],      // CLI arguments like ["--stdio"]  
  extensionToLanguage: Record<string, string>  // e.g. { ".cs": "csharp" }
}

The old format used language: string[], filePatterns: string[], and command: string[] (array). This schema change is undocumented and breaks any existing .lsp.json configs.

Working config example (new schema)

{
  "csharp": {
    "command": "csharp-language-server",
    "extensionToLanguage": {
      ".cs": "csharp"
    }
  }
}
{
  "typescript": {
    "command": "typescript-language-server",
    "args": ["--stdio"],
    "extensionToLanguage": {
      ".ts": "typescript",
      ".tsx": "typescriptreact",
      ".js": "javascript",
      ".jsx": "javascriptreact"
    }
  }
}

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗