tinyhumansai/openhuman · error · anyhow::Error

refusing to bind on non-loopback address {resolved_host} wit

Error message

refusing to bind on non-loopback address {resolved_host} without an explicit operator-supplied RPC token ({})

What it means

Error "refusing to bind on non-loopback address {resolved_host} without an explicit operator-supplied RPC token ({})" thrown in tinyhumansai/openhuman.

Source

Thrown at src/core/runtime/builder.rs:692

        // so treating it as "explicit" would be fail-open.
        if crate::openhuman::security::pairing::is_public_bind(&resolved_host)
            && !self.has_operator_token
        {
            log::error!(
                "[core] SECURITY: refusing to bind on public address {resolved_host} without an \
                 explicit operator-supplied RPC token. Set {} in your environment (or hand the \
                 bearer in-memory via the embedded core handle) to secure the RPC endpoint.",
                crate::core::auth::CORE_TOKEN_ENV_VAR
            );
            eprintln!(
                "\n\x1b[1;31m[SECURITY]\x1b[0m Refusing to bind on {resolved_host} without {}.\n\
                 The auto-generated {{workspace}}/core.token does NOT secure a public bind —\n\
                 remote clients cannot read it. Set {} in your environment to secure the\n\
                 RPC endpoint, or bind on a loopback address.\n",
                crate::core::auth::CORE_TOKEN_ENV_VAR,
                crate::core::auth::CORE_TOKEN_ENV_VAR
            );
            anyhow::bail!(
                "refusing to bind on non-loopback address {resolved_host} without an explicit \
                 operator-supplied RPC token ({})",
                crate::core::auth::CORE_TOKEN_ENV_VAR
            );
        }

        let preferred_port = resolved_port;
        let host = resolved_host;
        let pick = crate::openhuman::platform::connectivity::rpc::pick_listen_port_for_host(
            host.as_str(),
            preferred_port,
        )
        .await
        .map_err(|err| {
            log::error!("[core] Failed to bind to {host}:{preferred_port}: {err}");
            anyhow::Error::new(err)
        })?;
        let listen_port = pick.port;

View on GitHub (pinned to a221052e0d)

When it happens

Trigger: Thrown at src/core/runtime/builder.rs:692 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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