{"record":{"id":"7be3df52696bf1d0","repo":"OpenBB-finance/OpenBB","slug":"the-request-returned-empty-7be3df","errorCode":null,"errorMessage":"The request returned empty.","messagePattern":"The request returned empty\\.","errorType":"exception","errorClass":"EmptyDataError","httpStatus":null,"severity":"error","filePath":"openbb_platform/providers/econdb/openbb_econdb/models/gdp_nominal.py","lineNumber":182,"sourceCode":"            final_df = concat(\n                [gdp, gdp_qoq, gdp_yoy],\n                axis=1,\n            )\n            if final_df.empty:\n                warn(f\"Error: No data returned for {_country}.\")\n            if not final_df.empty:\n                results.extend(\n                    final_df.reset_index()\n                    .rename(columns={\"Country\": \"country\"})\n                    .to_dict(orient=\"records\")\n                )\n\n        chunks = [country[i : i + 6] for i in range(0, len(country), 6)]\n        for chunk in chunks:\n            await asyncio.gather(*[get_one_country(c) for c in chunk])\n\n        if not results:\n            raise EmptyDataError(\"The request returned empty.\")\n\n        return results\n\n    @staticmethod\n    def transform_data(\n        query: EconDbGdpNominalQueryParams,\n        data: list[dict],\n        **kwargs,\n    ) -> list[EconDbGdpNominalData]:\n        \"\"\"Transform the data.\"\"\"\n        # pylint: disable=import-outside-toplevel\n        from pandas import DataFrame, to_datetime\n\n        df = DataFrame(data)\n\n        if query.start_date:\n            df = df[to_datetime(df[\"date\"]) >= to_datetime(query.start_date)]\n        if query.end_date:","sourceCodeStart":164,"sourceCodeEnd":200,"githubUrl":"https://github.com/OpenBB-finance/OpenBB/blob/3e071fcc2cd9f891cac6040ae60296dba76dab46/openbb_platform/providers/econdb/openbb_econdb/models/gdp_nominal.py#L164-L200","documentation":"Raised as EmptyDataError by EconDbGdpNominalFetcher.aextract_data after all per-country requests completed but none produced a non-empty final DataFrame, so the results list is still empty. It means the API was reachable yet returned no usable rows for any requested country.","triggerScenarios":"economy.gdp_nominal(provider='econdb', country=...) where every country's series response is empty or fails to parse into final_df — e.g. deprecated tickers, temporary upstream data gaps, or all countries erroring silently in get_one_country.","commonSituations":"Querying countries EconDB has no quarterly nominal GDP series for; upstream schema change breaking the per-country parse; mass-querying many countries where all happen to fail.","solutions":["Retry with a major economy first (country='us') to confirm the endpoint itself works.","Reduce the request to fewer countries to isolate which one returns nothing.","Try again later — a total-empty result across all countries often indicates an upstream EconDB issue.","If persistent, inspect the raw API response for your tickers and report an issue to the openbb-econdb provider."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"from openbb_core.provider.utils.errors import EmptyDataError\ntry:\n    res = obb.economy.gdp_nominal(provider='econdb', country='us')\nexcept EmptyDataError:\n    logger.warning('EconDB returned no GDP data; retrying with fallback provider')\n    res = obb.economy.gdp_nominal(provider='oecd', country='united_states')","preventionTips":["Probe with one major economy before batch queries.","Have a second provider (oecd/fred) configured as fallback.","Wrap provider calls so EmptyDataError maps to an explicit no-data path, not a crash."],"tags":["empty-data","gdp","econdb","api"],"backgroundTag":null,"analyzedSha":"3e071fcc2cd9f891cac6040ae60296dba76dab46","analyzedAt":"2026-08-14T23:40:48.960Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}