hermes - 💡(How to fix) Fix web_extract fails with "No web extract provider configured" despite extract_backend: firecrawl and valid API key

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

{"success": false, "error": "No web extract provider configured. Set web.extract_backend to firecrawl, tavily, exa, or parallel."} Root cause: _get_extract_backend() correctly returns "firecrawl" and _is_backend_available("firecrawl") returns True. However, get_provider('firecrawl') in agent/web_search_registry.py returns None — the Firecrawl plugin is not being loaded into the registry at import time. This causes the dispatcher in web_tools.py to fall through to the "no provider configured" error path.

Root Cause

Root cause: _get_extract_backend() correctly returns "firecrawl" and _is_backend_available("firecrawl") returns True. However, get_provider('firecrawl') in agent/web_search_registry.py returns None — the Firecrawl plugin is not being loaded into the registry at import time. This causes the dispatcher in web_tools.py to fall through to the "no provider configured" error path.

Fix Action

Fix / Workaround

Root cause: _get_extract_backend() correctly returns "firecrawl" and _is_backend_available("firecrawl") returns True. However, get_provider('firecrawl') in agent/web_search_registry.py returns None — the Firecrawl plugin is not being loaded into the registry at import time. This causes the dispatcher in web_tools.py to fall through to the "no provider configured" error path.

Workaround: Manual curl -s "https://r.jina.ai/<URL>" works but Jina's free tier is limited and Google blocks via Jina (429).

RAW_BUFFERClick to expand / collapse
Hermes version: v0.14.0 (2026.5.16)

Config (~/.hermes/config.yaml):
yaml
web:
  search_backend: brave-free
  extract_backend: firecrawl


Env (~/.hermes/.env):

FIRECRAWL_API_KEY=fc-...


Steps to reproduce:
1. Set web.extract_backend: firecrawl in config.yaml
2. Set FIRECRAWL_API_KEY in .env
3. Restart gateway: systemctl --user restart hermes-gateway
4. Call web_extract with any URL

Expected behavior: Firecrawl extracts the page content

Actual behavior:

{"success": false, "error": "No web extract provider configured. Set web.extract_backend to firecrawl, tavily, exa, or parallel."}


Debug output:

=== Config ===
web section: {"backend": "", "search_backend": "brave-free", "extract_backend": "firecrawl", "use_gateway": false}
extract_backend: firecrawl
firecrawl available: True

=== Provider Registry ===
firecrawl provider: None
active extract provider: None


Root cause: _get_extract_backend() correctly returns "firecrawl" and _is_backend_available("firecrawl") returns True. However, get_provider('firecrawl') in agent/web_search_registry.py returns None — the Firecrawl plugin is not being loaded into the registry at import time. This causes the dispatcher in web_tools.py to fall through to the "no provider configured" error path.

Workaround: Manual curl -s "https://r.jina.ai/<URL>" works but Jina's free tier is limited and Google blocks via Jina (429).

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

hermes - 💡(How to fix) Fix web_extract fails with "No web extract provider configured" despite extract_backend: firecrawl and valid API key