OpenBB-finance/OpenBB · warning · EmptyDataError
No data found for the given symbols.
Error message
No data found for the given symbols.
What it means
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.
Source
Thrown at openbb_platform/providers/fmp/openbb_fmp/models/equity_profile.py:153
results: list = []
async def get_one(symbol):
"""Get data for one symbol."""
url = f"{base_url}profile?symbol={symbol}&apikey={api_key}"
result = await amake_request(
url, response_callback=response_callback, **kwargs
)
if not result:
warnings.warn(f"Symbol Error: No data found for {symbol}")
if result:
results.append(result[0])
await asyncio.gather(*[get_one(symbol) for symbol in symbols])
if not results:
raise EmptyDataError("No data found for the given symbols.")
return sorted(
results,
key=(lambda item: (symbols.index(item.get("symbol", len(symbols))))),
)
@staticmethod
def transform_data(
query: FMPEquityProfileQueryParams,
data: list[dict],
**kwargs: Any,
) -> list[FMPEquityProfileData]:
"""Return the transformed data."""
results: list[FMPEquityProfileData] = []
for d in data:
d["year_low"], d["year_high"] = (
d.pop("range", "-").split("-") if d.get("range") else (None, None)View on GitHub (pinned to 3e071fcc2c)
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
Example fix
# before
res = obb.equity.profile(symbol='FOO,BAR,BAZ', provider='fmp') # none exist -> EmptyDataError
# after
from openbb_core.provider.utils.errors import EmptyDataError
try:
res = obb.equity.profile(symbol='FOO,AAPL', provider='fmp') # partial success, warning for FOO
except EmptyDataError:
res = None Defensive patterns
Strategy: try-catch
Validate before calling
# pre-validate the universe once
valid = [s for s in symbols if obb.equity.profile(symbol=s, provider='fmp').results]
if not valid:
raise ValueError('None of the symbols are known to FMP') Type guard
null
Try / catch
from openbb_core.provider.utils.errors import EmptyDataError
try:
res = await obb.equity.profile.async_(symbol=','.join(symbols), provider='fmp')
except EmptyDataError:
res = None # every symbol failed; individual ones already warned Prevention
- 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
When it happens
Trigger: 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.
Common situations: 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.
Related errors
- No data returned from FMP for the given query.
- No data found for the given symbols.
- {str(','.join(messages)).replace(',', ' ') if messages else
- No data returned for the given symbols.
- The request was returned empty.
AI-assisted analysis of OpenBB-finance/OpenBB@3e071fcc2c (2026-08-14).
Data as JSON: /api/errors/2f4e4aec786152c3.
Report an issue: GitHub.