tinyhumansai/openhuman · error

unsupported SearXNG category `{other}`; expected web, news,

Error message

unsupported SearXNG category `{other}`; expected web, news, or images

What it means

normalize_categories hit a category alias that maps to none of web/general, news, images after lowercasing and trimming — unknown vocabulary from the tool caller. Empty entries are skipped, so this only fires on a real unrecognized word.

Source

Thrown at src/openhuman/search/tools/searxng.rs:331

            result.markdown_formatted = Some(markdown);
        }
        Ok(result)
    }
}

/// Normalize user-facing category aliases into SearXNG category names.
pub fn normalize_categories(categories: Vec<String>) -> anyhow::Result<Vec<String>> {
    let mut normalized = Vec::new();
    for category in categories {
        let trimmed = category.trim();
        if trimmed.is_empty() {
            continue;
        }
        let mapped = match trimmed.to_ascii_lowercase().as_str() {
            "web" | "general" => "general",
            "news" => "news",
            "images" => "images",
            other => anyhow::bail!(
                "unsupported SearXNG category `{other}`; expected web, news, or images"
            ),
        };
        if !normalized.iter().any(|existing| existing == mapped) {
            normalized.push(mapped.to_string());
        }
    }
    Ok(normalized)
}

fn normalize_results(raw: RawSearxngResponse, max_results: usize) -> Vec<SearxngSearchResult> {
    raw.results
        .into_iter()
        .filter_map(|item| {
            let url = item.url.unwrap_or_default().trim().to_string();
            if url.is_empty() {
                return None;
            }

View on GitHub (pinned to 7491200858)

Solutions

  1. Use one of the supported categories: web, news, or images
  2. Drop the category to fall back to the default
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/search/tools/searxng.rs:331 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/d7007b6c80367650. Report an issue: GitHub.