tinyhumansai/openhuman · error

Seltz search request failed: {e}

Error message

Seltz search request failed: {e}

What it means

Transport-failure mapping in SeltzTool::execute_with_options: the reqwest POST to the Seltz endpoint (with x-api-key header) failed at the network layer — DNS failure, connection refused/reset, TLS error, or the configured timeout elapsed. The reqwest error is logged at warn and rewrapped; HTTP status failures are handled separately in the non-2xx branch.

Source

Thrown at src/openhuman/search/tools/seltz.rs:291

        tracing::debug!(
            query_len = query.chars().count(),
            max_results,
            timeout_secs = self.timeout_secs,
            "[seltz] POST {url}"
        );

        let resp = self
            .http_client
            .post(&url)
            .header("x-api-key", api_key)
            .header("Content-Type", "application/json")
            .json(&body)
            .send()
            .await
            .map_err(|e| {
                tracing::warn!("[seltz] request failed: {e}");
                anyhow::anyhow!("Seltz search request failed: {e}")
            })?;

        let status = resp.status();
        if !status.is_success() {
            let body_text = resp.text().await.unwrap_or_default();
            let detail = utf8_safe_prefix_at_byte_boundary(&body_text, 500);
            tracing::warn!(
                status = %status,
                "[seltz] non-2xx response: {detail}"
            );
            anyhow::bail!("Seltz returned {status}: {detail}");
        }

        let search_resp: SeltzSearchResponse = resp.json().await.map_err(|e| {
            tracing::warn!("[seltz] failed to parse response: {e}");
            anyhow::anyhow!("Failed to parse Seltz response: {e}")
        })?;

View on GitHub (pinned to 7491200858)

Solutions

  1. Check network connectivity and that the Seltz endpoint URL is reachable.
  2. Retry; transient network errors often resolve.
  3. If timeouts recur, increase the timeout or investigate proxy/firewall interference.
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at src/openhuman/search/tools/seltz.rs:291 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/ee6d48edc2871501. Report an issue: GitHub.