rust-lang / rust-lang/rust-analyzer

RA does not properly update when in a cargo workspace

Open
#21,642 5 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

C-bug
Dominant language
Rust
Stars
16.9k
Forks
2.2k
Avg merge
1d 12h
Merged PRs (30d)
72

Description

rust-analyzer version: 0.4.2790-standalone

rustc version: rustc 1.93.1 (01f6ddf75 2026-02-11)

editor or extension: vscode 1.109.2 RA 0.4.2790 and 0.3.2786

relevant settings:

	"rust-analyzer.files.exclude": [
		"/target",
		"/crates/unnamed_crate",
	],

repository link (if public, optional): my main git server is dead due to a hard drive failure so i dont have a repo link available at the moment

code snippet to reproduce:
im not entirely sure what specifically changed, but i have a multi project cargo workspace setup like:
cataclysm: binary depends on nexus and dynamically depends on unnamed_crate via interfaces in nexus
nexus: library depends on nothing
unnamed_crate: library depends on nexus
omnispex: binary depends on nexus

cataclysm is fairly complicated? and uses things like pub use module::*;
telescopically so i can have a different main function based on compile target, but all that was working fine for the past year or so

theres nothing of note in RA logs, i wish i had more information but this issue really is weird, it occurs whenever it feels like it and over the past few years ive been using RA it only happens with cargo workspaces, heres the workspace root Cargo.toml:

[workspace]
resolver = "3"
members = ["crates/*"]

[profile.release]
opt-level = 3
lto = true
codegen-units = 1
panic = "unwind"
strip = "debuginfo"

[profile.release.package."*"]
opt-level = 3
codegen-units = 1
strip = "debuginfo"

[profile.dev.package."*"]
opt-level = 3
codegen-units = 1

[profile.wasm-release]
inherits = "release"
opt-level = "z"
strip = true

im at a loss of where to look for more information to help, any suggestions or instructions are welcome, i might be able to put the codebase on github without unnamed_crate, but i can probably leave a substitute in its place if its related to the issue

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the reported workspace Cargo.toml and the described cataclysm, nexus, unnamed_crate, and omnispex member/dependency structure. Try to reproduce the intermittent update failure in VS Code with the listed rust-analyzer versions, then inspect the available rust-analyzer logs. Done means identifying a reliable workspace reproduction and confirming that rust-analyzer updates correctly afterward.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
24/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.