tinyhumansai/openhuman · error

browser.computer_use.endpoint must use https:// when allow_r

Error message

browser.computer_use.endpoint must use https:// when allow_remote_endpoint=true and host is public

What it means

computer_use_endpoint_url requires https:// for a public host even when allow_remote_endpoint=true. Plain HTTP to a public sidecar would expose browser-session traffic in cleartext across the network, so the config is rejected as insecure.

Source

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

        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"
            );
        }

        if self.computer_use.allow_remote_endpoint && !host_is_private && scheme != "https" {
            anyhow::bail!(
                "browser.computer_use.endpoint must use https:// when allow_remote_endpoint=true and host is public"
            );
        }

        Ok(parsed)
    }

    fn computer_use_available(&self) -> anyhow::Result<bool> {
        let endpoint = self.computer_use_endpoint_url()?;
        Ok(endpoint_reachable(&endpoint, Duration::from_millis(500)))
    }

    async fn resolve_backend(&self) -> anyhow::Result<ResolvedBackend> {
        let configured = self.configured_backend()?;

        match configured {
            BrowserBackendKind::AgentBrowser => {
                if Self::is_agent_browser_available().await {

View on GitHub (pinned to 7491200858)

Solutions

  1. Serve the remote sidecar over TLS and use an https:// endpoint.
  2. Switch to a local/private endpoint if TLS is not available.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/tools/impl/browser/browser.rs:184 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/3e7b3cac8310f7bb. Report an issue: GitHub.