Unnamed repository; edit this file 'description' to name the repository.
Add warning and debug information when `cargo metadata` fails
The errors are silently dropped elsewhere, which make it really hard to debug issues due to dependency download failures.
Arthur Baars 2025-03-05
parent b139e21 · commit 55d61be
-rw-r--r--crates/project-model/src/cargo_workspace.rs17
1 files changed, 16 insertions, 1 deletions
diff --git a/crates/project-model/src/cargo_workspace.rs b/crates/project-model/src/cargo_workspace.rs
index 40ab8c53fa..e7c3bcb541 100644
--- a/crates/project-model/src/cargo_workspace.rs
+++ b/crates/project-model/src/cargo_workspace.rs
@@ -288,7 +288,22 @@ impl CargoWorkspace {
locked: bool,
progress: &dyn Fn(String),
) -> anyhow::Result<(cargo_metadata::Metadata, Option<anyhow::Error>)> {
- Self::fetch_metadata_(cargo_toml, current_dir, config, sysroot, locked, false, progress)
+ let res = Self::fetch_metadata_(
+ cargo_toml,
+ current_dir,
+ config,
+ sysroot,
+ locked,
+ false,
+ progress,
+ );
+ if let Ok((_, Some(ref e))) = res {
+ tracing::warn!(
+ "`cargo metadata` failed on `{cargo_toml}`, but retry with `--no-deps` succeeded"
+ );
+ tracing::debug!("{e:?}");
+ }
+ res
}
fn fetch_metadata_(