OpenBB-finance/OpenBB · warning · EmptyDataError

The request was successful but was returned empty.

Error message

The request was successful but was returned empty.

What it means

EmptyDataError raised after the bulk forward P/E request (no symbol filter) succeeded but the callback never extended results - the body had no non-empty 'forward_pe' array. The 10000-row page came back with zero rows or the key missing entirely.

Source

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

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

            forward_pe = data.get("forward_pe")

            if forward_pe and len(forward_pe) > 0:  # type: ignore
                results.extend(forward_pe)  # type: ignore

            return results

        url = f"{BASE_URL}?page_size=10000&api_key={api_key}"
        results = await amake_request(url, response_callback=fetch_callback, **kwargs)  # type: ignore

        if not results:
            raise EmptyDataError("The request was successful but was returned empty.")

        return results

    @staticmethod
    def transform_data(
        query: IntrinioForwardPeEstimatesQueryParams,
        data: list[dict],
        **kwargs: Any,
    ) -> list[IntrinioForwardPeEstimatesData]:
        """Transform the raw data into the standard format."""
        symbols = query.symbol.split(",") if query.symbol else []
        if symbols:
            data.sort(
                key=lambda item: (
                    symbols.index(item.get("ticker")) if item.get("ticker") in symbols else len(symbols)  # type: ignore
                )
            )
        return [IntrinioForwardPeEstimatesData.model_validate(d) for d in data]

View on GitHub (pinned to 3e071fcc2c)

Solutions

  1. Retry after a delay - bulk feeds are often republished periodically.
  2. Switch to per-symbol mode (pass symbol=) which has its own error reporting.
  3. Check Intrinio status page for feed incidents.
  4. Fall back to another provider for the same data.
Defensive patterns

Strategy: fallback

Try / catch

from openbb_core.provider.exceptions import EmptyDataError
try:
    res = obb.equity.estimates.forward_pe(provider='intrinio')  # bulk
except EmptyDataError:
    res = obb.equity.estimates.forward_pe(symbol=','.join(watchlist), provider='intrinio')

Prevention

When it happens

Trigger: Calling equity/estimates/forward_pe with provider='intrinio' without symbols (bulk mode) when Intrinio returns {"forward_pe": []} or omits the key - e.g. feed temporarily empty, entitlement returning an empty 200, or upstream data outage.

Common situations: Temporary Intrinio data outages; early-morning snapshots before data is published; entitlement edge cases returning 200 with empty payload; consumers expecting the bulk endpoint to always have rows.

Related errors


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