{"record":{"id":"08bdd74a33a2f501","repo":"OpenBB-finance/OpenBB","slug":"data-is-empty","errorCode":null,"errorMessage":"Data is empty","messagePattern":"Data is empty","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"openbb_platform/extensions/equity/openbb_equity/equity_views.py","lineNumber":62,"sourceCode":"        title = kwargs.pop(\"title\", \"Historical Market Cap\")\n\n        data = DataFrame()\n\n        if \"data\" in kwargs and isinstance(kwargs[\"data\"], DataFrame):\n            data = kwargs[\"data\"]\n        elif \"data\" in kwargs and isinstance(kwargs[\"data\"], list):\n            data = basemodel_to_df(kwargs[\"data\"], index=kwargs.get(\"index\", \"date\"))  # type: ignore\n        else:\n            data = basemodel_to_df(\n                kwargs[\"obbject_item\"],\n                index=kwargs.get(\"index\", \"date\"),  # type: ignore\n            )\n\n        if \"date\" in data.columns:\n            data = data.set_index(\"date\")\n\n        if data.empty:\n            raise ValueError(\"Data is empty\")\n\n        df = data.pivot(columns=\"symbol\", values=\"market_cap\")\n\n        scatter_kwargs = kwargs.pop(\"scatter_kwargs\", {})\n\n        if \"hovertemplate\" not in scatter_kwargs:\n            scatter_kwargs[\"hovertemplate\"] = \"%{y}\"\n\n        ytital = kwargs.pop(\"ytitle\", \"Market Cap ($)\")\n        y = kwargs.pop(\"y\", df.columns.tolist())\n\n        fig = line_chart(\n            data=df,\n            title=title,\n            y=y,\n            ytitle=ytital,\n            same_axis=True,\n            scatter_kwargs=scatter_kwargs,","sourceCodeStart":44,"sourceCodeEnd":80,"githubUrl":"https://github.com/OpenBB-finance/OpenBB/blob/3e071fcc2cd9f891cac6040ae60296dba76dab46/openbb_platform/extensions/equity/openbb_equity/equity_views.py#L44-L80","documentation":"The equity market-cap history chart converts its input to a DataFrame indexed by date and pivots on values='market_cap'; if the frame is empty after conversion, it raises ValueError('Data is empty'). An empty result means the upstream request returned no records (or the injected data/list contained none), so there is nothing to plot.","triggerScenarios":"Calling obb.equity.fundamental.marketcap(...).charting.to_chart() (or equity_views.py:62 view) for a symbol with no market-cap history from the provider; passing an empty list in kwargs['data']; a date range outside the provider's coverage.","commonSituations":"Delisted/illiquid tickers, provider plans that exclude historical market cap, bad symbols, or date filters excluding all rows.","solutions":["Check the raw response first: res = obb.equity.fundamental.marketcap(symbol); if not res.results: handle empty.","Verify the symbol is valid and covered by the provider; try a different provider.","Widen/remove start_date & end_date filters.","If injecting data, ensure the list/DataFrame is non-empty and includes 'market_cap' and 'date'."],"exampleFix":"# before\nfig = obb.equity.fundamental.marketcap('INVALID', provider='fmp').charting.to_chart()\n\n# after\nres = obb.equity.fundamental.marketcap('AAPL', provider='fmp')\nif not res.results:\n    raise SystemExit('no market cap data for symbol/provider')\nfig = res.charting.to_chart()","handlingStrategy":"validation","validationCode":"res = obb.equity.fundamental.marketcap('AAPL', provider='fmp')\nassert res.results, 'provider returned no market cap records'\ndf = res.to_df()\nassert {'date', 'market_cap'}.issubset(df.columns)","typeGuard":"def is_nonempty_marketcap_frame(df) -> bool:\n    \"\"\"True when the frame has rows plus date/market_cap columns.\"\"\"\n    return (\n        df is not None\n        and not df.empty\n        and {'date', 'market_cap'}.issubset(getattr(df, 'columns', []))\n    )","tryCatchPattern":"try:\n    fig = res.charting.to_chart()\nexcept ValueError as e:\n    if str(e) == 'Data is empty':\n        res = obb.equity.fundamental.marketcap(symbol, provider='fmp')\n        fig = res.charting.to_chart()\n    else:\n        raise","preventionTips":["Check res.results is non-empty before charting.","Validate the symbol and try alternate providers when empty.","Loosen date filters in automated pipelines."],"tags":["equity","charting","empty-data","market-cap"],"backgroundTag":null,"analyzedSha":"3e071fcc2cd9f891cac6040ae60296dba76dab46","analyzedAt":"2026-08-14T23:40:48.960Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}