tinyhumansai/openhuman · error

DNS resolution returned no addresses for '{host}'

Error message

DNS resolution returned no addresses for '{host}'

What it means

The DNS-rebinding check resolved the hostname successfully but the resolver returned an empty address list, so there is no IP to re-validate and the request cannot proceed safely.

Source

Thrown at src/openhuman/tools/impl/network/url_guard.rs:131

    F: FnOnce(String, u16) -> Fut,
    Fut: Future<Output = anyhow::Result<Vec<IpAddr>>>,
{
    let url = validate_url(raw_url, allowed_domains)?;

    let host = extract_host(&url)?;

    // If the host is already a valid IP literal, `is_private_or_local_host`
    // has already checked it above. We only need DNS resolution for hostnames.
    if host.parse::<std::net::IpAddr>().is_ok() {
        return Ok(url);
    }

    let port = extract_port(&url)?;
    log::debug!("[url_guard] resolving DNS for host={host} port={port}");
    let addrs = resolver(host.clone(), port).await?;

    if addrs.is_empty() {
        anyhow::bail!("DNS resolution returned no addresses for '{host}'");
    }

    log::debug!("[url_guard] DNS resolved host={host} addrs={}", addrs.len());

    for addr in &addrs {
        let ip_str = addr.to_string();
        if is_private_or_local_host(&ip_str) {
            log::debug!("[url_guard] DNS rebinding blocked host={host} resolved_ip={ip_str}");
            anyhow::bail!(
                "DNS rebinding blocked: '{host}' resolved to private/local address {ip_str}"
            );
        }
    }

    Ok(url)
}

async fn resolve_host_ips(host: String, port: u16) -> anyhow::Result<Vec<IpAddr>> {

View on GitHub (pinned to 7491200858)

Solutions

  1. Verify the hostname actually resolves (dig/nslookup) from this machine
  2. Fix or wait out broken DNS on the host, then retry
  3. Use a hostname with valid A/AAAA records
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/tools/impl/network/url_guard.rs:131 when the library encounters an invalid state.

Common situations: See trigger scenarios.

Understand the failure class


AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17). Data as JSON: /api/errors/7d10d65de7c84936. Report an issue: GitHub.