tinyhumansai/openhuman · error · anyhow::Error

Invalid browser.computer_use.endpoint: '{endpoint}'. Expecte

Error message

Invalid browser.computer_use.endpoint: '{endpoint}'. Expected http(s) URL

What it means

Config validation in computer_use_endpoint_url: the configured browser.computer_use.endpoint does not parse as a URL at all (reqwest::Url::parse failed). Distinct from the sibling checks for empty endpoint, non-http scheme, and missing host — this is the raw-parse failure.

Source

Thrown at src/openhuman/tools/impl/browser/browser.rs:162

        }
        #[cfg(not(feature = "browser-native"))]
        {
            false
        }
    }

    fn computer_use_endpoint_url(&self) -> anyhow::Result<reqwest::Url> {
        if self.computer_use.timeout_ms == 0 {
            anyhow::bail!("browser.computer_use.timeout_ms must be > 0");
        }

        let endpoint = self.computer_use.endpoint.trim();
        if endpoint.is_empty() {
            anyhow::bail!("browser.computer_use.endpoint cannot be empty");
        }

        let parsed = reqwest::Url::parse(endpoint).map_err(|_| {
            anyhow::anyhow!(
                "Invalid browser.computer_use.endpoint: '{endpoint}'. Expected http(s) URL"
            )
        })?;

        let scheme = parsed.scheme();
        if scheme != "http" && scheme != "https" {
            anyhow::bail!("browser.computer_use.endpoint must use http:// or https://");
        }

        let host = parsed
            .host_str()
            .ok_or_else(|| anyhow::anyhow!("browser.computer_use.endpoint must include host"))?;

        let host_is_private = is_private_host(host);
        if !self.computer_use.allow_remote_endpoint && !host_is_private {
            anyhow::bail!(
                "browser.computer_use.endpoint host '{host}' is public. Set browser.computer_use.allow_remote_endpoint=true to allow it"
            );

View on GitHub (pinned to 7491200858)

Solutions

  1. Fix the endpoint string to a well-formed http(s) URL
  2. Check for typos/missing scheme in the config value
  3. Restart/retry after correcting the config
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/tools/impl/browser/browser.rs:162 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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