OpenBB-finance/OpenBB · warning · EmptyDataError

No results were found. -> {query.symbol}

Error message

No results were found. -> {query.symbol}

What it means

EmptyDataError raised in IntrinioForwardEbitdaEstimatesFetcher on the multi-symbol path: after asyncio.gather of get_one(symbol) for each symbol, none appended to 'results' (each miss only emitted a warning 'Symbol Error: No data found for <symbol>'). The message lists the full requested symbol string.

Source

Thrown at openbb_platform/providers/intrinio/openbb_intrinio/models/forward_ebitda_estimates.py:130

            url = f"{BASE_URL}&identifier={symbol}"
            url = url + f"&{query_str}" if query_str else url
            data = await amake_request(
                url, response_callback=response_callback, **kwargs
            )
            consensus = (
                data.get("ebitda_consensus")
                if isinstance(data, dict) and "ebitda_consensus" in data
                else []
            )
            if not data or not consensus:
                warn(f"Symbol Error: No data found for {symbol}")
            if consensus:
                results.extend(consensus)

        if symbols:
            await asyncio.gather(*[get_one(symbol) for symbol in symbols])
            if not results:
                raise EmptyDataError(f"No results were found. -> {query.symbol}")
            return results

        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():
                    raise UnauthorizedError(
                        f"Unauthorized Intrinio request -> {message}"
                    )
                raise OpenBBError(f"Error: {error} -> {message}")

            estimates = data.get("ebitda_consensus", [])  # type: ignore
            if estimates and len(estimates) > 0:
                results.extend(estimates)
                while data.get("next_page"):  # type: ignore

View on GitHub (pinned to 3e071fcc2c)

Solutions

  1. Check warnings output — each missed symbol is individually named there
  2. Use symbols with analyst coverage (large caps like AAPL, MSFT) — verify coverage via obb.equity.estimates endpoints or Intrinio's docs
  3. Catch EmptyDataError and mark these symbols as 'no coverage' in your pipeline instead of retrying
Defensive patterns

Strategy: try-catch

Validate before calling

LARGE_CAPS_WITH_COVERAGE = {"AAPL", "MSFT", "GOOGL"}  # seed empirically

def has_estimates_coverage(symbol: str) -> bool:
    return symbol.upper() in LARGE_CAPS_WITH_COVERAGE

Type guard

from openbb_core.provider.utils.errors import EmptyDataError

Try / catch

import warnings
from openbb_core.provider.utils.errors import EmptyDataError

with warnings.catch_warnings(record=True) as caught:
    warnings.simplefilter("always")
    try:
        res = await obb.equity.estimates.ebitda(provider="intrinio", symbol=syms)
    except EmptyDataError:
        missing = [str(w.message) for w in caught]  # names each uncovered symbol
        mark_uncovered(missing)

Prevention

When it happens

Trigger: Requesting forward EBITDA consensus for symbols that Intrinio's analyst-estimates product has no coverage for — typical for small/micro caps, non-US listings, or tickers where 'ebitda_consensus' is absent from the response dict. Only fires when ALL requested symbols missed (per-symbol misses just warn).

Common situations: Screeners feeding micro-cap tickers into estimates endpoints; tickers formatted for other vendors (dots/suffixes) that Intrinio doesn't resolve; warnings suppressed so the individual 'Symbol Error' notices were never seen.

Related errors


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