OpenBB-finance/OpenBB · warning · EmptyDataError
No tables were found for the release, {query.release_id}. Us
Error message
No tables were found for the release, {query.release_id}. Use `fred_search()` to list all release IDs.
Releases without tables will not return data, nor will this endpoint return individual line items.
Try a different 'element_id' and/or 'date'.
Exclude 'date' for the most recent observations.
Exclude 'element_id' to reveal the top-level element IDs.
Use `fred_series` for single series data. What it means
Thrown by FredReleaseTableFetcher.transform_data (openbb_fred/models/release_table.py:255) when the extract step returned zero rows for the requested release table. It is an EmptyDataError, meaning the FRED release-table endpoint responded but contained no tables matching the release_id/element_id/date combination. FRED releases frequently have no table structure at all, and the geofred/release-table API never returns individual line items, only whole tables. The long message enumerates the remediations the provider authors suggest.
Source
Thrown at openbb_platform/providers/fred/openbb_fred/models/release_table.py:255
# If no observation values are returned, we collect the unique element IDs for the user.
elif res:
for item in res:
if not any(r["element_id"] == item["element_id"] for r in results):
results.append(item)
await asyncio.gather(*[get_one(URL) for URL in URLS])
return results
@staticmethod
def transform_data(
query: FredReleaseTableQueryParams,
data: list[dict],
**kwargs: Any,
) -> list[FredReleaseTableData]:
"""Transform data."""
if not data:
raise EmptyDataError(
f"No tables were found for the release, {query.release_id}."
+ " Use `fred_search()` to list all release IDs."
+ "\n\nReleases without tables will not return data,"
+ " nor will this endpoint return individual line items."
+ "\n\nTry a different 'element_id' and/or 'date'."
+ "\n\nExclude 'date' for the most recent observations."
+ "\n\nExclude 'element_id' to reveal the top-level element IDs."
+ "\n\nUse `fred_series` for single series data."
)
return [
FredReleaseTableData.model_validate(d)
for d in sorted(
data,
key=lambda x: (
x.get("observation_date", float("inf")),
x.get("line", float("inf")),
),View on GitHub (pinned to 3e071fcc2c)
Solutions
- Re-run without 'element_id' to list the top-level element IDs for the release, then drill down.
- Re-run without 'date' to get the most recent published table.
- Verify the release_id actually exists and has tables using fred_search(search_type='release').
- If you need a single series rather than a table, switch to fred_series with the series ID.
- If you need one line item, fetch it as its own series via fred_series instead of this endpoint.
Example fix
# before obb.economy.fred.release_table(release_id=86, element_id=12521, date='2023-01-01') # after - discover valid element IDs first top = obb.economy.fred.release_table(release_id=86) print(top.to_df()['element_id'].unique()) obb.economy.fred.release_table(release_id=86, element_id=<valid_id>)
Defensive patterns
Strategy: try-catch
Validate before calling
results = obb.economy.fred.search(search_type='release')
valid_ids = set(results.to_df()['release_id'].astype(int))
if release_id not in valid_ids:
raise ValueError(f'release_id {release_id} not known to FRED') Type guard
def has_release_tables(df: 'pd.DataFrame') -> bool:
"""True if the release-table result actually contains rows."""
return df is not None and not df.empty Try / catch
from openbb_core.provider.utils.errors import EmptyDataError
try:
table = obb.economy.fred.release_table(release_id=86, element_id=element_id)
except EmptyDataError:
# retry once without narrowing filters to discover valid element IDs
table = obb.economy.fred.release_table(release_id=86) Prevention
- Always discover element_id values by first calling release_table with release_id only.
- Treat date as optional refinement, not a default; omit it unless you need a historical vintage.
- Keep a curated map of release_ids known to have tables instead of guessing IDs from the FRED website.
When it happens
Trigger: Calling economy/fred release-table with a release_id that has no tables (e.g. many small regional releases); supplying an element_id that does not exist under the release; supplying a date on which the table has no observations; combining element_id with a date that filters out everything.
Common situations: Hardcoding a release_id discovered on the FRED website without checking it has tables; assuming element IDs nest arbitrarily; migrating from a direct FRED API script that hit /fred/release/tables and handled empty 'elements' itself.
Related errors
- No data to process!
- No results found for the provided query.
- No data was found for the supplied date range and countries.
- No data was found for the supplied date range and countries.
- The request was returned empty. This may be due to an invali
AI-assisted analysis of OpenBB-finance/OpenBB@3e071fcc2c (2026-08-14).
Data as JSON: /api/errors/d41475c2afa3fb56.
Report an issue: GitHub.