Description
In tools/web_tools.py, four asyncio.gather() calls do not use return_exceptions=True. If any single LLM summarization task raises an exception, the entire gather fails and all other successfully completed results are lost.
Affected Locations
| File |
Line |
Context |
tools/web_tools.py |
486 |
Chunk summarization gather |
tools/web_tools.py |
1055 |
Firecrawl result processing |
tools/web_tools.py |
1230 |
Tavily crawl result processing |
tools/web_tools.py |
1455 |
Crawl result processing |
Impact
When extracting content from multiple web pages in parallel, a transient failure on one page (e.g., rate limit, timeout) causes the agent to lose all results, even from pages that were successfully fetched and summarized.
Fix
Add return_exceptions=True to all four asyncio.gather() calls and filter out BaseException instances from results with appropriate logging.
Description
In
tools/web_tools.py, fourasyncio.gather()calls do not usereturn_exceptions=True. If any single LLM summarization task raises an exception, the entire gather fails and all other successfully completed results are lost.Affected Locations
tools/web_tools.pytools/web_tools.pytools/web_tools.pytools/web_tools.pyImpact
When extracting content from multiple web pages in parallel, a transient failure on one page (e.g., rate limit, timeout) causes the agent to lose all results, even from pages that were successfully fetched and summarized.
Fix
Add
return_exceptions=Trueto all fourasyncio.gather()calls and filter outBaseExceptioninstances from results with appropriate logging.