tinyhumansai/openhuman · error
Seltz returned {status}: {detail}
Error message
Seltz returned {status}: {detail} What it means
The Seltz search API answered a non-success HTTP status; {detail} embeds a UTF-8-safe 500-char body prefix. Auth (x-api-key), quota and upstream errors all surface here.
Source
Thrown at src/openhuman/search/tools/seltz.rs:302
.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}")
})?;
tracing::debug!(
doc_count = search_resp.documents.len(),
"[seltz] search complete"
);
let mut result =
ToolResult::success(self.render_results_plain(&search_resp.documents, query));
if options.prefer_markdown {
result.markdown_formatted =
Some(self.render_results_markdown(&search_resp.documents, query));
}View on GitHub (pinned to 7491200858)
Solutions
- Check the Seltz API key for 401/403
- Retry after the quota window for 429
- Read {detail} for Seltz's own error reason
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at src/openhuman/search/tools/seltz.rs:302 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/49d71ed7c0344689.
Report an issue: GitHub.