OpenBB-finance/OpenBB · error · RuntimeError

This charting method does not support {provider}. Supported

Error message

This charting method does not support {provider}. Supported providers: fred.

What it means

The FRED dataset charting view (economy_views.py) is hard-wired to FRED data shapes, so it refuses any provider other than 'fred'. kwargs carries the provider used for the data request; if it is anything else (or None with injected data), the view raises RuntimeError immediately rather than producing a malformed multi-series chart.

Source

Thrown at openbb_platform/extensions/economy/openbb_economy/economy_views.py:48

        from openbb_charting.styles.colors import LARGE_CYCLER
        from openbb_core.app.utils import basemodel_to_df
        from pandas import DataFrame

        ytitle_dict = {
            "chg": "Change",
            "ch1": "Change From Year Ago",
            "pch": "Percent Change",
            "pc1": "Percent Change From Year Ago",
            "pca": "Compounded Annual Rate Of Change",
            "cch": "Continuously Compounded Rate Of Change",
            "cca": "Continuously Compounded Annual Rate Of Change",
            "log": "Natural Log",
        }

        provider = kwargs.get("provider")

        if provider != "fred":
            raise RuntimeError(
                f"This charting method does not support {provider}. Supported providers: fred."
            )

        columns = basemodel_to_df(kwargs["obbject_item"], index=None).columns.to_list()  # type: ignore

        allow_unsafe = kwargs.get("allow_unsafe", False)
        dropnan = kwargs.get("dropna", True)
        normalize = kwargs.get("normalize", False)

        data_cols = []
        data = kwargs.get("data")

        if isinstance(data, DataFrame) and not data.empty:
            data_cols = data.columns.to_list()
            df_ta = data

        else:
            df_ta = basemodel_to_df(kwargs["obbject_item"], index="date")  # type: ignore

View on GitHub (pinned to 3e071fcc2c)

Solutions

  1. Fetch the series with provider='fred' before invoking this chart: obb.economy.fred.series(symbol, provider='fred').charting(...).
  2. For non-FRED time series, use the generic chart endpoints (obb.economy.chart or to_chart on the OBBject) instead of the FRED-specific view.
  3. If injecting your own DataFrame, accept that this method is FRED-only and pick the generic line chart.

Example fix

# before
res = obb.economy.fred.series('T10YIE', provider='oecd').charting.to_chart()  # wrong chart route

# after
res = obb.economy.fred.series('T10YIE', provider='fred').charting.fred()
Defensive patterns

Strategy: validation

Validate before calling

assert kwargs.get('provider', 'fred') == 'fred', (
    'fred chart requires provider="fred"'
)

Try / catch

try:
    fig = res.charting.fred()
except RuntimeError as e:
    if 'does not support' in str(e) and 'fred' in str(e):
        fig = res.charting.to_chart()  # generic fallback
    else:
        raise

Prevention

When it happens

Trigger: Calling obb.economy.chart.fred() (or to_chart on a FRED-style dataset) after fetching data with provider='yfinance'/'oecd'/'fmp'; supplying external data= without going through a FRED request.

Common situations: Copy-pasting a charting snippet from another provider's docs, charting a user-provided DataFrame via the FRED chart method, or a provider default resolving to something other than fred.

Related errors


AI-assisted analysis of OpenBB-finance/OpenBB@3e071fcc2c (2026-08-14). Data as JSON: /api/errors/737990c1a3357cf4. Report an issue: GitHub.