{"record":{"id":"669ae20805c63d55","repo":"Hmbown/CodeWhale","slug":"current-codewhale-route-cannot-be-carried-by","errorCode":null,"errorMessage":"current Codewhale route {}/{} cannot be carried by DSH: {reason}","messagePattern":"current Codewhale route (.+?)/(.+?) cannot be carried by DSH: (.+?)","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/tui/src/integrations/dsh/mod.rs","lineNumber":369,"sourceCode":"    pub(crate) profile: String,\n    pub(crate) launch_command: String,\n    pub(crate) env_exports: Vec<(String, String)>,\n    pub(crate) shadowing_namespaces: Vec<String>,\n    pub(crate) disclosures: Vec<String>,\n}\n\npub(crate) fn plan(\n    paths: &DshPaths,\n    detection: &DshDetection,\n    identity: &CodewhaleRouteIdentity,\n    profile: &str,\n    allow_full_access: bool,\n    skin: bool,\n    ocean: bool,\n) -> Result<DshPlan> {\n    let mapped = map_identity(identity, allow_full_access);\n    let overlay_text = render_overlay(&mapped).ok_or_else(|| match &mapped.adapter {\n        DshAdapter::Unsupported { reason } => anyhow::anyhow!(\n            \"current Codewhale route {}/{} cannot be carried by DSH: {reason}\",\n            identity.provider_id,\n            identity.model\n        ),\n        _ => anyhow::anyhow!(\"overlay could not be rendered\"),\n    })?;\n    let overlay_sha256 = sha256_hex(overlay_text.as_bytes());\n    let mut disclosures = mapped.disclosures.clone();\n    let shadowing = shadowing_namespaces(detection);\n    if !shadowing.is_empty() {\n        disclosures.push(format!(\n            \"$DSH_HOME/settings.yaml has [{}] sections; DSH layers those over the overlay per field, so the saved DSH selection can shadow the pinned identity until you clear it in DSH.\",\n            shadowing.join(\", \")\n        ));\n    }\n    if !detection.profiles.iter().any(|p| p == profile) {\n        disclosures.push(format!(\n            \"DSH profile `{profile}` is not initialized yet; dsh will create $DSH_HOME/profiles/{profile} on first launch (its own documented behavior).\"","sourceCodeStart":351,"sourceCodeEnd":387,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/0c42157ee52f9d55af2b506d71b46249910f77d3/crates/tui/src/integrations/dsh/mod.rs#L351-L387","documentation":"The DSH plan builder refused the active Codewhale route: its adapter mapping returned Unsupported with a reason (e.g. protocol or auth mode DSH cannot carry). The message names the provider id and model so the user knows exactly which route fails.","triggerScenarios":"Thrown at crates/tui/src/integrations/dsh/mod.rs:369 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Read `reason` for why the adapter is unsupported","Switch to a supported provider/model route before using DSH","Check DSH docs for supported route kinds"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0c42157ee52f9d55af2b506d71b46249910f77d3","analyzedAt":"2026-08-20T21:50:45.477Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}