-
Notifications
You must be signed in to change notification settings - Fork 5.4k
Description
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?
LSP servers configured via plugins are not loaded because the LSP Manager initializes before plugin loading completes. Debug logs show the LSP Manager completing with 0 servers, then plugins loading 52ms later.
The LSP Manager finishes at 08:57:37.373Z with 0 servers.
Plugins start loading at 08:57:37.425Z — 52ms too late.
Affected versions: 2.0.69 (broken), 2.0.67 (works)
Related issue: This appears to be the same async race condition pattern described in #10997 (SessionStart hooks don't execute on first run).
Reference: LSP plugin support context from https://www.reddit.com/r/ClaudeAI/comments/1otdfo9/
What Should Happen?
LSP Manager should detect and load LSP servers from all enabled plugins.
Debug logs should show:
- Plugins load first
- LSP Manager initializes after plugins are ready
- LSP servers from plugins are registered (e.g., "LSP notification handlers registered successfully for all 4 server(s)")
The LSP tool should then be available with the configured language servers.
Error Messages/Logs
08:57:37.371Z [DEBUG] [LSP MANAGER] initializeLspServerManager() called
08:57:37.373Z [DEBUG] LSP notification handlers registered successfully for all 0 server(s)
...
08:57:37.425Z [DEBUG] Loading plugin phpactor-lsp from source: "./phpactor-lsp"
08:57:37.425Z [DEBUG] Loading plugin intelephense-lsp from source: "./intelephense-lsp"
08:57:37.425Z [DEBUG] Loading plugin psalm-lsp from source: "./psalm-lsp"
08:57:37.425Z [DEBUG] Loading plugin phpstan-lsp from source: "./phpstan-lsp"Steps to Reproduce
- Install LSP plugins (e.g., from marketplace or local plugins with
.lsp.jsonconfiguration) - Set
ENABLE_LSP_TOOL=truein environment - Run Claude Code 2.0.69
- Check debug logs at
~/.claude/debug/latest - Observe LSP Manager initializes with 0 servers before plugins load
Workaround: Downgrade to version 2.0.67 with claude update --version 2.0.67
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
2.0.67
Claude Code Version
2.0.69
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
No response