{"record":{"id":"e299ef605842ad07","repo":"rust-lang/rust","slug":"package-package-is-not-a-member-of-the-workspa","errorCode":null,"errorMessage":"package `{package}` is not a member of the workspace","messagePattern":"package `(.+?)` is not a member of the workspace","errorType":"validation","errorClass":"io::Error","httpStatus":null,"severity":"error","filePath":"src/tools/rustfmt/src/cargo-fmt/main.rs","lineNumber":484,"sourceCode":"    targets: &mut BTreeSet<Target>,\n) -> Result<(), io::Error> {\n    let metadata = get_cargo_metadata(manifest_path)?;\n    let mut workspace_hitlist: BTreeSet<&str> =\n        BTreeSet::from_iter(hitlist.into_iter().map(|s| s.as_str()));\n\n    for package in metadata.packages {\n        if workspace_hitlist.remove(package.name.as_ref()) {\n            for target in package.targets {\n                targets.insert(Target::from_target(&target));\n            }\n        }\n    }\n\n    if workspace_hitlist.is_empty() {\n        Ok(())\n    } else {\n        let package = workspace_hitlist.iter().next().unwrap();\n        Err(io::Error::new(\n            io::ErrorKind::InvalidInput,\n            format!(\"package `{package}` is not a member of the workspace\"),\n        ))\n    }\n}\n\nfn add_targets(target_paths: &[cargo_metadata::Target], targets: &mut BTreeSet<Target>) {\n    for target in target_paths {\n        targets.insert(Target::from_target(target));\n    }\n}\n\nfn run_rustfmt(\n    targets: &BTreeSet<Target>,\n    fmt_args: &[String],\n    verbosity: Verbosity,\n) -> Result<i32, io::Error> {\n    let by_edition = targets","sourceCodeStart":466,"sourceCodeEnd":502,"githubUrl":"https://github.com/rust-lang/rust/blob/7088e4b63a9516ebfbfe2ab2d999cf01a528ac14/src/tools/rustfmt/src/cargo-fmt/main.rs#L466-L502","documentation":"Returned by cargo-fmt's get_targets_with_hitlist when one or more package names passed via --package/-p do not match any package in the resolved cargo metadata workspace. After iterating all packages and removing matched names from the hitlist, any leftover unmatched name yields ErrorKind::InvalidInput naming the first leftover package.","triggerScenarios":"Running `cargo fmt -p <name>` (or the Some(hitlist) CargoFmtStrategy) where <name> is not a member of the workspace cargo metadata returned - typo, wrong workspace, path-dependency that is not a workspace member, or a package excluded by package.exclude.","commonSituations":"Typo in package name (case-sensitive); targeting a dependency that lives outside the workspace; running cargo fmt from the wrong directory/workspace; member excluded in [workspace] exclude; cargo metadata was built with --offline and missed a path dep.","solutions":["List workspace members: `cargo metadata --no-deps --format-version 1 | jq '.packages[].name'`.","Correct the -p argument to exactly match a member name (case-sensitive).","Run cargo fmt from the workspace root so the right metadata is resolved.","If the package is excluded, remove the exclusion or format it directly with rustfmt."],"exampleFix":"# before\ncargo fmt -p MyCrate   # wrong case / not a member\n\n# after\ncargo fmt -p my-crate","handlingStrategy":"validation","validationCode":"fn is_workspace_member(name: &str, manifest: Option<&Path>) -> io::Result<bool> {\n    let mut cmd = cargo_metadata::MetadataCommand::new();\ncmd.no_deps();\nif let Some(m) = manifest { cmd.manifest_path(m); }\n    let md = cmd.exec().map_err(|_| io::Error::from(io::ErrorKind::Other))?;\n    Ok(md.packages.iter().any(|p| p.name == name))\n}","typeGuard":null,"tryCatchPattern":"match get_targets(strategy, manifest) {\n    Ok(t) => Ok(t),\n    Err(e) if e.to_string().contains(\"is not a member of the workspace\") => {\n        // list members, correct the -p name\n        Err(e)\n    }\n    Err(e) => Err(e),\n}","preventionTips":["List members via `cargo metadata --no-deps` and copy exact names.","Remember package names are case-sensitive in -p flags.","Run cargo fmt from the workspace root to resolve the right metadata."],"tags":["rustfmt","cargo-fmt","workspace","package","cargo-metadata"],"backgroundTag":null,"analyzedSha":"7088e4b63a9516ebfbfe2ab2d999cf01a528ac14","analyzedAt":"2026-08-10T14:17:03.603Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}