rust-lang/cargo · error · anyhow::Error

the binary target name `{name}` is forbidden, it conflicts w

Error message

the binary target name `{name}` is forbidden, it conflicts with cargo's build directory names

What it means

Error "the binary target name `{name}` is forbidden, it conflicts with cargo's build directory names" thrown in rust-lang/cargo.

Source

Thrown at src/workspace/parser/targets.rs:1162

        .as_deref()
        .unwrap_or_else(|| panic!("target name is required"))
}

fn validate_lib_name(target: &TomlTarget, warnings: &mut Vec<String>) -> CargoResult<()> {
    validate_target_name(target, TARGET_KIND_HUMAN_LIB, TARGET_KIND_LIB, warnings)?;
    let name = name_or_panic(target);
    if name.contains('-') {
        anyhow::bail!("library target names cannot contain hyphens: {}", name)
    }

    Ok(())
}

fn validate_bin_name(bin: &TomlTarget, warnings: &mut Vec<String>) -> CargoResult<()> {
    validate_target_name(bin, TARGET_KIND_HUMAN_BIN, TARGET_KIND_BIN, warnings)?;
    let name = name_or_panic(bin).to_owned();
    if restricted_names::is_conflicting_artifact_name(&name) {
        anyhow::bail!(
            "the binary target name `{name}` is forbidden, \
                 it conflicts with cargo's build directory names",
        )
    }

    Ok(())
}

fn validate_target_name(
    target: &TomlTarget,
    target_kind_human: &str,
    target_kind: &str,
    warnings: &mut Vec<String>,
) -> CargoResult<()> {
    match target.name {
        Some(ref name) => {
            if name.trim().is_empty() {
                anyhow::bail!("{} target names cannot be empty", target_kind_human)

View on GitHub (pinned to 0e07a15537)

Solutions

  1. Rename the binary target to a name that does not conflict with Cargo's build directory names (e.g. avoid `build`, `deps`, `examples`, `incremental`).

When it happens

Trigger: Thrown at src/workspace/parser/targets.rs:1162 when the library encounters an invalid state.

Common situations: Occurs when a `[[bin]]` name collides with Cargo's reserved build directory names (e.g. `build`, `check`, `deps`, `examples`, `incremental`). Pick a different binary name.


AI-assisted analysis of rust-lang/cargo@0e07a15537 (2026-08-06). Data as JSON: /data/errors/fc70f227b05f60a0.json. Report an issue: GitHub.