pbakaus/impeccable · error

Nothing was installed: the bundle had no variants for {}.

Error message

Nothing was installed: the bundle had no variants for {}.

What it means

Failure report in install's already-installed path: for providers selected but not yet installed (missing_selected_targets), copy_provider_skills wrote zero skills because the freshly downloaded bundle contained no variants for those providers. The sentinel EXIT_1 string is returned so the caller exits 1 without an extra 'Install check failed' line.

Source

Thrown at crates/skills/src/commands.rs:619

            if !update_check_skipped && !copy_targets.is_empty() && !bundle::is_up_to_date(&sys, &install_root, &copy_targets, &bdir, scope_opt, scope_opt)? {
                sys.migrate_unprefix_impeccable(&install_root, scope_opt);
                let refreshed = bundle::refresh_provider_skills(&sys, &bdir, &install_root, &copy_targets, scope_opt)?;
                updated = refreshed.len();
                let agents = bundle::copy_provider_agents(&sys, &bdir, &install_root, &copy_targets, scope_opt)?;
                bundle::report_provider_agents(&sys, io, &agents);
                bundle::copy_provider_commands(&sys, &bdir, &install_root, &copy_targets, scope_opt);
                let v = sys.get_skills_version(&install_root, scope_opt);
                out(io, &format!("Updated {updated} skill(s){}.", to_version_suffix(&v)));
                install_engine_binaries(&sys, io, &refreshed);
            }

            let mut fresh_written = 0usize;
            if !update_check_skipped && !missing_selected_targets.is_empty() {
                let written = bundle::copy_provider_skills(&sys, &bdir, &install_root, &missing_selected_targets, scope_opt)?;
                fresh_written = written.len();
                if fresh_written == 0 {
                    err(io, &format!("Nothing was installed: the bundle had no variants for {}.", missing_selected_targets.join(", ")));
                    return Err(EXIT_1.to_string());
                }
                out(io, &format!(
                    "Installed impeccable into: {} ({})",
                    missing_selected_targets.join(", "),
                    if scope == Scope::User { "global" } else { "project" }
                ));
                install_engine_binaries(&sys, io, &written);
                let agents = bundle::copy_provider_agents(&sys, &bdir, &install_root, &missing_selected_targets, scope_opt)?;
                bundle::report_provider_agents(&sys, io, &agents);
            }

            let written_hook_targets = if !missing_hook_targets.is_empty() {
                copy_provider_hooks(&sys, &bdir, &hook_root, &missing_hook_targets, false, Some(&install_root))?
            } else {
                Vec::new()
            };
            if !written_hook_targets.is_empty() {

View on GitHub (pinned to 2bc2879276)

Solutions

  1. Rebuild the bundle (`bun run build`) so variants exist
  2. Use providers that have variants in the bundle
  3. Inspect the bundle directory to confirm variant folders exist

Example fix

// before
impeccable install --providers=unreleased-provider
// after
bun run build && impeccable install --providers=claude
Defensive patterns

Strategy: validation

Validate before calling

const written = fs.readdirSync(bundleDir).filter(d => targets.includes(d));
if (written.length === 0) console.error('Bundle lacks variants for targets; rebuild first');

Try / catch

try { await install(); } catch (e) { if (/Nothing was installed/.test(String(e))) { console.error('Rebuild bundle for these providers'); } }

Prevention

When it happens

Trigger: `impeccable install` with providers that exist in config but have no skill variants in the built bundle directory (`bdir`).

Common situations: Stale or partial builds, custom provider aliases, or a mismatch between the CLI's supported providers and the shipped bundle.

Understand the failure class

Background: EmptyResultError / "no results found": when an API or scraper succeeds but returns zero rows — this error's family across 9 libraries.

Related errors


AI-assisted analysis of pbakaus/impeccable@2bc2879276 (2026-09-08). Data as JSON: /api/errors/3f1dd96ae864c611. Report an issue: GitHub.