OpenBB-finance/OpenBB · warning · EmptyDataError
The request was successful but was returned empty.
Error message
The request was successful but was returned empty.
What it means
EmptyDataError raised at the end of the bulk path of IntrinioForwardEbitdaEstimatesFetcher: the paginated request(s) completed without error but 'results' accumulated no ebitda_consensus records, so the fetcher raises before transform.
Source
Thrown at openbb_platform/providers/intrinio/openbb_intrinio/models/forward_ebitda_estimates.py:166
while data.get("next_page"): # type: ignore
next_page = data["next_page"] # type: ignore
next_url = f"{url}&next_page={next_page}"
data = await amake_request(next_url, session=session, **kwargs)
consensus = (
data.get("ebitda_consensus")
if isinstance(data, dict) and "ebitda_consensus" in data
else []
)
if consensus:
results.extend(consensus) # type: ignore
return results
url = f"{BASE_URL}&{query_str}" if query_str else BASE_URL
results = await amake_request(url, response_callback=fetch_callback, **kwargs) # type: ignore
if not results:
raise EmptyDataError("The request was successful but was returned empty.")
return results
@staticmethod
def transform_data(
query: IntrinioForwardEbitdaEstimatesQueryParams,
data: list[dict],
**kwargs: Any,
) -> list[IntrinioForwardEbitdaEstimatesData]:
"""Transform the raw data into the standard format."""
if not data:
raise EmptyDataError()
results: list[IntrinioForwardEbitdaEstimatesData] = []
fiscal_period = None
if query.fiscal_period is not None:
fiscal_period = "fy" if query.fiscal_period == "annual" else "fq"
for item in data:
estimate_count = item.get("estimate_count")View on GitHub (pinned to 3e071fcc2c)
Solutions
- Relax or remove query filters so more securities are covered
- Switch to per-symbol requests for the specific tickers you need (that path warns per symbol instead)
- Confirm plan coverage for analyst estimates data
Defensive patterns
Strategy: try-catch
Validate before calling
def bulk_query_has_scope(symbols_of_interest: list[str]) -> bool:
# bulk mode returns empty when filters match no covered securities
return bool(symbols_of_interest) Type guard
from openbb_core.provider.utils.errors import EmptyDataError
Try / catch
from openbb_core.provider.utils.errors import EmptyDataError
try:
res = await obb.equity.estimates.ebitda(provider="intrinio")
except EmptyDataError:
# fall back to per-symbol mode, which warns per symbol instead
res = await obb.equity.estimates.ebitda(provider="intrinio", symbol=",".join(syms)) Prevention
- Prefer per-symbol mode when you know the tickers — better failure granularity
- Loosen filters when the bulk query matches nothing
- Treat empty bulk results as a coverage signal, not an error
When it happens
Trigger: The consensus endpoint returns valid JSON with an empty (or absent) 'ebitda_consensus' list on the first page — e.g. filter parameters matching no securities, or the account having estimates coverage for nothing the query selects. Distinct from per-symbol mode, which raises error 675 instead.
Common situations: Query-wide filters (dates, universes) that match no covered companies; calling the bulk mode expecting broad coverage on a limited plan; first-page empty while later pagination would have had data (not traversed because the loop is gated on estimates being non-empty).
Related errors
- No results were found. -> {query.symbol}
- Error: The request was returned as empty. Try adjusting the
- The request was returned empty.
- No data found.
- The request was successful but was returned empty.
AI-assisted analysis of OpenBB-finance/OpenBB@3e071fcc2c (2026-08-14).
Data as JSON: /api/errors/7c24660262849003.
Report an issue: GitHub.