OpenBB-finance/OpenBB · error · AuthServiceError
Extension '{ext_name}' is not installed.
Error message
Extension '{ext_name}' is not installed. What it means
Raised in the economic-indicators transform stage when a `transform`/unit parameter was supplied for a dataflow that has no transform or unit dimension at all (`transform_dim` and `unit_dim` both None per `detect_transform_dimension`). Distinct from the 'invalid value' case: here the dataflow conceptually doesn't support unit selection (e.g. many STA or non-IFS dataflows), so no value could ever work.
Source
Thrown at openbb_platform/core/openbb_core/app/service/auth_service.py:64
return self._auth_hook
@property
def user_settings_hook(self) -> Callable[..., Awaitable[UserSettings]]:
"""Get user settings hook."""
return self._user_settings_hook
@staticmethod
def _is_installed(ext_name: str) -> bool:
"""Check if auth_extension is installed."""
extension = ExtensionLoader().get_core_entry_point(ext_name) or False
return extension and ext_name == extension.name # type: ignore
@staticmethod
def _get_entry_mod(ext_name: str) -> ModuleType:
"""Get the module of the given auth_extension."""
extension = ExtensionLoader().get_core_entry_point(ext_name)
if not extension:
raise AuthServiceError(f"Extension '{ext_name}' is not installed.")
return import_module(extension.module)
def _load_extension(self, ext_name: str | None) -> bool:
"""Load auth extension."""
if ext_name and self._is_installed(ext_name):
entry_mod = self._get_entry_mod(ext_name)
self._router = entry_mod.router
self._auth_hook = entry_mod.auth_hook
self._user_settings_hook = entry_mod.user_settings_hook
logger.info("Loaded auth_extension: %s", ext_name)
return True
return False
View on GitHub (pinned to 3e071fcc2c)
Solutions
- Drop the `transform` parameter for dataflows that don't support it (the error names the dataflow).
- Detect support first: `from openbb_imf.utils.imf_metadata import detect_transform_dimension` (or the module used by the model) and only pass transform when a dimension is found.
- For heterogeneous batches, set transform conditionally per dataflow or use 'all'.
Example fix
# before res = obb.economy.economic_indicators(provider='imf', symbol='STA::H_CPI', country='USA', transform='level') # after res = obb.economy.economic_indicators(provider='imf', symbol='STA::H_CPI', country='USA')
Defensive patterns
Strategy: try-catch
Try / catch
try:
res = obb.economy.economic_indicators(provider='imf', symbol=sym, country=c, transform=t)
except Exception as e:
if 'does not support transform/unit parameter' in str(e):
# dataflow has no transform dimension: re-issue without transform
res = obb.economy.economic_indicators(provider='imf', symbol=sym, country=c)
else:
raise Prevention
- Only pass transform for dataflows known to expose UNIT_MEASURE/TRANSFORMATION dimensions (IFS-style dataflows).
- In batch jobs, make the transform parameter conditional on the dataflow prefix of each symbol.
- Treat 'does not support' as a structural fact about the dataflow — retrying with a different value will not help; drop the parameter.
When it happens
Trigger: Passing `transform='level'` (any non-all value) together with a symbol from a dataflow without UNIT_MEASURE/TRANSFORMATION dimensions, e.g. `symbol='STA::H_CPI', transform='level'`. 'all'/'*' are skipped earlier and never trigger it.
Common situations: Copying a parameter template built for IFS indicators to other dataflows; batch jobs that always set transform; assuming every dataflow supports the same dimensions.
Related errors
- Invalid logging handler
- Please install polars: `pip install polars pyarrow` to use
- Chart not found.
- Dataflow '{dataflow_id}' not found. Available dataflows: {li
- Dataflow '{dataflow}' not found.
AI-assisted analysis of OpenBB-finance/OpenBB@3e071fcc2c (2026-08-14).
Data as JSON: /api/errors/eb11fdf54c176220.
Report an issue: GitHub.