{"record":{"id":"5daa90989e5a2a37","repo":"zeroclaw-labs/zeroclaw","slug":"unknown-integration-name-check-readme-for-supp","errorCode":null,"errorMessage":"Unknown integration: {name}. Check README for supported integrations or run `zeroclaw quickstart` to configure a model provider, then `zeroclaw config set channels.<name>.<field>=<value>` for channels.","messagePattern":"Unknown integration: (.+?)\\. Check README for supported integrations or run `zeroclaw quickstart` to configure a model provider, then `zeroclaw config set channels\\.<name>\\.<field>=<value>` for channels\\.","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/zeroclaw-runtime/src/integrations/mod.rs","lineNumber":57,"sourceCode":"            Self::Platform,\n        ]\n    }\n}\n\npub struct IntegrationEntry {\n    pub name: String,\n    pub description: String,\n    pub category: IntegrationCategory,\n    pub status: IntegrationStatus,\n}\n\n/// Handle the `integrations` CLI command\npub fn show_integration_info(config: &Config, name: &str) -> Result<()> {\n    let entries = registry::all_integrations(config);\n    let name_lower = name.to_lowercase();\n\n    let Some(entry) = entries.iter().find(|e| e.name.to_lowercase() == name_lower) else {\n        anyhow::bail!(\n            \"Unknown integration: {name}. Check README for supported integrations or run `zeroclaw quickstart` to configure a model provider, then `zeroclaw config set channels.<name>.<field>=<value>` for channels.\"\n        );\n    };\n\n    let (icon, label) = match entry.status {\n        IntegrationStatus::Active => (\"✅\", \"Active\"),\n        IntegrationStatus::Available => (\"⚪\", \"Available\"),\n    };\n\n    println!();\n    println!(\n        \"  {} {} — {}\",\n        icon,\n        console::style(&entry.name).white().bold(),\n        entry.description\n    );\n    println!(\"  Category: {}\", entry.category.label());\n    println!(\"  Status:   {label}\");","sourceCodeStart":39,"sourceCodeEnd":75,"githubUrl":"https://github.com/zeroclaw-labs/zeroclaw/blob/88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc/crates/zeroclaw-runtime/src/integrations/mod.rs#L39-L75","documentation":"show_integration_info backs the `zeroclaw integrations <name>` CLI command. It builds the registry via registry::all_integrations(config) and searches it case-insensitively for the requested name; on miss it bails with remediation hints. The error means the name simply is not in the registry of known integrations — it is a lookup miss, not a load failure.","triggerScenarios":"Running `zeroclaw integrations slackk` (typo); passing a custom channel name that exists in config but is not a registered integration; passing a model-provider alias; extra whitespace or a plural form (\"channels\", \"gateways\") that matches no registry entry.","commonSituations":"Exploring a fresh install and guessing names; docs/README drift where an integration was renamed between versions; users conflating channels (configured via zeroclaw config set channels.<name>...) with built-in integrations.","solutions":["List what exists: run the integrations command without a name (or its list mode) to print registered integrations and their statuses","Fix the spelling — matching is case-insensitive but otherwise exact","If it is a channel you want, configure it: zeroclaw quickstart, then zeroclaw config set channels.<name>.<field>=<value>","If you expected this integration to exist, check the README/changelog for renames in your ZeroClaw version"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"let known: Vec<&str> = registry::all_integrations(config)\n    .iter().map(|e| e.name.as_str()).collect();\nif !known.iter().any(|n| n.eq_ignore_ascii_case(name)) {\n    // print known names and exit gracefully instead of calling show_integration_info\n}","typeGuard":null,"tryCatchPattern":"if let Err(e) = show_integration_info(config, name) {\n    if e.to_string().starts_with(\"Unknown integration:\") {\n        // show the available list from the registry; not an internal failure\n    }\n}","preventionTips":["Build CLI autocomplete from registry::all_integrations names","Mirror the library's case-insensitive exact match when pre-validating user input","Catch upstream renames by listing integrations after version upgrades"],"tags":["rust","zeroclaw","cli","integrations","registry","lookup"],"backgroundTag":"unknown-resource-name","analyzedSha":"88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc","analyzedAt":"2026-08-23T01:07:41.857Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}