{"record":{"id":"3f1dd96ae864c611","repo":"pbakaus/impeccable","slug":"nothing-was-installed-the-bundle-had-no-variants","errorCode":null,"errorMessage":"Nothing was installed: the bundle had no variants for {}.","messagePattern":"Nothing was installed: the bundle had no variants for (.+?)\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/skills/src/commands.rs","lineNumber":619,"sourceCode":"\n            if !update_check_skipped && !copy_targets.is_empty() && !bundle::is_up_to_date(&sys, &install_root, &copy_targets, &bdir, scope_opt, scope_opt)? {\n                sys.migrate_unprefix_impeccable(&install_root, scope_opt);\n                let refreshed = bundle::refresh_provider_skills(&sys, &bdir, &install_root, &copy_targets, scope_opt)?;\n                updated = refreshed.len();\n                let agents = bundle::copy_provider_agents(&sys, &bdir, &install_root, &copy_targets, scope_opt)?;\n                bundle::report_provider_agents(&sys, io, &agents);\n                bundle::copy_provider_commands(&sys, &bdir, &install_root, &copy_targets, scope_opt);\n                let v = sys.get_skills_version(&install_root, scope_opt);\n                out(io, &format!(\"Updated {updated} skill(s){}.\", to_version_suffix(&v)));\n                install_engine_binaries(&sys, io, &refreshed);\n            }\n\n            let mut fresh_written = 0usize;\n            if !update_check_skipped && !missing_selected_targets.is_empty() {\n                let written = bundle::copy_provider_skills(&sys, &bdir, &install_root, &missing_selected_targets, scope_opt)?;\n                fresh_written = written.len();\n                if fresh_written == 0 {\n                    err(io, &format!(\"Nothing was installed: the bundle had no variants for {}.\", missing_selected_targets.join(\", \")));\n                    return Err(EXIT_1.to_string());\n                }\n                out(io, &format!(\n                    \"Installed impeccable into: {} ({})\",\n                    missing_selected_targets.join(\", \"),\n                    if scope == Scope::User { \"global\" } else { \"project\" }\n                ));\n                install_engine_binaries(&sys, io, &written);\n                let agents = bundle::copy_provider_agents(&sys, &bdir, &install_root, &missing_selected_targets, scope_opt)?;\n                bundle::report_provider_agents(&sys, io, &agents);\n            }\n\n            let written_hook_targets = if !missing_hook_targets.is_empty() {\n                copy_provider_hooks(&sys, &bdir, &hook_root, &missing_hook_targets, false, Some(&install_root))?\n            } else {\n                Vec::new()\n            };\n            if !written_hook_targets.is_empty() {","sourceCodeStart":601,"sourceCodeEnd":637,"githubUrl":"https://github.com/pbakaus/impeccable/blob/2bc2879276c1f321a53c4ca99d3371e411329b52/crates/skills/src/commands.rs#L601-L637","documentation":"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.","triggerScenarios":"`impeccable install` with providers that exist in config but have no skill variants in the built bundle directory (`bdir`).","commonSituations":"Stale or partial builds, custom provider aliases, or a mismatch between the CLI's supported providers and the shipped bundle.","solutions":["Rebuild the bundle (`bun run build`) so variants exist","Use providers that have variants in the bundle","Inspect the bundle directory to confirm variant folders exist"],"exampleFix":"// before\nimpeccable install --providers=unreleased-provider\n// after\nbun run build && impeccable install --providers=claude","handlingStrategy":"validation","validationCode":"const written = fs.readdirSync(bundleDir).filter(d => targets.includes(d));\nif (written.length === 0) console.error('Bundle lacks variants for targets; rebuild first');","typeGuard":null,"tryCatchPattern":"try { await install(); } catch (e) { if (/Nothing was installed/.test(String(e))) { console.error('Rebuild bundle for these providers'); } }","preventionTips":["Run bun run build after every pull","Confirm variant folders exist in the bundle directory","Avoid custom/unknown provider aliases"],"tags":["cli","install","empty-result"],"backgroundTag":"empty-result-set","analyzedSha":"2bc2879276c1f321a53c4ca99d3371e411329b52","analyzedAt":"2026-09-08T04:51:14.109Z","contentChangedAt":"2026-09-08T04:51:14.109Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}