tinyhumansai/openhuman · error
Seltz search unavailable: no API key configured. Set SELTZ_A
Error message
Seltz search unavailable: no API key configured. Set SELTZ_API_KEY or OPENHUMAN_SELTZ_API_KEY, or add seltz.api_key to config.toml.
What it means
Configuration guard in SeltzTool::execute_with_options: after query validation, the tool checks its Seltz API credential (env SELTZ_API_KEY / OPENHUMAN_SELTZ_API_KEY or seltz.api_key in config.toml) and finds none. Seltz authenticates via the x-api-key header, so the search is aborted before any network request.
Source
Thrown at src/openhuman/search/tools/seltz.rs:226
.await
}
async fn execute_with_options(
&self,
args: serde_json::Value,
options: ToolCallOptions,
) -> anyhow::Result<ToolResult> {
let query = args
.get("query")
.and_then(|q| q.as_str())
.ok_or_else(|| anyhow::anyhow!("Missing required parameter: query"))?;
if query.trim().is_empty() {
anyhow::bail!("Search query cannot be empty");
}
let api_key = self.api_key.as_deref().ok_or_else(|| {
anyhow::anyhow!(
"Seltz search unavailable: no API key configured. \
Set SELTZ_API_KEY or OPENHUMAN_SELTZ_API_KEY, \
or add seltz.api_key to config.toml."
)
})?;
let max_results = args
.get("max_results")
.and_then(|v| v.as_u64())
.map(|n| n.clamp(1, 20) as usize)
.unwrap_or(self.max_results);
// Build request body — only include optional fields when set.
let mut body = json!({
"query": query,
"max_results": max_results,
});
let body_map = body.as_object_mut().unwrap();View on GitHub (pinned to 7491200858)
Solutions
- Export SELTZ_API_KEY (or OPENHUMAN_SELTZ_API_KEY) in the environment.
- Add seltz.api_key = "..." to the workspace config.toml.
- Alternatively sign in so the backend-proxied web_search path can be used instead of direct Seltz access.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/openhuman/search/tools/seltz.rs:226 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/ed7bff7630559e30.
Report an issue: GitHub.