{"record":{"id":"0ee2432a58d13967","repo":"OpenBB-finance/OpenBB","slug":"the-request-was-returned-empty-0ee243","errorCode":null,"errorMessage":"The request was returned empty.","messagePattern":"The request was returned empty\\.","errorType":"exception","errorClass":"EmptyDataError","httpStatus":null,"severity":"warning","filePath":"openbb_platform/providers/fmp/openbb_fmp/models/calendar_events.py","lineNumber":131,"sourceCode":"            to_date = date_ranges[i + 1].strftime(\"%Y-%m-%d\")\n            urls.append(\n                f\"{base_url}from={from_date}&to={to_date}&limit=1000&apikey={api_key}\"\n            )\n\n        async def get_one(url):\n            \"\"\"Get data from one URL.\"\"\"\n            try:\n                response = await get_data(url, **kwargs)\n            except OpenBBError as e:\n                raise e from e\n\n            if response:\n                results.extend(response)\n\n        await asyncio.gather(*[get_one(url) for url in urls])\n\n        if not results:\n            raise EmptyDataError(\"The request was returned empty.\")\n\n        return sorted(results, key=lambda x: x[\"date\"])\n\n    @staticmethod\n    def transform_data(\n        query: FmpCalendarEventsQueryParams, data: list, **kwargs: Any\n    ) -> list[FmpCalendarEventsData]:\n        \"\"\"Transform the data.\"\"\"\n        return [FmpCalendarEventsData.model_validate(d) for d in data]\n","sourceCodeStart":113,"sourceCodeEnd":141,"githubUrl":"https://github.com/OpenBB-finance/OpenBB/blob/3e071fcc2cd9f891cac6040ae60296dba76dab46/openbb_platform/providers/fmp/openbb_fmp/models/calendar_events.py#L113-L141","documentation":"FMP calendar events fetcher queries multiple URLs (e.g. earnings, IPO, dividend calendars) and, if every response is empty, raises EmptyDataError('The request was returned empty.'). The upstream get_data succeeded; each endpoint simply had no rows for the window.","triggerScenarios":"Requesting calendar events for a date range with no events (quiet weeks, weekends); start/end dates inverted or outside FMP coverage; a premium event type on a free key returning empty.","commonSituations":"Nightly jobs over rolling short windows that regularly contain no events; date arguments passed in the wrong order; timezone shifts making 'today' land on an empty day.","solutions":["Widen the start_date/end_date window to include known event dates","Confirm start_date <= end_date and both are within FMP's supported range","Treat EmptyDataError as a normal empty calendar in scheduled jobs"],"exampleFix":"# before\nawait obb.equity.calendar.events(provider=\"fmp\", start_date=\"2024-01-06\", end_date=\"2024-01-07\")  # weekend\n\n# after\nawait obb.equity.calendar.events(provider=\"fmp\", start_date=\"2024-01-01\", end_date=\"2024-01-31\")","handlingStrategy":"validation","validationCode":"from datetime import date\n\nassert start_date <= end_date, \"start_date must precede end_date\"\nassert (end_date - start_date).days >= 7, \"window very narrow; may contain no events\"","typeGuard":null,"tryCatchPattern":"from openbb_core.provider.abstract.errors import EmptyDataError\n\ntry:\n    events = await FmpCalendarEventsFetcher.transform_query(...)\nexcept EmptyDataError:\n    events = []  # no events in window; widen dates if unexpected","preventionTips":["Use event windows of at least a week for quiet periods","Validate date order and format (YYYY-MM-DD) before requesting","Treat empty calendars as normal output in scheduled jobs"],"tags":["openbb","fmp","empty-data","calendar","date-range"],"backgroundTag":null,"analyzedSha":"3e071fcc2cd9f891cac6040ae60296dba76dab46","analyzedAt":"2026-08-14T23:40:48.960Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}