{"record":{"id":"0f86e1e97633657a","repo":"OpenBB-finance/OpenBB","slug":"the-request-was-returned-empty-0f86e1","errorCode":null,"errorMessage":"The request was returned empty.","messagePattern":"The request was returned empty\\.","errorType":"exception","errorClass":"EmptyDataError","httpStatus":null,"severity":"warning","filePath":"openbb_platform/providers/fred/openbb_fred/models/search.py","lineNumber":263,"sourceCode":"\n        if isinstance(response, dict) and \"count\" in response:\n            results = response.get(\"seriess\", [])\n            return results\n        raise OpenBBError(\n            f\"Unexpected response format. Expected a dictionary, got {type(response)}\"\n        )\n\n    @staticmethod\n    def transform_data(\n        query: FredSearchQueryParams, data: list[dict], **kwargs: Any\n    ) -> list[FredSearchData]:\n        \"\"\"Transform data.\"\"\"\n        # pylint: disable=import-outside-toplevel\n        from numpy import nan\n        from pandas import DataFrame, Series\n\n        if not data:\n            raise EmptyDataError(\"The request was returned empty.\")\n\n        df = DataFrame(data)\n\n        if query.search_type == \"release\" and query.release_id is None:\n            df = df.rename(columns={\"id\": \"release_id\"})\n\n        terms = [term.strip() for term in query.query.split(\";\")] if query.query else []\n        tags = (\n            [tag.strip() for tag in query.tag_names.split(\";\")]\n            if query.tag_names and query.search_type != \"series_id\"\n            else []\n        )\n        terms += tags\n\n        if terms and query.search_type != \"series_id\":\n            combined_mask = Series([True] * len(df))\n            for term in terms:\n                mask = df.apply(","sourceCodeStart":245,"sourceCodeEnd":281,"githubUrl":"https://github.com/OpenBB-finance/OpenBB/blob/3e071fcc2cd9f891cac6040ae60296dba76dab46/openbb_platform/providers/fred/openbb_fred/models/search.py#L245-L281","documentation":"Raised in FredSearchFetcher.transform_data (openbb_fred/models/search.py:263) when the extraction step returned an empty list - the FRED search response contained zero series objects. An EmptyDataError: the request was valid and delivered, but matched nothing. Note this is distinct from error 489, which fires after client-side filtering of non-empty results.","triggerScenarios":"A query string that matches no FRED series text; tag_names combinations no series carries (e.g. tag_names='cpi;housing' where both must apply); a release_id whose release contains zero series.","commonSituations":"Overly specific multi-term queries; semicolon-separated tags treated as AND by FRED; searching a brand-new release before series are attached to it.","solutions":["Broaden the query text (fewer/shorter terms).","Loosen tag_names - remember multiple tags are ANDed; use fewer or run separate searches per tag.","For release searches, confirm the release has series via fred_search(search_type='release', release_id=...)."],"exampleFix":"# before - ANDed tags match nothing\nobb.economy.fred.search(query='prices', tag_names='cpi;monthly;sa')\n\n# after\nobb.economy.fred.search(query='prices', tag_names='cpi')","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"from openbb_core.provider.utils.errors import EmptyDataError\n\ntry:\n    res = obb.economy.fred.search(query=query, tag_names=tags)\nexcept EmptyDataError:\n    res = obb.economy.fred.search(query=query)  # retry without the tag filter","preventionTips":["Remember FRED ANDs multiple tags - search one tag at a time and merge.","Cache search results; series metadata rarely changes."],"tags":["fred","search","empty-data"],"backgroundTag":null,"analyzedSha":"3e071fcc2cd9f891cac6040ae60296dba76dab46","analyzedAt":"2026-08-14T23:40:48.960Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}