Hmbown/CodeWhale · error · anyhow::Error

current Codewhale route {}/{} cannot be carried by DSH: {rea

Error message

current Codewhale route {}/{} cannot be carried by DSH: {reason}

What it means

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.

Source

Thrown at crates/tui/src/integrations/dsh/mod.rs:369

    pub(crate) profile: String,
    pub(crate) launch_command: String,
    pub(crate) env_exports: Vec<(String, String)>,
    pub(crate) shadowing_namespaces: Vec<String>,
    pub(crate) disclosures: Vec<String>,
}

pub(crate) fn plan(
    paths: &DshPaths,
    detection: &DshDetection,
    identity: &CodewhaleRouteIdentity,
    profile: &str,
    allow_full_access: bool,
    skin: bool,
    ocean: bool,
) -> Result<DshPlan> {
    let mapped = map_identity(identity, allow_full_access);
    let overlay_text = render_overlay(&mapped).ok_or_else(|| match &mapped.adapter {
        DshAdapter::Unsupported { reason } => anyhow::anyhow!(
            "current Codewhale route {}/{} cannot be carried by DSH: {reason}",
            identity.provider_id,
            identity.model
        ),
        _ => anyhow::anyhow!("overlay could not be rendered"),
    })?;
    let overlay_sha256 = sha256_hex(overlay_text.as_bytes());
    let mut disclosures = mapped.disclosures.clone();
    let shadowing = shadowing_namespaces(detection);
    if !shadowing.is_empty() {
        disclosures.push(format!(
            "$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.",
            shadowing.join(", ")
        ));
    }
    if !detection.profiles.iter().any(|p| p == profile) {
        disclosures.push(format!(
            "DSH profile `{profile}` is not initialized yet; dsh will create $DSH_HOME/profiles/{profile} on first launch (its own documented behavior)."

View on GitHub (pinned to 0c42157ee5)

Solutions

  1. Read `reason` for why the adapter is unsupported
  2. Switch to a supported provider/model route before using DSH
  3. Check DSH docs for supported route kinds
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/tui/src/integrations/dsh/mod.rs:369 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Hmbown/CodeWhale@0c42157ee5 (2026-08-20). Data as JSON: /api/errors/669ae20805c63d55. Report an issue: GitHub.