OpenBB-finance/OpenBB · error · ValueError
Agency ID not found for dataflow '{dataflow}'.
Error message
Agency ID not found for dataflow '{dataflow}'. What it means
build_url raises ValueError at URL-assembly time when the dataflow metadata contains no agencyID. The SDMX 3.0 data endpoint requires agency/dataflow in the path, so without it no valid URL can be produced.
Source
Thrown at openbb_platform/providers/imf/openbb_imf/utils/query_builder.py:87
param_value = final_kwargs.get(dim_id)
# Handle wildcards and empty values
if (
param_value is None
or param_value in ["", "*"]
or len(str(param_value)) > 1500
):
key_parts.append("*")
elif isinstance(param_value, list):
key_parts.append("+".join(param_value))
else:
key_parts.append(str(param_value))
dimensions_in_key.add(dim_id)
key = ".".join(key_parts)
if not agency_id:
raise ValueError(f"Agency ID not found for dataflow '{dataflow}'.")
url = (
f"https://api.imf.org/external/sdmx/3.0/data/dataflow/"
f"{agency_id}/{dataflow}/+/{key}"
)
# Only include parameters in query_params that are not dimensions
query_params = {
k: v for k, v in final_kwargs.items() if k not in dimensions_in_key
}
# Format dates for TIME_PERIOD filter
frequency = (final_kwargs.get("FREQUENCY") or "").upper()
def format_date(
date_str: str, frequency: str, is_end_date: bool = False
) -> str:
"""Format date string based on frequency to match IMF TIME_PERIOD format."""
if not date_str:
return date_strView on GitHub (pinned to 3e071fcc2c)
Solutions
- Clear the cached IMF metadata and re-fetch.
- Upgrade openbb-imf if IMF changed the metadata schema.
- Use another dataflow for the same data while the broken one is fixed upstream.
Defensive patterns
Strategy: fallback
Validate before calling
def dataflow_has_agency(qb, dataflow: str) -> bool:
return bool(qb.metadata.dataflows.get(dataflow, {}).get('agencyID')) Try / catch
try:
url = qb.build_url(dataflow, **kwargs)
except ValueError as e:
if 'Agency ID not found' in str(e):
refresh_imf_metadata_cache()
url = qb.build_url(dataflow, **kwargs)
else:
raise Prevention
- Validate metadata completeness (agencyID, structureRef) after any cache write.
- Do not hand-edit cached IMF metadata.
- Report dataflows with missing agencyID upstream — it is a metadata defect.
When it happens
Trigger: A dataflow entry in metadata lacking the agencyID field (malformed/partial cache) or an unexpected IMF registry change altering the metadata shape.
Common situations: Stale or hand-modified metadata cache, partial metadata fetch, or provider version that parses an older SDMX structure format.
Related errors
- Data structure not found for dataflow '{dataflow}'.
- Invalid {name}(s): {', '.join(invalid)}
- Invalid indicator code(s) for dataflow '{dataflow}': {'; '.j
- Dataflow '{dataflow_id}' not found.
- Agency ID not found for dataflow '{dataflow_id}'.
AI-assisted analysis of OpenBB-finance/OpenBB@3e071fcc2c (2026-08-14).
Data as JSON: /api/errors/fa63885ab567983a.
Report an issue: GitHub.