OpenBB-finance/OpenBB · warning · EmptyDataError

There were no results found for any of the given symbols. ->

Error message

There were no results found for any of the given symbols. -> {symbols}

What it means

EmptyDataError raised in the per-symbol branch of the Intrinio forward P/E fetcher when asyncio.gather completed for every requested symbol but the shared results list is still empty - i.e., each symbol's response contained no usable forward_pe rows. Note this branch uses return_exceptions=True, so per-symbol failures are collected, not raised, unless they are UnauthorizedError/OpenBBError.

Source

Thrown at openbb_platform/providers/intrinio/openbb_intrinio/models/forward_pe_estimates.py:112

                raise OpenBBError(e) from e

            if data:
                results.append(data)  # type: ignore

        if symbols:
            try:
                gather_results = await asyncio.gather(
                    *[get_one(symbol) for symbol in symbols], return_exceptions=True
                )

                for result in gather_results:
                    if isinstance(result, UnauthorizedError):
                        raise result
                    if isinstance(result, OpenBBError):
                        raise result

                if not results:
                    raise EmptyDataError(
                        f"There were no results found for any of the given symbols. -> {symbols}"
                    )
                return results
            except Exception as e:
                raise OpenBBError(
                    f"Error in Intrinio request -> {e} -> {symbols}"
                ) from e

        async def fetch_callback(response, session):
            """Use callback for pagination."""
            data = await response.json()
            error = data.get("error", None)

            if error:
                message = data.get("message", "")
                if "api key" in message.lower() or "view this data" in error.lower():
                    raise UnauthorizedError(
                        f"Unauthorized Intrinio request -> {message} -> {error}"

View on GitHub (pinned to 3e071fcc2c)

Solutions

  1. Test one symbol at a time to find which have coverage.
  2. Verify symbols are valid and actively listed.
  3. Fall back to another estimates provider for uncovered tickers.
  4. If ALL symbols including AAPL return empty, check the API key entitlement for Zacks data.
Defensive patterns

Strategy: try-catch

Validate before calling

# pre-filter batch to symbols that exist
valid = [s for s in symbols if quote_exists(s)]  # quote_exists via any cheap quote call
if not valid:
    raise ValueError('no valid symbols')

Try / catch

from openbb_core.provider.exceptions import EmptyDataError
try:
    res = obb.equity.estimates.forward_pe(symbol=','.join(syms), provider='intrinio')
except EmptyDataError:
    res = [obb.equity.estimates.forward_pe(symbol=s, provider='fmp') for s in syms]

Prevention

When it happens

Trigger: equity/estimates/forward_pe(symbol='A,B,C', provider='intrinio') where every symbol returns an empty or null 'forward_pe' array (get_one only appends when data is truthy), so gather succeeds but results stays [].

Common situations: Batch of small-cap/OTC tickers with no forward P/E consensus; all symbols delisted or misspelled; free-tier entitlement returning empty bodies rather than errors.

Related errors


AI-assisted analysis of OpenBB-finance/OpenBB@3e071fcc2c (2026-08-14). Data as JSON: /api/errors/1bc0147cc81f1511. Report an issue: GitHub.