{"record":{"id":"767c4f23432f2b29","repo":"OpenBB-finance/OpenBB","slug":"messages-767c4f","errorCode":null,"errorMessage":"{messages}","messagePattern":"\\{messages\\}","errorType":"exception","errorClass":"OpenBBError","httpStatus":null,"severity":"error","filePath":"openbb_platform/providers/intrinio/openbb_intrinio/models/historical_market_cap.py","lineNumber":131,"sourceCode":"                )\n\n            if not response:\n                msg = f\"No data found for symbol: {symbol}\"\n                messages.append(msg)\n\n            if response.get(\"historical_data\"):\n                data = response.get(\"historical_data\", {})\n                result = [\n                    {\"symbol\": symbol, **item} for item in data if item.get(\"value\")\n                ]\n                results.extend(result)\n\n            return\n\n        await asyncio.gather(*[get_one(symbol) for symbol in symbols])\n\n        if messages and not results:\n            raise OpenBBError(messages)\n\n        if messages and results:\n            for message in messages:\n                warn(message)\n\n        if not results:\n            raise EmptyDataError(\"The response was returned empty.\")\n\n        return results\n\n    @staticmethod\n    def transform_data(\n        query: IntrinioHistoricalMarketCapQueryParams, data: list[dict], **kwargs: Any\n    ) -> list[IntrinioHistoricalMarketCapData]:\n        \"\"\"Return the transformed data.\"\"\"\n        return [\n            IntrinioHistoricalMarketCapData.model_validate(d)\n            for d in sorted(data, key=lambda x: x[\"date\"])","sourceCodeStart":113,"sourceCodeEnd":149,"githubUrl":"https://github.com/OpenBB-finance/OpenBB/blob/3e071fcc2cd9f891cac6040ae60296dba76dab46/openbb_platform/providers/intrinio/openbb_intrinio/models/historical_market_cap.py#L113-L149","documentation":"OpenBBError raised when every requested symbol produced a soft-failure message ('Symbol not found' or 'No data found for symbol') and none produced rows. The per-symbol messages collected during gather are aggregated into a single OpenBBError whose payload is the message list, so a multi-symbol market-cap request fails loudly instead of returning an empty frame.","triggerScenarios":"equity/fundamental/market_cap(symbol='BAD1,BAD2', provider='intrinio') where each get_one hits 'Cannot look up this item/identifier combination' (mapped to 'Symbol not found: X') or returns an empty dict ('No data found for symbol: X'), so messages is non-empty and results is empty.","commonSituations":"Misspelled or delisted tickers in a batch; symbols not in Intrinio's universe; wrong asset class (crypto/forex ticker) passed to an equity endpoint; date range with no published market cap values.","solutions":["Check the messages list inside the error - it names each failing symbol and why.","Validate each ticker with a quote/profile call before requesting market cap.","Retry with only the symbols that resolve.","For partial failures, request symbols individually and skip the ones that warn."],"exampleFix":"# before\nres = obb.equity.fundamental.market_cap(symbol='FOO,BAR', provider='intrinio')\n\n# after - per-symbol isolation so good symbols survive\nframes = []\nfor s in ['FOO', 'BAR']:\n    try:\n        frames.append(obb.equity.fundamental.market_cap(symbol=s, provider='intrinio').to_df())\n    except Exception as e:\n        print(f'skip {s}: {e}')","handlingStrategy":"try-catch","validationCode":"# validate symbols exist before the batch call\nvalid = []\nfor s in symbols:\n    try:\n        obb.equity.price.quote(symbol=s, provider='intrinio')\n        valid.append(s)\n    except Exception:\n        pass","typeGuard":null,"tryCatchPattern":"from openbb_core.provider.exceptions import OpenBBError\ntry:\n    res = obb.equity.fundamental.market_cap(symbol=','.join(syms), provider='intrinio')\nexcept OpenBBError as e:\n    bad = [m for m in str(e) if 'not found' in m]  # inspect messages list\n    good = [s for s in syms if s not in bad]\n    if good:\n        res = obb.equity.fundamental.market_cap(symbol=','.join(good), provider='intrinio')","preventionTips":["Never batch unvalidated tickers into market-cap calls","Read the aggregated message list to identify bad symbols","Call symbols individually when partial results matter"],"tags":["intrinio","market-cap","batch","symbol-not-found"],"backgroundTag":null,"analyzedSha":"3e071fcc2cd9f891cac6040ae60296dba76dab46","analyzedAt":"2026-08-14T23:40:48.960Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}