{"record":{"id":"1907a3a46b66eb9f","repo":"zeroclaw-labs/zeroclaw","slug":"mcp-servers-contains-duplicate-name-name","errorCode":null,"errorMessage":"mcp.servers contains duplicate name: {name}","messagePattern":"mcp\\.servers contains duplicate name: (.+?)","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/zeroclaw-config/src/schema.rs","lineNumber":10082,"sourceCode":"            anyhow::bail!(\"plugins.entries contains a duplicate instance key\");\n        }\n    }\n    Ok(())\n}\n\nfn validate_mcp_config(config: &McpConfig) -> Result<()> {\n    let mut seen_names = std::collections::HashSet::new();\n    for (i, server) in config.servers.iter().enumerate() {\n        let name = server.name.trim();\n        if name.is_empty() {\n            validation_bail!(\n                RequiredFieldEmpty,\n                format!(\"mcp.servers[{i}].name\"),\n                \"mcp.servers[{i}].name must not be empty\"\n            );\n        }\n        if !seen_names.insert(name.to_ascii_lowercase()) {\n            anyhow::bail!(\"mcp.servers contains duplicate name: {name}\");\n        }\n\n        if let Some(timeout) = server.tool_timeout_secs {\n            if timeout == 0 {\n                validation_bail!(\n                    InvalidNumericRange,\n                    format!(\"mcp.servers[{i}].tool_timeout_secs\"),\n                    \"mcp.servers[{i}].tool_timeout_secs must be greater than 0\"\n                );\n            }\n            if timeout > MCP_MAX_TOOL_TIMEOUT_SECS {\n                anyhow::bail!(\n                    \"mcp.servers[{i}].tool_timeout_secs exceeds max {MCP_MAX_TOOL_TIMEOUT_SECS}\"\n                );\n            }\n        }\n\n        // The transport -> required-leaf relationship is owned by","sourceCodeStart":10064,"sourceCodeEnd":10100,"githubUrl":"https://github.com/zeroclaw-labs/zeroclaw/blob/88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc/crates/zeroclaw-config/src/schema.rs#L10064-L10100","documentation":"Error \"mcp.servers contains duplicate name: {name}\" thrown in zeroclaw-labs/zeroclaw.","triggerScenarios":"Thrown at crates/zeroclaw-config/src/schema.rs:10082 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Rename one of the duplicate mcp.servers entries so each server name is unique."],"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"}