{"record":{"id":"e80d2fd5504ae2bc","repo":"OpenBB-finance/OpenBB","slug":"error-data-is-a-required-field","errorCode":null,"errorMessage":"Error: Data is a required field.","messagePattern":"Error: Data is a required field\\.","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"openbb_platform/obbject_extensions/charting/openbb_charting/charts/generic_charts.py","lineNumber":58,"sourceCode":"    xtitle: str | None = None,\n    y: str | list[str] | None = None,\n    ytitle: str | None = None,\n    y2: str | list[str] | None = None,\n    y2title: str | None = None,\n    layout_kwargs: dict | None = None,\n    scatter_kwargs: dict | None = None,\n    normalize: bool = False,\n    returns: bool = False,\n    same_axis: bool = False,\n    **kwargs,\n) -> Union[\"OpenBBFigure\", \"Figure\"]:\n    \"\"\"Create a line chart.\"\"\"\n    # pylint: disable=import-outside-toplevel\n    from pandas import DataFrame, Series, to_datetime  # noqa\n    from openbb_charting.core.openbb_figure import OpenBBFigure\n\n    if data is None:\n        raise ValueError(\"Error: Data is a required field.\")\n\n    auto_layout = False\n    index = (  # type: ignore\n        data.index.name\n        if isinstance(data, (DataFrame, Series))\n        else index if index is not None else x if x is not None else \"date\"\n    )\n    df: DataFrame = (basemodel_to_df(convert_to_basemodel(data), index=index)).dropna(\n        how=\"all\", axis=1\n    )\n\n    if df.index.name is None:\n        if \"date\" in df.columns:\n            df.date = df.date.apply(to_datetime)\n            df.set_index(\"date\", inplace=True)\n        else:\n            found_index = False\n            for col in df.columns:","sourceCodeStart":40,"sourceCodeEnd":76,"githubUrl":"https://github.com/OpenBB-finance/OpenBB/blob/3e071fcc2cd9f891cac6040ae60296dba76dab46/openbb_platform/obbject_extensions/charting/openbb_charting/charts/generic_charts.py#L40-L76","documentation":"create_line_chart in openbb_charting/charts/generic_charts.py requires a data argument; when data is None it raises immediately. Callers hitting this usually reached the function through the auto-chart fallback or charting kwargs where no usable data could be resolved (e.g. OBBject results empty, wrong kwarg name).","triggerScenarios":"Calling create_line_chart() with no data positional/keyword; passing data=None explicitly; auto-chart fallback invoked when obbject.results is None.","commonSituations":"Kwarg typos like dataset= or df= instead of data=; endpoints returning None results that then trigger the generic chart path; scripting against the internal API signature after it changed.","solutions":["Pass the data explicitly: create_line_chart(data=df)","Ensure the source OBBject has non-None results before charting","Check the current function signature (inspect.signature) for the expected parameter name"],"exampleFix":"# before\nfig = charting.create_line_chart(df=my_df)\n\n# after\nfig = charting.create_line_chart(data=my_df)","handlingStrategy":"validation","validationCode":"assert data is not None, 'create_line_chart requires data'","typeGuard":"def has_chart_data(data) -> bool:\n    return data is not None and len(data) > 0 if hasattr(data, '__len__') else data is not None","tryCatchPattern":"try:\n    fig = create_line_chart(data=data)\nexcept ValueError as e:\n    if 'Data is a required field' in str(e):\n        fig = create_line_chart(data=res.to_df())","preventionTips":["Always pass data= by keyword","Check results are non-None before charting","Confirm kwarg names against the current signature"],"tags":["openbb","charting","line-chart","missing-argument"],"backgroundTag":null,"analyzedSha":"3e071fcc2cd9f891cac6040ae60296dba76dab46","analyzedAt":"2026-08-14T23:40:48.960Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}