{"record":{"id":"3fd2c555e064b724","repo":"Hmbown/CodeWhale","slug":"no-bundle-is-installed","errorCode":null,"errorMessage":"no bundle is installed","messagePattern":"no bundle is installed","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"crates/tui/src/integrations/cli.rs","lineNumber":463,"sourceCode":"                \"installed: {} {} into {} (patch sha256 {})\",\n                bundle.package_name,\n                bundle.package_version,\n                bundle.profile_dir.display(),\n                bundle.patch_sha256\n            );\n            println!(\n                \"launch without --patch: dsh --profile {}  (or `{CLI_COMMAND} launch`)\",\n                dsh::bundle::BUNDLE_PROFILE\n            );\n            Ok(())\n        }\n        DshIntegrationCommand::RemoveBundle { yes } => {\n            let (paths, report) = status_report(config, workspace, false)?;\n            let bundle = report\n                .record\n                .as_ref()\n                .and_then(|r| r.bundle.as_ref())\n                .ok_or_else(|| anyhow::anyhow!(\"no bundle is installed\"))?;\n            println!(\n                \"remove-bundle will run: dsh plugin --profile {} remove {}\",\n                bundle.profile, bundle.package_name\n            );\n            println!(\"  then delete only {}\", paths.bundle_dir.display());\n            println!(\n                \"  the DSH profile dir {} and its app bundle link stay in place (DSH-owned)\",\n                bundle.profile_dir.display()\n            );\n            confirm(\n                yes,\n                \"Remove the Codewhale bundle from DSH profile `codewhale`?\",\n            )?;\n            let removed = dsh::remove_bundle(&paths, &report.detection, &dsh::ProcessRunner)?;\n            println!(\n                \"removed bundle; deleted {} Codewhale-owned file(s)\",\n                removed.len()\n            );","sourceCodeStart":445,"sourceCodeEnd":481,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/8880682c63083a91624de936797efa3ce9e498fd/crates/tui/src/integrations/cli.rs#L445-L481","documentation":"`remove-bundle` reads the current connection record and its optional `bundle` field; this error fires when there is no connection record at all, or the record has `bundle: None` — install-bundle never completed or its record was already cleared. The command refuses to guess rather than delete anything, so nothing is removed when it triggers.","triggerScenarios":"Running `codewhale integrations dsh remove-bundle` before any install-bundle, after a successful remove-bundle, after `remove` deleted the whole receipt, or when a prior install-bundle failed before writing the bundle record.","commonSituations":"Cleanup scripts that run remove-bundle unconditionally; retrying remove-bundle after it already succeeded; trying to clean up a half-finished install-bundle whose record was never written.","solutions":["Check `codewhale integrations dsh status` — the connected line only mentions a bundle when one is recorded","If a previous install-bundle failed halfway, re-run install-bundle to completion first, then remove-bundle","If the goal is removing the entire integration (overlay, receipt, bundle dir), use `codewhale integrations dsh remove` instead","Treat this error as a no-op signal in automation: exit without action"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"let (_paths, report) = status_report(config, workspace, false)?;\nif report.record.as_ref().and_then(|r| r.bundle.as_ref()).is_none() {\n    println!(\"no bundle is installed; nothing to remove\");\n    return Ok(());\n}","typeGuard":"fn bundle_present(report: &DshStatusReport) -> bool {\n    report.record.as_ref().and_then(|r| r.bundle.as_ref()).is_some()\n}","tryCatchPattern":null,"preventionTips":["Make cleanup scripts treat 'no bundle installed' as success, not failure","Correlate with `codewhale integrations dsh status` before remove operations","After a failed install-bundle, complete an install before attempting removal"],"tags":["rust","dsh","cli","state","bundle"],"backgroundTag":null,"analyzedSha":"8880682c63083a91624de936797efa3ce9e498fd","analyzedAt":"2026-08-16T11:31:27.956Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}