{"record":{"id":"2f4e4aec786152c3","repo":"OpenBB-finance/OpenBB","slug":"no-data-found-for-the-given-symbols","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/equity_profile.py","lineNumber":153,"sourceCode":"\n        results: list = []\n\n        async def get_one(symbol):\n            \"\"\"Get data for one symbol.\"\"\"\n            url = f\"{base_url}profile?symbol={symbol}&apikey={api_key}\"\n            result = await amake_request(\n                url, response_callback=response_callback, **kwargs\n            )\n            if not result:\n                warnings.warn(f\"Symbol Error: No data found for {symbol}\")\n\n            if result:\n                results.append(result[0])\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(\n            results,\n            key=(lambda item: (symbols.index(item.get(\"symbol\", len(symbols))))),\n        )\n\n    @staticmethod\n    def transform_data(\n        query: FMPEquityProfileQueryParams,\n        data: list[dict],\n        **kwargs: Any,\n    ) -> list[FMPEquityProfileData]:\n        \"\"\"Return the transformed data.\"\"\"\n        results: list[FMPEquityProfileData] = []\n\n        for d in data:\n            d[\"year_low\"], d[\"year_high\"] = (\n                d.pop(\"range\", \"-\").split(\"-\") if d.get(\"range\") else (None, None)","sourceCodeStart":135,"sourceCodeEnd":171,"githubUrl":"https://github.com/OpenBB-finance/OpenBB/blob/3e071fcc2cd9f891cac6040ae60296dba76dab46/openbb_platform/providers/fmp/openbb_fmp/models/equity_profile.py#L135-L171","documentation":"Raised as EmptyDataError by FMPEquityProfile.a_url: profiles are fetched per symbol concurrently; symbols with no data only emit a warning ('Symbol Error: No data found for X'). Only if ALL requested symbols returned nothing does the provider raise this error.","triggerScenarios":"Calling obb.equity.profile(symbol=...) where every symbol in the comma-separated list failed individually - all invalid/delisted/unknown to FMP. A partial failure (some symbols resolve) does NOT raise; it warns and returns the rest.","commonSituations":"Bulk-screening symbol lists scraped from another source where none exist on FMP, tickers from a different market (e.g. pure crypto/forex strings), stale tickers after delistings, or an expired key making every per-symbol call return empty.","solutions":["Check the preceding warnings - they name each failing symbol; fix/remove those from the list","Test one symbol at a time against obb.equity.profile to isolate bad tickers","Verify the FMP API key works at all (if the key is dead, every symbol 'fails')","Catch EmptyDataError and return an empty result set for batch pipelines instead of aborting"],"exampleFix":"# before\nres = obb.equity.profile(symbol='FOO,BAR,BAZ', provider='fmp')  # none exist -> EmptyDataError\n\n# after\nfrom openbb_core.provider.utils.errors import EmptyDataError\ntry:\n    res = obb.equity.profile(symbol='FOO,AAPL', provider='fmp')  # partial success, warning for FOO\nexcept EmptyDataError:\n    res = None","handlingStrategy":"try-catch","validationCode":"# pre-validate the universe once\nvalid = [s for s in symbols if obb.equity.profile(symbol=s, provider='fmp').results]\nif not valid:\n    raise ValueError('None of the symbols are known to FMP')","typeGuard":"null","tryCatchPattern":"from openbb_core.provider.utils.errors import EmptyDataError\ntry:\n    res = await obb.equity.profile.async_(symbol=','.join(symbols), provider='fmp')\nexcept EmptyDataError:\n    res = None  # every symbol failed; individual ones already warned","preventionTips":["Filter symbol lists through a reference dataset (delisted/renamed tickers) before bulk calls","Log the per-symbol 'Symbol Error' warnings - they pinpoint bad tickers on partial failures","Expect partial results (with warnings) rather than all-or-nothing semantics"],"tags":["fmp","empty-data","profile","symbol","batch"],"backgroundTag":null,"analyzedSha":"3e071fcc2cd9f891cac6040ae60296dba76dab46","analyzedAt":"2026-08-14T23:40:48.960Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}