OpenBB-finance/OpenBB · error · RuntimeError

This charting method does not support {provider}. Supported

Error message

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

What it means

The BLS charting view in economy_views.py only handles Bureau of Labor Statistics response shapes, so it raises RuntimeError when the provider attached to the data is anything other than 'bls'. This mirrors the FRED guard: the downstream pivot logic assumes BLS fields (symbol, date, value) and would mis-render other providers' data.

Source

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

        bar_kwargs: Optional[dict]
            Additional keyword arguments applied to `fig.add_bar`.
        scatter_kwargs: Optional[dict]
            Additional keyword arguments applied to `fig.add_scatter`.
        layout_kwargs: Optional[dict]
            Additional keyword arguments applied to `fig.update_layout`.
        """
        # pylint: disable=import-outside-toplevel
        from openbb_charting.charts.generic_charts import bar_chart, line_chart
        from openbb_charting.charts.helpers import (
            z_score_standardization,
        )
        from openbb_core.app.utils import basemodel_to_df
        from pandas import DataFrame

        provider = kwargs.get("provider")

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

        _data = (
            kwargs.pop("data", None)
            if "data" in kwargs and kwargs["data"] is not None
            else kwargs.get("obbject_item")
        )
        df = DataFrame()

        if isinstance(_data, DataFrame) and not _data.empty:
            df = _data.reset_index() if _data.index.name == "date" else _data
        else:
            try:
                df = basemodel_to_df(_data, index=None)  # type: ignore
            except Exception as e:
                raise RuntimeError("Unable to process supplied data.") from e

View on GitHub (pinned to 3e071fcc2c)

Solutions

  1. Fetch the data with provider='bls' (e.g. obb.economy.bls.multiple_series(..., provider='bls')) before charting.
  2. For other providers' time series, use the generic charting (to_chart / obb.charting) instead of the BLS-specific view.

Example fix

# before
res = obb.economy.bls.multiple_series(symbols=['LNS14000000'], provider='oecd').charting.bls()

# after
res = obb.economy.bls.multiple_series(symbols=['LNS14000000'], provider='bls').charting.bls()
Defensive patterns

Strategy: validation

Validate before calling

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

Try / catch

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

Prevention

When it happens

Trigger: Invoking the BLS charting route (economy_views.py:359, e.g. obb.economy.chart.bls or .charting.bls() on a dataset) with provider='fmp'/'fred'/'yfinance' or with None.

Common situations: Reusing a charting snippet across providers, charting data fetched from a custom provider, or forgetting to set provider='bls' on the data request.

Related errors


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