OpenBB-finance/OpenBB · warning · EmptyDataError
The request was returned empty.
Error message
The request was returned empty.
What it means
BenzingaCompanyNewsFetcher.a_fetch_data (company_news.py:177) gathers pages concurrently with asyncio.gather; if after all page callbacks `results` is still empty it raises EmptyDataError("The request was returned empty."). Empty means the filters matched no news, or every page errored into the caught OpenBBError/Unauthorized path without aborting. UnauthorizedError, when it occurs, is re-raised as-is upstream of this.
Source
Thrown at openbb_platform/providers/benzinga/openbb_benzinga/models/company_news.py:177
results: list = []
async def get_one(url):
"""Get data for one url."""
try:
response = await amake_request(
url,
response_callback=response_callback,
**kwargs,
)
if response:
results.extend(response)
except (OpenBBError, UnauthorizedError) as e:
raise e from e
await asyncio.gather(*[get_one(url) for url in urls])
if not results:
raise EmptyDataError("The request was returned empty.")
return sorted(
results, key=lambda x: x.get("created"), reverse=query.order == "desc"
)[: query.limit if query.limit else len(results)]
@staticmethod
def transform_data(
query: BenzingaCompanyNewsQueryParams,
data: list[dict],
**kwargs: Any,
) -> list[BenzingaCompanyNewsData]:
"""Transform data."""
return [BenzingaCompanyNewsData.model_validate(item) for item in data]
View on GitHub (pinned to 3e071fcc2c)
Solutions
- Catch EmptyDataError and return an empty news list to the UI.
- Widen date range and confirm tickers; test the same query on a liquid name like AAPL.
- Check credential health — sustained emptiness across all tickers suggests an auth problem rather than coverage.
- Page-size sanity: keep a reasonable `size` and iterate `page` rather than one huge filtered request.
Example fix
# before
res = obbject.news.world.query(provider="benzinga", date="2026-08-01")
# after
from openbb_core.provider.standard_models.errors import EmptyDataError
try:
res = obbject.news.world.query(provider="benzinga", date="2026-08-01")
except EmptyDataError:
res = [] # no coverage for that window Defensive patterns
Strategy: try-catch
Validate before calling
if not (query.symbols and query.start_date <= query.end_date):
raise ValueError("invalid company-news filter window")
# coverage probe on a liquid name
probe = await obbject.news.company(symbol="AAPL", provider="benzinga", limit=1) Try / catch
from openbb_core.provider.standard_models.errors import EmptyDataError
try:
results = await fetcher.a_fetch_data(query, credentials)
except EmptyDataError:
results = [] # no news matched the filters Prevention
- Validate date ranges and tickers before the request.
- Expect empty results on off-hours and uncovered tickers; plan the empty UX.
- If every query returns empty, suspect credentials, not coverage.
When it happens
Trigger: Querying company news for tickers/date ranges with no coverage, size=0-style degenerate filters, or a date range entirely outside Benzinga's archive for those symbols.
Common situations: Weekend/holiday windows, pre-IPO or delisted tickers, non-US symbols Benzinga news doesn't tag, and typo'd date parameters producing empty windows.
Related errors
- No ratings data returned.
- No data was returned -> \n{messages[-1]}
- No data found.
- Unexpected data format. Expected 'analyst_ratings_analyst' k
- Unexpected data format. Expected dict, got: {type(data).__na
AI-assisted analysis of OpenBB-finance/OpenBB@3e071fcc2c (2026-08-14).
Data as JSON: /api/errors/4c89e8d3813b5b06.
Report an issue: GitHub.