OpenBB-finance/OpenBB · warning · EmptyDataError
The request was returned empty.
Error message
The request was returned empty.
What it means
Standard OpenBB EmptyDataError from the Intrinio IPO calendar fetcher's transform step: the HTTP call succeeded (possibly 200 with an empty 'initial_public_offerings' array) but there are no rows to validate, so the framework surfaces 'empty data' to the caller instead of returning a silently empty DataFrame.
Source
Thrown at openbb_platform/providers/intrinio/openbb_intrinio/models/calendar_ipo.py:191
) -> list[dict]:
"""Return the raw data from the Intrinio endpoint."""
api_key = credentials.get("intrinio_api_key") if credentials else ""
base_url = "https://api-v2.intrinio.com/companies/ipos"
query_str = get_querystring(query.model_dump(by_alias=True), [])
url = f"{base_url}?{query_str}&api_key={api_key}"
data = await get_data_one(url, **kwargs)
return data.get("initial_public_offerings", [])
@staticmethod
def transform_data(
query: IntrinioCalendarIpoQueryParams, data: list[dict], **kwargs: Any
) -> list[IntrinioCalendarIpoData]:
"""Return the transformed data."""
if not data:
raise EmptyDataError("The request was returned empty.")
return [IntrinioCalendarIpoData.model_validate(d) for d in data]
View on GitHub (pinned to 3e071fcc2c)
Solutions
- Widen the start_date/end_date window to include trading days with actual IPO activity.
- Treat EmptyDataError as an expected 'no events' outcome: catch it and return an empty frame in your application.
- Verify your Intrinio subscription covers IPO calendar data (some plans return empty rather than 403).
- Cross-check with another provider (e.g. Nasdaq) to confirm the window truly has no IPOs.
Example fix
# before
res = obb.equity.calendar.ipo(provider='intrinio', start_date='2024-01-01', end_date='2024-01-02')
# after
from openbb_core.provider.abstract.fetcher import EmptyDataError
try:
res = obb.equity.calendar.ipo(provider='intrinio', start_date='2024-01-01', end_date='2024-01-31')
except EmptyDataError:
res = None Defensive patterns
Strategy: try-catch
Validate before calling
# Sanity-check the window before calling: IPOs cluster on trading days
from datetime import date, timedelta
if (end_date - start_date).days < 1:
widen_window() # single-day/narrow windows frequently have no IPOs Try / catch
from openbb_core.provider.abstract.fetcher import EmptyDataError
try:
res = obb.equity.calendar.ipo(provider='intrinio', start_date=s, end_date=e)
except EmptyDataError:
res = None # no IPOs in window - not an error condition Prevention
- Treat EmptyDataError from calendar endpoints as 'no events', not failure
- Widen date windows when querying sparse calendars
- Verify Intrinio plan covers IPO calendar data
When it happens
Trigger: Querying obb.equity.calendar.ipo(provider='intrinio') with date filters (start_date/end_date) that contain no IPO events, or a market/period with no scheduled offerings; data.get('initial_public_offerings') returns [] and transform_data raises.
Common situations: Weekends/holiday windows with no IPOs; very narrow date ranges; future dates beyond the calendar horizon; symbols/filters valid but unpopulated; also occurs when the API key lacks plan access and Intrinio returns an empty payload instead of an error.
Related errors
- No data was returned for the symbol provided.
- Error: The request was returned as empty. Try adjusting the
- The request was returned empty.
- The request was returned empty.
- No holdings were found for {query.symbol}, and the response
AI-assisted analysis of OpenBB-finance/OpenBB@3e071fcc2c (2026-08-14).
Data as JSON: /api/errors/5375e72ff51e2c52.
Report an issue: GitHub.