{"record":{"id":"2d3c584a8a4aea78","repo":"pbakaus/impeccable","slug":"install-check-failed-e","errorCode":null,"errorMessage":"Install check failed: {e}","messagePattern":"Install check failed: (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/skills/src/commands.rs","lineNumber":665,"sourceCode":"                out(io, \"Existing skills were left unchanged.\");\n                out(io, \"Run with --force to reinstall.\\n\");\n            } else if updated == 0 && written_hook_targets.is_empty() && fresh_written == 0 {\n                let v = sys.get_skills_version(&install_root, scope_opt);\n                out(io, &format!(\"Skills are up to date{}.\", version_suffix(&v)));\n                out(io, \"Run with --force to reinstall.\\n\");\n            } else {\n                out(io, \"Done!\\n\");\n            }\n            Ok(())\n        })();\n        if let Some(dir) = &bundle_dir {\n            util::rm_rf(dir);\n        }\n        return match outcome {\n            Ok(()) => Err(Flow::Exit(0)),\n            Err(e) if e == EXIT_1 => Err(Flow::Exit(1)),\n            Err(e) => {\n                err(io, &format!(\"Install check failed: {e}\"));\n                Err(Flow::Exit(1))\n            }\n        };\n    }\n\n    if targets.is_empty() {\n        err(io, \"Could not determine a target harness folder.\");\n        err(io, \"Pass one explicitly, e.g. --providers=.claude,.cursor\");\n        return Err(Flow::Exit(1));\n    }\n\n    let want_hooks = install_hooks && decide_hook_install(&mut prompt, io, &hook_root, &targets, yes)?;\n\n    out(io, \"\\nDownloading impeccable skills...\");\n    let bundle_dir = match bundle::download_and_extract_bundle(&sys) {\n        Ok(d) => d,\n        Err(e) => {\n            err(io, &format!(\"Download failed: {e}\"));","sourceCodeStart":647,"sourceCodeEnd":683,"githubUrl":"https://github.com/pbakaus/impeccable/blob/2bc2879276c1f321a53c4ca99d3371e411329b52/crates/skills/src/commands.rs#L647-L683","documentation":"In `install --check` (or equivalent check flow), any error outcome other than the known EXIT_1 sentinel is reported as 'Install check failed: {e}' and exits 1. It wraps unexpected internal failures during the install verification.","triggerScenarios":"Running the install check when an internal step returns an unexpected error string/status (e.g. filesystem failure, unexpected command result).","commonSituations":"Corrupted target directories, permission errors during cleanup (`rm_rf`), or regressions producing non-standard exit payloads.","solutions":["Read the wrapped message after 'Install check failed:' for the root cause","Fix the underlying filesystem/permission issue named in the message","Re-run the check after resolving; report a bug if the cause is internal"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"if (!fs.existsSync(installRoot)) console.error('Install root missing; nothing to check');","typeGuard":null,"tryCatchPattern":"try { await installCheck(); } catch (e) { console.error('Install check failed:', e.message); process.exit(1); }","preventionTips":["Keep target directories writable and uncorrupted","Re-run the check after any filesystem changes","Inspect the wrapped root-cause message before retrying"],"tags":["cli","install","check"],"backgroundTag":"internal-invariant-violation","analyzedSha":"2bc2879276c1f321a53c4ca99d3371e411329b52","analyzedAt":"2026-09-08T04:51:14.109Z","contentChangedAt":"2026-09-08T04:51:14.109Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}