rust-analyzer-lsp plugin: all LSP operations return internal error when rust-analyzer rustup proxy is present but component not installed

Resolved 💬 1 comment Opened Jun 3, 2026 by stevenpollack Closed Jun 3, 2026

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

  1. Install the rust-analyzer-lsp plugin via /plugin
  2. Run /reload-plugins
  3. Invoke any LSP operation (e.g. hover) on a .rs file

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

  1. When the LSP server process fails to start, surface the stderr output in the error message rather than a generic "internal error".
  2. Detect the rustup proxy case (binary exists but component not installed) and suggest rustup component add rust-analyzer.
  3. 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-analyzer

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗