hermes - 💡(How to fix) Fix [Bug]: web_extract gives dead-end error with only SearXNG configured

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

web_extract returns a dead-end error when only SearXNG is configured as the web backend. The error tells the user what's wrong but doesn't guide them to a solution. 3. Get error: "SearXNG is a search-only backend and cannot extract URL content" The error message should point the user toward a solution, e.g.: One-line error with no actionable guidance. The user gets stuck unless they already know what backends support extraction. The bug is in plugins/web/searxng/provider.py lines 52-53. supports_extract() correctly returns False — SearXNG is a metasearch engine, not a scraper. But when web.extract_backend is empty in config.yaml and the user only has web.search_backend: searxng, the error propagation at the web_tools layer doesn't tell the user what to do next. The error reads like a system failure rather than a configuration gap. (a) A clearer error pointing the user to set an extract backend (firecrawl, tavily, exa, parallel), or

Root Cause

The bug is in plugins/web/searxng/provider.py lines 52-53. supports_extract() correctly returns False — SearXNG is a metasearch engine, not a scraper. But when web.extract_backend is empty in config.yaml and the user only has web.search_backend: searxng, the error propagation at the web_tools layer doesn't tell the user what to do next. The error reads like a system failure rather than a configuration gap.

The fix would be either: (a) A clearer error pointing the user to set an extract backend (firecrawl, tavily, exa, parallel), or (b) Optionally falling back to a browser-based extraction if the browser toolset is available.

RAW_BUFFERClick to expand / collapse

No response given for required fields — see body below

Bug Description

web_extract returns a dead-end error when only SearXNG is configured as the web backend. The error tells the user what's wrong but doesn't guide them to a solution.

Steps to Reproduce

  1. Configure Hermes with only web.search_backend: searxng and leave web.extract_backend: ''
  2. Call web_extract(urls=["https://example.com"])
  3. Get error: "SearXNG is a search-only backend and cannot extract URL content"
  4. No guidance on what extract backend to configure instead

Expected Behavior

The error message should point the user toward a solution, e.g.:

"SearXNG is search-only and cannot extract page content. Configure an extract-capable backend (one of: firecrawl, tavily, exa, parallel) in config.yaml under web.extract_backend. Or use a self-hosted scraper like Crawl4AI via the terminal/crawl4ai.sh wrapper."

Better yet: if the browser toolset is available, offer to fall back to browser-based extraction.

Actual Behavior

One-line error with no actionable guidance. The user gets stuck unless they already know what backends support extraction.

Affected Component

  • Tools (terminal, file ops, web, code execution, etc.)
  • Configuration (config.yaml, .env, hermes setup)

Debug Report

Report https://paste.rs/9KSxw agent.log https://paste.rs/sCssI gateway.log https://paste.rs/nFrGG

Operating System

Windows 10 with WSL2 (Ubuntu 26.04) — but applies to any OS

Python Version

3.11.15

Hermes Version

v0.14.0 (2026.5.16)

Root Cause Analysis

The bug is in plugins/web/searxng/provider.py lines 52-53. supports_extract() correctly returns False — SearXNG is a metasearch engine, not a scraper. But when web.extract_backend is empty in config.yaml and the user only has web.search_backend: searxng, the error propagation at the web_tools layer doesn't tell the user what to do next. The error reads like a system failure rather than a configuration gap.

The fix would be either: (a) A clearer error pointing the user to set an extract backend (firecrawl, tavily, exa, parallel), or (b) Optionally falling back to a browser-based extraction if the browser toolset is available.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING