[Bug] LSP Server Manager initializes before plugins load, causing race condition

Resolved 💬 3 comments Opened Dec 21, 2025 by romeromarcelo Closed Dec 24, 2025

Bug Description
BUG: LSP plugins not loading - initialization race condition

LSP Server Manager initializes BEFORE plugins load, so .lsp.json configs are never registered.

Debug log evidence:
02:35:23.724Z - LSP handlers registered for 0 server(s) ← Done
02:35:24.030Z - Plugin pyright@claude-code-lsps loaded ← 300ms too late

Config is correct:

  • ENABLE_LSP_TOOL: "1"
  • enabledPlugins: pyright@claude-code-lsps: true (etc.)
  • ~/.claude/plugins/cache/.../pyright/0.1.0/.lsp.json exists and is valid
  • pyright-langserver binary works

Result: "No LSP server available for file type: .py" for ALL file types

Fix: LSP manager should wait for plugins to load before registering servers.

Environment Info

  • Platform: darwin
  • Terminal: ghostty
  • Version: 2.0.75
  • Feedback ID: 8ed4b2d9-b981-4441-8b17-46e94977c84a

Errors

[{"error":"Error: Tool mcp__ide__getDiagnostics not found\n    at Ui2 (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:2613:6696)\n    at h5 (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:252:20693)\n    at IY (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:252:39057)\n    at ss (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:252:49664)\n    at MJ (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:252:85801)\n    at Xf (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:252:84781)\n    at u_ (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:252:84606)\n    at cS (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:252:81054)\n    at m0 (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:252:6240)\n    at Immediate.ip1 [as _onImmediate] (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:245:3491)","timestamp":"2025-12-21T02:35:27.711Z"},{"error":"Error: Tool mcp__ide__getDiagnostics not found\n    at Ui2 (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:2613:6696)\n    at h5 (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:252:20693)\n    at IY (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:252:39057)\n    at ss (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:252:49664)\n    at MJ (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:252:85801)\n    at Xf (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:252:84781)\n    at u_ (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:252:84606)\n    at cS (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:252:81054)\n    at m0 (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:252:6240)\n    at Immediate.ip1 [as _onImmediate] (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:245:3491)","timestamp":"2025-12-21T02:35:27.713Z"},{"error":"Error: EISDIR: illegal operation on a directory, read\n    at Module.readFileSync (node:fs:440:20)\n    at file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:9:429\n    at oI (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:8:8084)\n    at Object.readFileSync (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:9:404)\n    at $dB (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:4743:22342)\n    at Object.call (file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:909:942)\n    at file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:3520:1468\n    at runNextTicks (node:internal/process/task_queues:65:5)\n    at process.processImmediate (node:internal/timers:473:9)","timestamp":"2025-12-21T02:36:06.436Z"},{"error":"Error: EISDIR: illegal operation on a directory, read\n    at Module.readFileSync (node:fs:440:20)\n    at file:///Users/marceloromero/.nvm/versions/node/v24.7.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:9:429\n    at oI (file:///Users/marceloromero/.nvm/versions/no

Note: Error logs were truncated.

View original on GitHub ↗

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