OpenBB-finance/OpenBB · error · OpenBBError

No valid dataflows found to search indicators in.This might

Error message

No valid dataflows found to search indicators in.This might be due to incorrect dataflow IDs.

What it means

Raised by search_indicators when the dataflows argument WAS provided but none of the supplied IDs exist in the loaded metadata's self.dataflows dict (or, in the no-dataflows branch, the dataflows dict itself is empty). Distinct from error 594: filters were given, but they match zero known dataflows. The message hints the IDs may simply be wrong.

Source

Thrown at openbb_platform/providers/imf/openbb_imf/utils/metadata.py:220

        Returns
        -------
        list[dict]
            A list of matching indicators with table/hierarchy information included.
        """
        target_dataflow_ids: list = []
        if dataflows:
            target_dataflow_ids = (
                [dataflows] if isinstance(dataflows, str) else dataflows
            )
        else:
            if not query and not keywords:
                raise OpenBBError(
                    "A query must be provided when no dataflows and keywords are specified."
                )
            target_dataflow_ids = list(self.dataflows.keys())

        if not target_dataflow_ids:
            raise OpenBBError(
                "No valid dataflows found to search indicators in."
                "This might be due to incorrect dataflow IDs."
            )

        # Build a map of indicators to their tables for enrichment
        indicator_to_tables: dict[str, list[dict]] = {}
        # Also build searchable text for each indicator from their tables
        indicator_table_text: dict[str, str] = {}

        for df_id in set(target_dataflow_ids):
            try:
                hierarchies = self.get_dataflow_hierarchies(df_id)
                for hierarchy in hierarchies:
                    try:
                        structure = self.get_dataflow_table_structure(
                            df_id, hierarchy["id"]
                        )
                        # Build searchable table text

View on GitHub (pinned to 3e071fcc2c)

Solutions

  1. List valid IDs first: inspect meta.dataflows.keys() or use search_dataflows(query='trade') to discover the right ID.
  2. Strip and upper-case user-supplied IDs; verify each is present before searching.
  3. If self.dataflows is empty, re-initialize the metadata object (its load step failed — check network) rather than retrying the search.

Example fix

# before
res = meta.search_indicators(dataflows=['trade_stats'])

# after
valid_ids = list(meta.dataflows.keys())
df_id = next(d for d in valid_ids if 'TRADE' in d.upper())  # e.g. 'IMTS'
res = meta.search_indicators(dataflows=[df_id])
Defensive patterns

Strategy: validation

Validate before calling

wanted = [d.strip().upper() for d in dataflows_list]
valid = [d for d in wanted if d in meta.dataflows]
if not valid:
    raise ValueError(f'No known dataflows in {wanted}; valid examples: {sorted(meta.dataflows)[:5]}')
res = meta.search_indicators(dataflows=valid, query=query)

Type guard

def are_known_dataflows(ids: list[str], catalog: dict) -> bool:
    return bool(ids) and all(i in catalog for i in ids)

Try / catch

try:
    res = meta.search_indicators(dataflows=ids, query=q)
except OpenBBError as e:
    if 'No valid dataflows' in str(e):
        ids = [d for d in meta.dataflows if q.lower() in d.lower()]
        res = meta.search_indicators(dataflows=ids, query=q)
    else:
        raise

Prevention

When it happens

Trigger: dataflows='imts ' (trailing space), dataflows=['DOT','IMF'] vs actual IDs like 'IMTS' or 'DOT' depending on catalog version; metadata object built from a failed/partial load so self.dataflows is empty.

Common situations: Guessing dataflow IDs from topic names; casing/whitespace mistakes; offline or interrupted metadata initialization leaving an empty catalog; IMF renaming dataflows between releases.

Related errors


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