zeroclaw-labs/zeroclaw · error
mcp.servers[{i}].tls_ca_cert_path must be an absolute path
Error message
mcp.servers[{i}].tls_ca_cert_path must be an absolute path What it means
Error "mcp.servers[{i}].tls_ca_cert_path must be an absolute path" thrown in zeroclaw-labs/zeroclaw.
Source
Thrown at crates/zeroclaw-config/src/schema.rs:10151
anyhow::Error::msg(format!(
"mcp.servers[{i}] with transport={transport_str} requires url"
))
})?;
let parsed = reqwest::Url::parse(url)
.with_context(|| format!("mcp.servers[{i}].url is not a valid URL"))?;
if !matches!(parsed.scheme(), "http" | "https") {
anyhow::bail!("mcp.servers[{i}].url must use http/https");
}
if let Some(ca_path) = server.tls_ca_cert_path.as_deref() {
if ca_path.trim().is_empty() {
validation_bail!(
RequiredFieldEmpty,
format!("mcp.servers[{i}].tls_ca_cert_path"),
"mcp.servers[{i}].tls_ca_cert_path must not be empty"
);
}
if !std::path::Path::new(ca_path).is_absolute() {
anyhow::bail!("mcp.servers[{i}].tls_ca_cert_path must be an absolute path");
}
if parsed.scheme() != "https" {
anyhow::bail!(
"mcp.servers[{i}].url must use https when tls_ca_cert_path is set"
);
}
}
}
}
}
Ok(())
}
fn validate_proxy_url(field: &str, url: &str) -> Result<()> {
let parsed = reqwest::Url::parse(url)
.with_context(|| format!("Invalid {field} URL: '{url}' is not a valid URL"))?;
match parsed.scheme() {View on GitHub (pinned to 88bb9c8533)
Solutions
- Use an absolute path for tls_ca_cert_path in the MCP server config.
When it happens
Trigger: Thrown at crates/zeroclaw-config/src/schema.rs:10151 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of zeroclaw-labs/zeroclaw@88bb9c8533 (2026-08-23).
Data as JSON: /api/errors/37a9704f995d3cdf.
Report an issue: GitHub.