{"record":{"id":"157ee7a08fcbd204","repo":"zeroclaw-labs/zeroclaw","slug":"invalid-label-entry-s-each-entry-must-be","errorCode":null,"errorMessage":"Invalid {label} entry(s): [{}]. Each entry must be a valid domain, hostname, IPv4, or IPv6 address.","messagePattern":"Invalid (.+?) entry\\(s\\): \\[(.+?)\\]\\. Each entry must be a valid domain, hostname, IPv4, or IPv6 address\\.","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/zeroclaw-infra/src/net_guard.rs","lineNumber":116,"sourceCode":"/// domain, hostname, IPv4, or IPv6 address.\n///\n/// # Errors\n///\n/// Returns an error naming every rejected entry when one or more entries\n/// fail [`normalize_domain`].\npub fn normalize_allowed_domains(domains: Vec<String>, label: &str) -> anyhow::Result<Vec<String>> {\n    let mut rejected = Vec::new();\n    let mut normalized = domains\n        .into_iter()\n        .filter_map(|d| {\n            normalize_domain(&d).or_else(|| {\n                rejected.push(d.clone());\n                None\n            })\n        })\n        .collect::<Vec<_>>();\n    if !rejected.is_empty() {\n        anyhow::bail!(\n            \"Invalid {label} entry(s): [{}]. Each entry must be a valid domain, hostname, IPv4, or IPv6 address.\",\n            rejected.join(\", \")\n        );\n    }\n    normalized.sort_unstable();\n    normalized.dedup();\n    Ok(normalized)\n}\n\n// ── host matching ─────────────────────────────────────────────────\n\n/// True when `host` matches any entry in a normalized `allowed` list.\n///\n/// Matching rules, unchanged from the tool-layer original:\n/// - a bare `*` entry matches everything;\n/// - a `*.example.com` entry matches `example.com` and any subdomain;\n/// - an IP entry, or an IP host, matches only exactly;\n/// - a bare domain entry matches itself and any subdomain of it.","sourceCodeStart":98,"sourceCodeEnd":134,"githubUrl":"https://github.com/zeroclaw-labs/zeroclaw/blob/88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc/crates/zeroclaw-infra/src/net_guard.rs#L98-L134","documentation":"Error \"Invalid {label} entry(s): [{}]. Each entry must be a valid domain, hostname, IPv4, or IPv6 address.\" thrown in zeroclaw-labs/zeroclaw.","triggerScenarios":"Thrown at crates/zeroclaw-infra/src/net_guard.rs:116 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Fix the listed entries so each is a valid domain, hostname, IPv4, or IPv6 address."],"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"}