rust-analyzer-lsp plugin: all LSP operations return internal error when rust-analyzer rustup proxy is present but component not installed
Summary
After installing the rust-analyzer-lsp plugin and running /reload-plugins, all LSP operations (hover, documentSymbol, etc.) consistently return an internal error. The plugin appears to hang briefly and then fail rather than returning a useful error message.
Steps to Reproduce
- Install the
rust-analyzer-lspplugin via/plugin - Run
/reload-plugins - Invoke any LSP operation (e.g. hover) on a
.rsfile
Expected Behavior
Either a working LSP response, or a clear error message indicating why the LSP server failed to start.
Actual Behavior
All LSP operations return [Tool result missing due to internal error] with no further diagnostic output.
Environment
- OS: Linux 6.17.0-35-generic x86_64
- Shell: zsh
- Project: Rust (iamb), toolchain pinned to 1.92 via
rust-toolchain.toml
Root Cause (investigated)
which rust-analyzer returns /home/steven/.cargo/bin/rust-analyzer, which looks like a valid binary but is actually a rustup proxy stub. When invoked, it errors:
error: Unknown binary 'rust-analyzer' in official toolchain 'stable-x86_64-unknown-linux-gnu'.
The rust-analyzer component is not installed for any rustup toolchain. A separate rust-analyzer binary is running (from the Cursor IDE extension at ~/.cursor/extensions/rust-lang.rust-analyzer-.../server/rust-analyzer), but the Claude Code plugin does not use that instance.
The plugin likely resolves rust-analyzer via PATH, finds the rustup proxy, attempts to spawn it, and silently fails — surfacing only as an "internal error" to the caller.
Suggested Improvements
- When the LSP server process fails to start, surface the stderr output in the error message rather than a generic "internal error".
- Detect the rustup proxy case (binary exists but component not installed) and suggest
rustup component add rust-analyzer. - Optionally, allow configuring a custom path to the rust-analyzer binary in the plugin settings.
Workaround
Install rust-analyzer as a rustup component:
rustup component add rust-analyzerThis issue has 1 comment on GitHub. Read the full discussion on GitHub ↗