{"record":{"id":"e9e79ced831fc5ba","repo":"rust-lang/cargo","slug":"invalid-feature-in-required-features-of-targe","errorCode":null,"errorMessage":"invalid feature `{}` in required-features of target `{}`: `dep:` prefixed feature values are not allowed in required-features","messagePattern":"invalid feature `(.+?)` in required-features of target `(.+?)`: `dep:` prefixed feature values are not allowed in required-features","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/ops/cargo_compile/unit_generator.rs","lineNumber":653,"sourceCode":"            None => return Ok(()),\n            Some(resolve) => resolve,\n        };\n\n        let mut shell = self.ws.gctx().shell();\n        for feature in required_features {\n            let fv = FeatureValue::new(feature.into());\n            match &fv {\n                FeatureValue::Feature(f) => {\n                    if !summary.features().contains_key(f) {\n                        shell.warn(format!(\n                            \"invalid feature `{}` in required-features of target `{}`: \\\n                      `{}` is not present in [features] section\",\n                            fv, target_name, fv\n                        ))?;\n                    }\n                }\n                FeatureValue::Dep { .. } => {\n                    anyhow::bail!(\n                        \"invalid feature `{}` in required-features of target `{}`: \\\n                  `dep:` prefixed feature values are not allowed in required-features\",\n                        fv,\n                        target_name\n                    );\n                }\n                FeatureValue::DepFeature { weak: true, .. } => {\n                    anyhow::bail!(\n                        \"invalid feature `{}` in required-features of target `{}`: \\\n                  optional dependency with `?` is not allowed in required-features\",\n                        fv,\n                        target_name\n                    );\n                }\n                // Handling of dependent_crate/dependent_crate_feature syntax\n                FeatureValue::DepFeature {\n                    dep_name,\n                    dep_feature,","sourceCodeStart":635,"sourceCodeEnd":671,"githubUrl":"https://github.com/rust-lang/cargo/blob/eb98b54bc9f3c74519f43d066cb3fd02ebc88df0/src/ops/cargo_compile/unit_generator.rs#L635-L671","documentation":"Thrown while validating a target's required-features list when a FeatureValue parses as FeatureValue::Dep (i.e. a `dep:<name>` form). required-features must reference real features or plain optional dependencies, never the explicit `dep:` syntax, so cargo hard-fails per target with the offending feature and target name.","triggerScenarios":"Writing `required-features = [\"dep:some-optional-crate\"]` in a [[bin]]/[[example]]/[[test]]/[[bench]] target. The `dep:` prefix is only valid inside [features] tables, not in required-features.","commonSituations":"Copy-pasting feature syntax into required-features; misunderstanding that `dep:` and required-features compose differently; migrating a manifest to the new weak-deps syntax incorrectly.","solutions":["Replace `dep:name` in required-features with the feature that enables the dependency (e.g. `\"my-feature\"` defined in [features] as `dep:name`).","Use the bare optional-dependency name directly if you intend 'this target is built when the optional dep is enabled'.","Validate manifests with `cargo check` after editing required-features."],"exampleFix":"# before\n[features]\nmy-feat = [\"dep:opt\"]\n[[bin]]\nname = \"tool\"\nrequired-features = [\"dep:opt\"]\n# after\n[[bin]]\nname = \"tool\"\nrequired-features = [\"my-feat\"]","handlingStrategy":"validation","validationCode":"// Lint required-features entries for the `dep:` prefix.\nfn valid_required_feature(f: &str) -> bool { !f.starts_with(\"dep:\") }","typeGuard":"// Only plain feature names or plain optional-dep names are allowed.\nfn is_valid_required_feature(f: &str) -> bool {\n    !f.starts_with(\"dep:\") && !f.ends_with('?')\n}","tryCatchPattern":null,"preventionTips":["Never put `dep:` in required-features; reference the feature that enables the dep instead.","Run `cargo check` after editing required-features.","Keep required-features and [features] tables consistent."],"tags":["cargo-compile","features","required-features","manifest","validation"],"backgroundTag":null,"analyzedSha":"eb98b54bc9f3c74519f43d066cb3fd02ebc88df0","analyzedAt":"2026-08-11T17:42:36.556Z","contentChangedAt":"2026-08-11T17:42:36.556Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}