OpenBB-finance/OpenBB · warning · EmptyDataError

No results found for the provided series_id(s).

Error message

No results found for the provided series_id(s).

What it means

Raised in FredSearchFetcher.aextract_data (openbb_fred/models/search.py:212) after the geoFRED 'series/group' endpoint was queried for each requested series_id and none of them returned a series_group payload. This path only runs for search_type='series_id', where the provider enriches IDs with their geoFRED group metadata. It is an EmptyDataError: the requests succeeded but every lookup came back empty.

Source

Thrown at openbb_platform/providers/fred/openbb_fred/models/search.py:212

        if query.series_id is not None:
            results: list = []

            async def get_one(_id: str):
                """Get data for one series."""
                data: dict = {}
                url = f"https://api.stlouisfed.org/geofred/series/group?series_id={_id}&api_key={api_key}&file_type=json"
                response = await fred_get(url)
                data = response.get("series_group")  # type: ignore
                if data:
                    data.update({"series_id": _id})
                    results.append(data)

            await asyncio.gather(*[get_one(_id) for _id in query.series_id.split(",")])

            if results:
                return results
            raise EmptyDataError("No results found for the provided series_id(s).")

        if query.search_type == "release" and query.release_id is None:
            url = f"https://api.stlouisfed.org/fred/releases?api_key={api_key}&file_type=json"
            response = await fred_get(url)
            results = response.get("releases")  # type: ignore
            if results:
                return results
            raise OpenBBError(
                "Unexpected result while retrieving the list of releases from the FRED API."
            )

        url = (
            "https://api.stlouisfed.org/fred/release/series?"
            if query.release_id is not None
            else "https://api.stlouisfed.org/fred/series/search?"
        )

        exclude = (

View on GitHub (pinned to 3e071fcc2c)

Solutions

  1. Use search_type='series_id' only with regionally disaggregated series (e.g. state HPI or unemployment series).
  2. For national series, call fred_series directly or use fred_search(search_type='full_text').
  3. Check the ID exists with fred_search(query='<id>') before requesting its group.

Example fix

# before - national series has no geoFRED group
obb.economy.fred.search(search_type='series_id', series_id='GDP')

# after
obb.economy.fred.series(symbol='GDP')
Defensive patterns

Strategy: try-catch

Try / catch

from openbb_core.provider.utils.errors import EmptyDataError

try:
    groups = obb.economy.fred.search(search_type='series_id', series_id=','.join(ids))
except EmptyDataError:
    groups = None  # these IDs have no geoFRED group; fall back to plain series metadata
    meta = [obb.economy.fred.series(symbol=i).metadata for i in ids]

Prevention

When it happens

Trigger: search_type='series_id' with IDs that have no geographic group (most ordinary national series, e.g. 'GDP' or 'CPIAUCSL'); typos in the comma-separated series_id list; all requested IDs being discontinued series with groups removed.

Common situations: Assuming every FRED series has a geoFRED group - only regionally disaggregated series (state/MSA/county) do; passing a national series ID copied from a different workflow.

Related errors


AI-assisted analysis of OpenBB-finance/OpenBB@3e071fcc2c (2026-08-14). Data as JSON: /api/errors/d950771653501d05. Report an issue: GitHub.