OpenBB-finance/OpenBB · warning · EmptyDataError
There were no results found for any of the given symbols. ->
Error message
There were no results found for any of the given symbols. -> {symbols} What it means
EmptyDataError raised in the per-symbol branch of the Intrinio forward P/E fetcher when asyncio.gather completed for every requested symbol but the shared results list is still empty - i.e., each symbol's response contained no usable forward_pe rows. Note this branch uses return_exceptions=True, so per-symbol failures are collected, not raised, unless they are UnauthorizedError/OpenBBError.
Source
Thrown at openbb_platform/providers/intrinio/openbb_intrinio/models/forward_pe_estimates.py:112
raise OpenBBError(e) from e
if data:
results.append(data) # type: ignore
if symbols:
try:
gather_results = await asyncio.gather(
*[get_one(symbol) for symbol in symbols], return_exceptions=True
)
for result in gather_results:
if isinstance(result, UnauthorizedError):
raise result
if isinstance(result, OpenBBError):
raise result
if not results:
raise EmptyDataError(
f"There were no results found for any of the given symbols. -> {symbols}"
)
return results
except Exception as e:
raise OpenBBError(
f"Error in Intrinio request -> {e} -> {symbols}"
) from e
async def fetch_callback(response, session):
"""Use callback for pagination."""
data = await response.json()
error = data.get("error", None)
if error:
message = data.get("message", "")
if "api key" in message.lower() or "view this data" in error.lower():
raise UnauthorizedError(
f"Unauthorized Intrinio request -> {message} -> {error}"View on GitHub (pinned to 3e071fcc2c)
Solutions
- Test one symbol at a time to find which have coverage.
- Verify symbols are valid and actively listed.
- Fall back to another estimates provider for uncovered tickers.
- If ALL symbols including AAPL return empty, check the API key entitlement for Zacks data.
Defensive patterns
Strategy: try-catch
Validate before calling
# pre-filter batch to symbols that exist
valid = [s for s in symbols if quote_exists(s)] # quote_exists via any cheap quote call
if not valid:
raise ValueError('no valid symbols') Try / catch
from openbb_core.provider.exceptions import EmptyDataError
try:
res = obb.equity.estimates.forward_pe(symbol=','.join(syms), provider='intrinio')
except EmptyDataError:
res = [obb.equity.estimates.forward_pe(symbol=s, provider='fmp') for s in syms] Prevention
- Sanity-check tickers with a quote call before estimates
- Expect zero coverage on OTC/small-cap batches
- Catch EmptyDataError per symbol when iterating watchlists
When it happens
Trigger: equity/estimates/forward_pe(symbol='A,B,C', provider='intrinio') where every symbol returns an empty or null 'forward_pe' array (get_one only appends when data is truthy), so gather succeeds but results stays [].
Common situations: Batch of small-cap/OTC tickers with no forward P/E consensus; all symbols delisted or misspelled; free-tier entitlement returning empty bodies rather than errors.
Related errors
- No results were found. -> {query.symbol}
- The request was successful but was returned empty.
- The request was successful but was returned empty.
- The request was successful but was returned empty.
- The request was successful but was returned empty.
AI-assisted analysis of OpenBB-finance/OpenBB@3e071fcc2c (2026-08-14).
Data as JSON: /api/errors/1bc0147cc81f1511.
Report an issue: GitHub.