tinyhumansai/openhuman · error
SearXNG returned {status}: {detail}
Error message
SearXNG returned {status}: {detail} What it means
The SearXNG instance answered a non-success HTTP status; {detail} carries a UTF-8-safe 500-char prefix of the body. For a self-hosted instance this usually means a bad base_url, a missing format=json setting, or the instance refusing the bot.
Source
Thrown at src/openhuman/search/tools/searxng.rs:191
);
let response = self
.http_client
.get(url.clone())
.timeout(Duration::from_secs(self.timeout_secs))
.send()
.await
.map_err(|err| {
tracing::warn!(error = %err, "[searxng] request failed");
anyhow::anyhow!("SearXNG request failed: {err}")
})?;
let status = response.status();
if !status.is_success() {
let body = response.text().await.unwrap_or_default();
let detail = utf8_safe_prefix_at_byte_boundary(&body, 500);
tracing::warn!(status = %status, "[searxng] non-2xx response: {detail}");
anyhow::bail!("SearXNG returned {status}: {detail}");
}
let raw: RawSearxngResponse = response.json().await.map_err(|err| {
tracing::warn!(error = %err, "[searxng] failed to parse JSON response");
anyhow::anyhow!("Failed to parse SearXNG response: {err}")
})?;
let results = normalize_results(raw, max_results);
tracing::debug!(result_count = results.len(), "[searxng] search complete");
Ok(SearxngSearchResponse {
query: query.to_string(),
results,
})
}
fn search_endpoint_url(&self) -> anyhow::Result<reqwest::Url> {
let base = self.base_url.trim().trim_end_matches('/');View on GitHub (pinned to 7491200858)
Solutions
- Verify the instance allows the `search` endpoint with JSON format enabled
- Fix the configured base_url if it points at the HTML UI
- Retry for transient gateway errors
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at src/openhuman/search/tools/searxng.rs:191 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/54b9571296620465.
Report an issue: GitHub.