LSP tool hangs indefinitely when server doesn't respond to a request

Resolved 💬 4 comments Opened Mar 1, 2026 by kylesnowschwartz Closed Mar 29, 2026

When an LSP server silently drops a request (no response, no error), the LSP tool blocks forever with no timeout, making the entire session unrecoverable without force-quitting. Repro: Ruby LSP receives textDocument/prepareCallHierarchy (which it doesn't support), matches no case branch in its message router, and sends nothing back. Claude Code's debug log shows Sending request 'textDocument/prepareCallHierarchy - (8)' with no corresponding Received response — the session hung for minutes until killed. Subsequent requests to the same server (e.g. textDocument/hover) would have worked fine, so the server wasn't dead. A per-request timeout (defaulting to ~30s) and checking serverCapabilities before sending requests would prevent this. Related: #17006 (same class of bug with JDTLS, auto-closed without fix).

View original on GitHub ↗

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