{"record":{"id":"a80e819ad7ea3fe0","repo":"OpenBB-finance/OpenBB","slug":"error-error-message-a80e81","errorCode":null,"errorMessage":"Error: {error} -> {message}","messagePattern":"Error: (.+?) -> (.+?)","errorType":"exception","errorClass":"OpenBBError","httpStatus":null,"severity":"error","filePath":"openbb_platform/providers/intrinio/openbb_intrinio/models/forward_pe_estimates.py","lineNumber":132,"sourceCode":"                    )\n                return results\n            except Exception as e:\n                raise OpenBBError(\n                    f\"Error in Intrinio request -> {e} -> {symbols}\"\n                ) from e\n\n        async def fetch_callback(response, session):\n            \"\"\"Use callback for pagination.\"\"\"\n            data = await response.json()\n            error = data.get(\"error\", None)\n\n            if error:\n                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(","sourceCodeStart":114,"sourceCodeEnd":150,"githubUrl":"https://github.com/OpenBB-finance/OpenBB/blob/3e071fcc2cd9f891cac6040ae60296dba76dab46/openbb_platform/providers/intrinio/openbb_intrinio/models/forward_pe_estimates.py#L114-L150","documentation":"Generic OpenBBError from the forward P/E fetch callback for any Intrinio body-level error that is not an auth/entitlement failure (message lacks 'api key' and error lacks 'view this data'). It forwards the raw error code and message, e.g. 'Error: 404 Not Found -> ' for an unknown symbol on the all-symbols bulk URL.","triggerScenarios":"The no-symbol bulk call 'https://api-v2.intrinio.com/zacks/forward_pe?page_size=10000&api_key=...' (or a per-symbol variant) returning a JSON error body: invalid parameter, bad request shape, rate-limit message in the body, or endpoint change.","commonSituations":"Hitting Intrinio rate limits expressed as body errors; Intrinio API version changes altering the endpoint contract; malformed query construction after library upgrades.","solutions":["Read the embedded error/message pair - it is Intrinio's verbatim response.","If it indicates throttling, back off and retry with fewer symbols per minute.","Verify the endpoint contract on Intrinio's docs if the error suggests a parameter problem.","Update the openbb-intrinio provider package in case the URL/query format changed."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"from openbb_core.provider.exceptions import OpenBBError\ntry:\n    res = obb.equity.estimates.forward_pe(symbol=sym, provider='intrinio')\nexcept OpenBBError as e:\n    if 'limit' in str(e).lower() or '429' in str(e):\n        time.sleep(60); retry()\n    else:\n        raise","preventionTips":["Surface the verbatim Intrinio error in logs","Rate-limit batch jobs","Update openbb-intrinio when Intrinio changes contracts","Prefer per-symbol calls for clearer errors"],"tags":["intrinio","api-error","estimates","wrapper"],"backgroundTag":null,"analyzedSha":"3e071fcc2cd9f891cac6040ae60296dba76dab46","analyzedAt":"2026-08-14T23:40:48.960Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}