{"record":{"id":"fe81c2ae1faff6bb","repo":"OpenBB-finance/OpenBB","slug":"the-request-was-successful-but-was-returned-empty-fe81c2","errorCode":null,"errorMessage":"The request was successful but was returned empty.","messagePattern":"The request was successful but was returned empty\\.","errorType":"exception","errorClass":"EmptyDataError","httpStatus":null,"severity":"warning","filePath":"openbb_platform/providers/intrinio/openbb_intrinio/models/forward_pe_estimates.py","lineNumber":145,"sourceCode":"                message = data.get(\"message\", \"\")\n                if \"api key\" in message.lower() or \"view this data\" in error.lower():\n                    raise UnauthorizedError(\n                        f\"Unauthorized Intrinio request -> {message} -> {error}\"\n                    )\n                raise OpenBBError(f\"Error: {error} -> {message}\")\n\n            forward_pe = data.get(\"forward_pe\")\n\n            if forward_pe and len(forward_pe) > 0:  # type: ignore\n                results.extend(forward_pe)  # type: ignore\n\n            return results\n\n        url = f\"{BASE_URL}?page_size=10000&api_key={api_key}\"\n        results = await amake_request(url, response_callback=fetch_callback, **kwargs)  # type: ignore\n\n        if not results:\n            raise EmptyDataError(\"The request was successful but was returned empty.\")\n\n        return results\n\n    @staticmethod\n    def transform_data(\n        query: IntrinioForwardPeEstimatesQueryParams,\n        data: list[dict],\n        **kwargs: Any,\n    ) -> list[IntrinioForwardPeEstimatesData]:\n        \"\"\"Transform the raw data into the standard format.\"\"\"\n        symbols = query.symbol.split(\",\") if query.symbol else []\n        if symbols:\n            data.sort(\n                key=lambda item: (\n                    symbols.index(item.get(\"ticker\")) if item.get(\"ticker\") in symbols else len(symbols)  # type: ignore\n                )\n            )\n        return [IntrinioForwardPeEstimatesData.model_validate(d) for d in data]","sourceCodeStart":127,"sourceCodeEnd":163,"githubUrl":"https://github.com/OpenBB-finance/OpenBB/blob/3e071fcc2cd9f891cac6040ae60296dba76dab46/openbb_platform/providers/intrinio/openbb_intrinio/models/forward_pe_estimates.py#L127-L163","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","solutions":["Retry after a delay - bulk feeds are often republished periodically.","Switch to per-symbol mode (pass symbol=) which has its own error reporting.","Check Intrinio status page for feed incidents.","Fall back to another provider for the same data."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":"from openbb_core.provider.exceptions import EmptyDataError\ntry:\n    res = obb.equity.estimates.forward_pe(provider='intrinio')  # bulk\nexcept EmptyDataError:\n    res = obb.equity.estimates.forward_pe(symbol=','.join(watchlist), provider='intrinio')","preventionTips":["Do not assume the bulk feed is never empty","Retry bulk endpoints on a schedule (feeds republish)","Keep a per-symbol fallback path","Check Intrinio status during outages"],"tags":["intrinio","estimates","empty-data","bulk"],"backgroundTag":null,"analyzedSha":"3e071fcc2cd9f891cac6040ae60296dba76dab46","analyzedAt":"2026-08-14T23:40:48.960Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}