{"record":{"id":"5a6b202a16e89b34","repo":"OpenBB-finance/OpenBB","slug":"no-data-found-for-the-given-symbols-5a6b20","errorCode":null,"errorMessage":"No data found for the given symbols.","messagePattern":"No data found for the given symbols\\.","errorType":"exception","errorClass":"EmptyDataError","httpStatus":null,"severity":"warning","filePath":"openbb_platform/providers/fmp/openbb_fmp/models/esg_score.py","lineNumber":73,"sourceCode":"\n        api_key = credentials.get(\"fmp_api_key\") if credentials else \"\"\n        symbols = query.symbol.split(\",\")\n        results: list = []\n\n        async def get_one(symbol):\n            \"\"\"Get data for one symbol.\"\"\"\n            url = f\"https://financialmodelingprep.com/stable/esg-disclosures?symbol={symbol}&apikey={api_key}\"\n            result = await get_data(url, **kwargs)\n\n            if not result:\n                warnings.warn(f\"Symbol Error: No data found for {symbol}\")\n            elif result:\n                results.extend(result)\n\n        await asyncio.gather(*[get_one(symbol) for symbol in symbols])\n\n        if not results:\n            raise EmptyDataError(\"No data found for the given symbols.\")\n\n        return sorted(results, key=lambda x: x.get(\"date\", \"\"), reverse=True)\n\n    @staticmethod\n    def transform_data(\n        query: FMPEsgScoreQueryParams, data: list, **kwargs: Any\n    ) -> list[FMPEsgScoreData]:\n        \"\"\"Return the transformed data.\"\"\"\n        return [FMPEsgScoreData.model_validate(d) for d in data]\n","sourceCodeStart":55,"sourceCodeEnd":83,"githubUrl":"https://github.com/OpenBB-finance/OpenBB/blob/3e071fcc2cd9f891cac6040ae60296dba76dab46/openbb_platform/providers/fmp/openbb_fmp/models/esg_score.py#L55-L83","documentation":"Raised as EmptyDataError by FMPEsgScore.a_url: ESG disclosures are fetched per symbol; each symbol with no data only warns ('Symbol Error: No data found for X'). Only when every requested symbol returned nothing does the aggregated empty results list trigger this error.","triggerScenarios":"Calling obb.equity.esg(symbol=..., provider='fmp') where none of the symbols have ESG disclosure data on FMP - typical for small caps, non-covered tickers, or a key/plan without ESG access (each call then returns empty).","commonSituations":"ESG being a premium FMP dataset missing from the caller's plan, screening universes of small/mid caps with sparse ESG coverage, delisted tickers, or expecting older providers' ESG coverage breadth.","solutions":["Test one large-cap symbol (e.g. AAPL) alone - if that is also empty, the problem is key/plan, not symbol choice","Remove symbols that only produced warnings and retry the remainder","Confirm the FMP subscription includes ESG disclosures","Catch EmptyDataError and treat ESG as unavailable for the universe rather than failing the pipeline"],"exampleFix":"# before\nres = obb.equity.esg(symbol='FOO,BAR', provider='fmp')  # no ESG coverage -> EmptyDataError\n\n# after\nfrom openbb_core.provider.utils.errors import EmptyDataError\ntry:\n    res = obb.equity.esg(symbol='AAPL,MSFT', provider='fmp')\nexcept EmptyDataError:\n    res = None  # ESG unavailable for this universe","handlingStrategy":"try-catch","validationCode":"# probe ESG availability with one covered large cap\nprobe = obb.equity.esg(symbol='AAPL', provider='fmp').results\nif not probe:\n    raise RuntimeError('FMP ESG unavailable for this key; check plan tier')","typeGuard":"null","tryCatchPattern":"from openbb_core.provider.utils.errors import EmptyDataError\ntry:\n    res = await obb.equity.esg.async_(symbol=','.join(symbols), provider='fmp')\nexcept EmptyDataError:\n    res = []  # ESG not available for this universe","preventionTips":["Probe ESG coverage once with a liquid ticker to validate plan access","Expect sparse coverage outside large caps; design pipelines to skip missing ESG","Log per-symbol warnings to separate coverage gaps from key issues"],"tags":["fmp","empty-data","esg","coverage","plan-tier"],"backgroundTag":null,"analyzedSha":"3e071fcc2cd9f891cac6040ae60296dba76dab46","analyzedAt":"2026-08-14T23:40:48.960Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}