OpenBB-finance/OpenBB · warning · EmptyDataError

No data was returned from FMP query.

Error message

No data was returned from FMP query.

What it means

Raised by FMPWorldNewsFetch.transform_data when get_data_many returned an empty list for the FMP stock-news endpoint. The fetcher already sorted successfully, so the HTTP call itself worked; FMP simply had zero articles matching the query parameters.

Source

Thrown at openbb_platform/providers/fmp/openbb_fmp/models/world_news.py:107

        else:
            base_url = f"{base_url}news/{query.topic.replace('_', '-')}-latest?"
            url = (
                base_url
                + f"from={query.start_date}&to={query.end_date}"
                + f"&limit={query.limit if query.limit else 250}&page={query.page if query.page else 0}&apikey={api_key}"
            )

        results: list = await get_data_many(url, **kwargs)

        return sorted(results, key=lambda x: x["publishedDate"], reverse=True)

    @staticmethod
    def transform_data(
        query: FMPWorldNewsQueryParams, data: list, **kwargs: Any
    ) -> list[FMPWorldNewsData]:
        """Return the transformed data."""
        if not data:
            raise EmptyDataError("No data was returned from FMP query.")
        return [FMPWorldNewsData.model_validate(d) for d in data]

View on GitHub (pinned to 3e071fcc2c)

Solutions

  1. Drop the page parameter or reset it to 0
  2. Widen or remove the date filters - FMP news coverage is recent-only
  3. Remove the symbols filter to get general world news and confirm data flows at all
  4. Use another news provider (benzinga, biztoc, fmp, tiingo) via the news router

Example fix

# before
news = await obb.news.world(provider='fmp', page=5).await_to_list()

# after
news = await obb.news.world(provider='fmp', page=0, limit=250).await_to_list()
Defensive patterns

Strategy: validation

Validate before calling

# FMP news history is shallow - clamp the requested window and page
from datetime import datetime, timedelta
newest = datetime.utcnow() - timedelta(days=1)
oldest = datetime.utcnow() - timedelta(days=30)
assert start_date >= oldest.date() and end_date <= newest.date() and page == 0

Try / catch

from openbb_core.provider.utils.errors import EmptyDataError
try:
    news = await obb.news.world(provider='fmp', page=page).await_to_list()
except EmptyDataError:
    news = []  # page beyond results - stop paginating

Prevention

When it happens

Trigger: Calling the FMP world/stock news endpoint with a symbols filter that has no recent articles, a page number beyond available results, or a date window outside FMP's coverage (FMP news history is shallow, typically only recent weeks/months).

Common situations: Paginating past the last page, filtering by a sparsely-covered ticker, or requesting older dates than FMP retains for news; free-tier keys receive fewer articles per day.

Related errors


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