OpenBB-finance/OpenBB · error · OpenBBError

No valid combinations of parameters were found. {','.join(me

Error message

No valid combinations of parameters were found.
{','.join(messages) if messages else ''}

What it means

Raised in FredBondIndicesQueryParams validation (cls.validate) when none of the requested indices survive the category check - every entry was rejected as invalid for its BAML category ('emerging_markets' or the US categories), so new_index is empty. The message appends the collected per-index rejection reasons.

Source

Thrown at openbb_platform/providers/fred/openbb_fred/models/bond_indices.py:498

                    if index not in ("us", "europe", "emerging"):
                        message = (
                            f"Invalid index, {index}, for category: 'high_yield'."
                            + f" Must be one of {', '.join(BAML_CATEGORIES.get('high_yield', ''))}."  # type: ignore
                        )
                        messages.append(message)
                    else:
                        new_index.append(index)
                if values["category"] == "emerging_markets":
                    if index not in BAML_CATEGORIES.get("emerging_markets"):  # type: ignore
                        message = (
                            f"Invalid index, {index}, for category: 'emerging_markets'."
                            + f" Must be one of {', '.join(BAML_CATEGORIES.get('emerging_markets', ''))}."  # type: ignore
                        )
                        messages.append(message)
                    else:
                        new_index.append(index)
        if not new_index:
            raise OpenBBError(
                "No valid combinations of parameters were found."
                + f"\n{','.join(messages) if messages else ''}"
            )
        if messages:
            warn(",".join(messages))

        symbols: list = []
        if "yield_curve" in values["index"]:
            maturities_dict = BAML_CATEGORIES[values["category"]][values["index"]]  # type: ignore
            maturities = list(maturities_dict)
            symbols = [
                maturities_dict[item][values["index_type"]] for item in maturities
            ]
        else:
            items = (
                values["index"]
                if isinstance(values["index"], list)
                else values["index"].split(",")

View on GitHub (pinned to 3e071fcc2c)

Solutions

  1. Read the appended messages - each names the invalid index and the allowed list for that category
  2. Use category/index pairs exactly as defined in BAML_CATEGORIES in openbb_fred/models/bond_indices.py
  3. Pass a single known-good index first (e.g. category='treasury', index='yield_curve') to confirm the parameter shape
  4. Cross-check names against FRED's BAML series documentation

Example fix

# before
res = await obb.economy.bond_indices(provider='fred', category='emerging_markets', index='EMHY').await_to_list()

# after - use the exact key from BAML_CATEGORIES
res = await obb.economy.bond_indices(provider='fred', category='emerging_markets', index='high_yield').await_to_list()
Defensive patterns

Strategy: validation

Validate before calling

from openbb_fred.models.bond_indices import BAML_CATEGORIES
category = values['category']
indices = values['index'] if isinstance(values['index'], list) else values['index'].split(',')
valid = [i for i in indices if i in BAML_CATEGORIES.get(category, {})]
assert valid, f'index must be one of {list(BAML_CATEGORIES.get(category, {}))}'

Type guard

def is_valid_bond_index(index: str, category: str, categories: dict) -> bool:
    return index in categories.get(category, {})

Prevention

When it happens

Trigger: Passing index names that are not keys in BAML_CATEGORIES for the chosen category, e.g. index='HY' with category='emerging_markets', or a comma-joined list where every item mismatches; also mixing a yield_curve index with a category that lacks it.

Common situations: Guessing index tickers instead of using the documented BAML names (e.g. 'EMHY' vs 'emerging_markets_high_yield'), wrong category spelling auto-defaulting, or copy-pasting indices from another provider's naming scheme.

Related errors


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