tinyhumansai/openhuman · error

{} {} failed: {}

Error message

{} {} failed: {}

What it means

Constructed in report_transport_error when a reqwest call to the backend fails at the transport layer (DNS, connect, TLS, timeout). The full error source chain is flattened with arrows and reported to observability with the failing path and 'failure=transport'.

Source

Thrown at src/openhuman/integrations/client.rs:432

        e: reqwest::Error,
        method: &str,
        path: &str,
        url: &str,
    ) -> anyhow::Error {
        let mut chain = format!("{e}");
        let mut src: Option<&(dyn std::error::Error + 'static)> = e.source();
        while let Some(s) = src {
            chain.push_str(" → ");
            chain.push_str(&s.to_string());
            src = s.source();
        }
        crate::core::observability::report_error_or_expected(
            chain.as_str(),
            "integrations",
            method,
            &[("path", path), ("failure", "transport")],
        );
        anyhow::anyhow!("{} {} failed: {}", method.to_uppercase(), url, chain)
    }

    fn map_sdk_error(error: SdkError, method: &str, path: &str, url: &str) -> anyhow::Error {
        let method_upper = method.to_uppercase();
        match error {
            SdkError::Http(error) => Self::report_transport_error(error, method, path, url),
            SdkError::Status { status, body } => {
                let body_text = match body {
                    serde_json::Value::String(text) => text,
                    value => value.to_string(),
                };
                let detail = extract_error_detail(&body_text, MAX_ERROR_BODY_LEN);
                if status == reqwest::StatusCode::UNAUTHORIZED.as_u16() {
                    return anyhow::anyhow!(handle_session_jwt_unauthorized(
                        &method_upper,
                        path,
                        url,
                        &detail

View on GitHub (pinned to 7491200858)

Solutions

  1. Check network connectivity and the backend base URL/proxy settings
  2. Retry — transient DNS/connect/timeout failures often resolve on their own
  3. Inspect the chained causes in the message to distinguish DNS vs TLS vs timeout
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at src/openhuman/integrations/client.rs:432 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/377336b98a1ce679. Report an issue: GitHub.