dbt-labs/dbt-core · error · anyhow

no ` ` wheel(s) in .

Error message

no `{}` wheel(s){suffix} in {}.

What it means

run_publish discovered no wheel files matching the project's wheel name (and optional version filter) in the distribution directory, so there is nothing to upload to the registry — the build/pack step output is missing or was written elsewhere.

Solutions

  1. Run the wheel build/pack step before publish
  2. Pass --dist pointing at the directory that actually contains the built wheels
  3. Verify the version filter matches the built wheel filenames
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/dbt-ci/src/publish.rs:258 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of dbt-labs/dbt-core@0267ce9170 (2026-09-07). Data as JSON: /api/errors/bcbea1e2b494dd0c. Report an issue: GitHub.

Appendix: source

Thrown at crates/dbt-ci/src/publish.rs:258

                &args.python_tag,
                &args.abi_tag,
                tmp.path(),
            )
            .await?;
            (vec![(sdist, DistKind::Sdist)], Some(tmp))
        } else {
            let dist_dir = args
                .dist
                .clone()
                .unwrap_or_else(|| cargo_workspace_root().join("target").join("wheels"));
            let wheels = discover_wheels(&dist_dir, &spec.wheel_name, args.version.as_deref())?;
            if wheels.is_empty() {
                let suffix = args
                    .version
                    .as_deref()
                    .map(|v| format!(" at version {v}"))
                    .unwrap_or_default();
                bail!(
                    "no `{}` wheel(s){suffix} in {}.",
                    spec.wheel_name,
                    dist_dir.display()
                );
            }
            (
                wheels.into_iter().map(|w| (w, DistKind::Wheel)).collect(),
                None,
            )
        };

    eprintln!(
        "→ publishing {} `{}` artifact(s):",
        dists.len(),
        spec.wheel_name
    );
    for (path, _) in &dists {
        if let Some(name) = path.file_name().and_then(|s| s.to_str()) {

View on GitHub (pinned to 0267ce9170)