open-webui/backend/open_webui/retrieval/web
Classic298 94eea41a75
fix: surface searchapi errors, news results and redirect links (#30308)
Web search via searchapi.io could come back empty or near-empty with no
hint of why: an invalid or expired API key turned into an empty result
set instead of an error, the google_news engine splits its results
between organic_results and top_stories and only the first block was
read, and google links came back as google.com/goto redirects the web
loader cannot fetch, so citations pointed at a redirect blob.

The search now reads both result blocks, asks google engines for
resolved destination links, raises on HTTP errors, carries a 30s request
timeout, skips result rows without a link, and logs the response body at
debug instead of dumping every search at info.

Fixes #30305
2026-09-21 10:44:06 -04:00
..
azure.py refac: modernize type annotations (PEP 604 / PEP 585) 2026-05-12 17:10:15 +09:00
bing.py chore: format 2026-06-01 13:56:55 -07:00
bocha.py refac 2026-07-31 17:41:14 -04:00
brave.py refac 2026-08-31 00:40:15 -04:00
brave_llm_context.py feat: brave search llm context 2026-05-09 06:34:25 +09:00
duckduckgo.py refac 2026-09-06 17:21:57 -04:00
exa.py refac 2026-09-08 23:18:48 -04:00
external.py perf: build info log messages lazily so raising the log level actually saves work (#27837) 2026-08-02 15:39:10 -05:00
firecrawl.py perf: build info log messages lazily so raising the log level actually saves work (#27837) 2026-08-02 15:39:10 -05:00
google_pse.py refac 2026-08-31 00:40:15 -04:00
jina_search.py refac: modernize type annotations (PEP 604 / PEP 585) 2026-05-12 17:10:15 +09:00
kagi.py Update Kagi API endpoint and request method (#25015) 2026-06-01 12:48:44 -07:00
linkup.py chore: format 2026-06-01 13:56:55 -07:00
main.py refac: consolidate the web fetch address checks onto the request path (#27823) 2026-08-25 11:15:48 -04:00
microsoft_web_iq.py refac 2026-08-31 00:40:15 -04:00
mojeek.py refac 2026-08-31 00:39:16 -04:00
ollama.py perf: build info log messages lazily so raising the log level actually saves work (#27837) 2026-08-02 15:39:10 -05:00
openserp.py refac 2026-08-31 00:40:15 -04:00
perplexity.py refac 2026-06-17 02:52:35 +02:00
perplexity_search.py refac 2026-06-17 02:52:35 +02:00
searchapi.py fix: surface searchapi errors, news results and redirect links (#30308) 2026-09-21 10:44:06 -04:00
searxng.py refac 2026-08-31 00:40:15 -04:00
serpapi.py perf: build info log messages lazily so raising the log level actually saves work (#27837) 2026-08-02 15:39:10 -05:00
serper.py refac 2026-08-31 00:40:15 -04:00
serphouse.py refac 2026-08-31 00:40:15 -04:00
serply.py refac 2026-08-31 00:39:16 -04:00
serpstack.py refac 2026-08-31 00:40:15 -04:00
sougou.py chore: format 2026-08-25 16:53:53 -04:00
staan.py fix: stop sending count to the Staan search API (#30303) 2026-09-21 08:04:26 -04:00
tavily.py refac 2026-08-31 00:39:16 -04:00
utils.py fix: sync Playwright loader spins a CPU core when a page opens a WebSocket (#30050) 2026-09-15 22:51:37 -04:00
yacy.py perf: build debug log messages lazily so disabled debug logs cost nothing (#27834) 2026-07-31 19:09:01 -05:00
yandex.py perf: build info log messages lazily so raising the log level actually saves work (#27837) 2026-08-02 15:39:10 -05:00
ydc.py refac: modernize type annotations (PEP 604 / PEP 585) 2026-05-12 17:10:15 +09:00