{"record":{"id":"9e559578e1be4090","repo":"zeroclaw-labs/zeroclaw","slug":"unknown-catalog-name-valid-valid","errorCode":null,"errorMessage":"unknown catalog '{name}'; valid: {valid}","messagePattern":"unknown catalog '(.+?)'; valid: (.+?)","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src/main.rs","lineNumber":3337,"sourceCode":"            let names: Vec<&str> = list\n                .split(',')\n                .map(str::trim)\n                .filter(|s| !s.is_empty())\n                .collect();\n            let mut out = Vec::new();\n            for name in &names {\n                match zeroclaw_config::schema::FTL_CATALOGS\n                    .iter()\n                    .find(|(n, _, _)| n == name)\n                {\n                    Some(entry) => out.push(entry),\n                    None => {\n                        let valid = zeroclaw_config::schema::FTL_CATALOGS\n                            .iter()\n                            .map(|(n, _, _)| *n)\n                            .collect::<Vec<_>>()\n                            .join(\", \");\n                        bail!(\"unknown catalog '{name}'; valid: {valid}\");\n                    }\n                }\n            }\n            out\n        }\n    };\n\n    let dest = zeroclaw_config::schema::ftl_locale_dir(&locale)?;\n    std::fs::create_dir_all(&dest).with_context(|| format!(\"creating {}\", dest.display()))?;\n    // Confinement check: the resolved dest must live under the data-dir FTL root.\n    let ftl_root = dest\n        .parent()\n        .map(Path::to_path_buf)\n        .unwrap_or_else(|| dest.clone());\n    let canon_dest = std::fs::canonicalize(&dest).unwrap_or_else(|_| dest.clone());\n    let canon_root = std::fs::canonicalize(&ftl_root).unwrap_or(ftl_root);\n    if !canon_dest.starts_with(&canon_root) {\n        bail!(\"refusing to write outside the FTL data directory\");","sourceCodeStart":3319,"sourceCodeEnd":3355,"githubUrl":"https://github.com/zeroclaw-labs/zeroclaw/blob/88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc/src/main.rs#L3319-L3355","documentation":"Error \"unknown catalog '{name}'; valid: {valid}\" thrown in zeroclaw-labs/zeroclaw.","triggerScenarios":"Thrown at src/main.rs:3337 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use one of the valid catalog names listed in the error message.","Check for typos in the catalog name; names are case-sensitive."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc","analyzedAt":"2026-08-23T01:07:41.857Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}