{"record":{"id":"8793cbfa463eaf59","repo":"OpenBB-finance/OpenBB","slug":"error-no-data-to-plot","errorCode":null,"errorMessage":"Error: No data to plot.","messagePattern":"Error: No data to plot\\.","errorType":"exception","errorClass":"OpenBBError","httpStatus":null,"severity":"error","filePath":"openbb_platform/extensions/derivatives/openbb_derivatives/derivatives_views.py","lineNumber":99,"sourceCode":"        data = kwargs.get(\"data\")\n        symbol = kwargs.get(\"standard_params\", {}).get(\"symbol\", \"\")\n        df: DataFrame = DataFrame()\n        if data:\n            if isinstance(data, DataFrame) and not data.empty:  # noqa: SIM108\n                df = data\n            elif isinstance(data, (list, Data)):\n                df = DataFrame([d.model_dump(exclude_none=True, exclude_unset=True) for d in data])  # type: ignore\n            else:\n                pass\n        else:\n            df = DataFrame(\n                [d.model_dump(exclude_none=True, exclude_unset=True) for d in kwargs[\"obbject_item\"]]  # type: ignore\n                if isinstance(kwargs.get(\"obbject_item\"), list)\n                else kwargs[\"obbject_item\"].model_dump(exclude_none=True, exclude_unset=True)  # type: ignore\n            )\n\n        if df.empty:\n            raise OpenBBError(\"Error: No data to plot.\")\n\n        if \"expiration\" not in df.columns:\n            raise OpenBBError(\"Expiration field not found in the data.\")\n\n        if \"price\" not in df.columns:\n            raise ValueError(\"Price field not found in the data.\")\n\n        provider = kwargs.get(\"provider\", \"\")\n\n        if provider != \"deribit\":\n            df[\"expiration\"] = df[\"expiration\"].apply(to_datetime).dt.strftime(\"%b-%Y\")\n\n        if (\n            provider == \"cboe\"\n            and \"date\" in df.columns\n            and len(df[\"date\"].unique()) > 1\n            and \"symbol\" in df.columns\n        ):","sourceCodeStart":81,"sourceCodeEnd":117,"githubUrl":"https://github.com/OpenBB-finance/OpenBB/blob/3e071fcc2cd9f891cac6040ae60296dba76dab46/openbb_platform/extensions/derivatives/openbb_derivatives/derivatives_views.py#L81-L117","documentation":"Raised by the derivatives futures curve charting view (derivatives_futures_curve) when, after normalizing the input - either a passed DataFrame, a list of Data models, or the OBBject item's dumped results - the resulting DataFrame is empty. The chart cannot be built from nothing, so it aborts before touching plotly.","triggerScenarios":"Calling obb.derivatives.futures.curve(..., chart=True) when the fetcher returned zero rows (empty symbol/date), or passing data=[] / an empty DataFrame via chart_params; also when data is a list whose model_dump calls yield no columns.","commonSituations":"Delisted/unknown futures symbol; requesting a date with no curve data; provider outage returning an empty result; charting an OBBject whose results were already consumed/emptied.","solutions":["Verify the underlying fetch returns rows before enabling chart=True: inspect data.results length.","Check the symbol and date parameters are valid for the provider (e.g. obb.derivatives.futures.curve(symbol='VX', provider='cboe')).","If passing data= explicitly, confirm the DataFrame is non-empty and has expiration/price columns.","Retry during market hours or with another provider if the response was genuinely empty."],"exampleFix":"# before\nres = obb.derivatives.futures.curve(symbol='BADSYM', date='1990-01-01', provider='cboe', chart=True)\n\n# after\nres = obb.derivatives.futures.curve(symbol='VX', provider='cboe', chart=True)\nassert res.results, 'no curve rows returned'","handlingStrategy":"validation","validationCode":"res = obb.derivatives.futures.curve(symbol=sym, provider=prov)\nif not res.results:\n    raise ValueError(f'no curve rows for {sym}; check symbol/date/provider')","typeGuard":null,"tryCatchPattern":"try:\n    data.show()  # or charting.to_chart()\nexcept OpenBBError as e:\n    if 'No data to plot' in str(e):\n        logging.warning('curve fetch empty for %s', symbol)","preventionTips":["Assert the fetch returned rows before enabling chart=True.","Validate symbols/dates against the provider before charting."],"tags":["openbb","charting","futures","empty-data"],"backgroundTag":null,"analyzedSha":"3e071fcc2cd9f891cac6040ae60296dba76dab46","analyzedAt":"2026-08-14T23:40:48.960Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}