OpenBB-finance/OpenBB · error · RuntimeError
OBBject Extension Error -> An OBBject extension that modif
Error message
OBBject Extension Error -> An OBBject extension that modifies the output is installed but has not been enabled in `system_settings.json`. Set `allow_mutable_extensions` to True to enable it. Or, set the environment variable `OPENBB_ALLOW_MUTABLE_EXTENSIONS` to True. Proceed with caution as this may have security implications. Ensure the extension is installed from a trusted source.
What it means
Raised by the economic-indicators model validator (`parse_and_validate_symbols`, mode='after') when `symbol` is empty. The `dataflow::identifier` symbol is the core selector for this endpoint — there is no default series — so an empty symbol aborts validation immediately.
Source
Thrown at openbb_platform/core/openbb_core/app/model/extension.py:87
and not SystemService().system_settings.allow_on_command_output
):
raise RuntimeError(
"OBBject Extension Error -> \n\n"
+ "An OBBject extension that acts on command output is installed "
+ "but has not been enabled in `system_settings.json`.\n\n"
+ "Set `allow_on_command_output` to True to enable it.\n"
+ "Or, set the environment variable `OPENBB_ALLOW_ON_COMMAND_OUTPUT` to True."
+ "\n\nProceed with caution as this may have security implications.\n\n"
+ "Ensure the extension is installed from a trusted source.\n\n",
)
# The user must explicitly enable OBBject extensions that modify output.
if (
self.on_command_output
and self.immutable is False
and not SystemService().system_settings.allow_mutable_extensions
):
raise RuntimeError(
"OBBject Extension Error -> \n\n"
+ "An OBBject extension that modifies the output is installed "
+ "but has not been enabled in `system_settings.json`.\n\n"
+ "Set `allow_mutable_extensions` to True to enable it.\n"
+ "Or, set the environment variable `OPENBB_ALLOW_MUTABLE_EXTENSIONS` to True."
+ "\n\nProceed with caution as this may have security implications.\n\n"
+ "Ensure the extension is installed from a trusted source.\n\n",
)
@property
def obbject_accessor(self) -> Callable:
"""Extend an OBBject, inspired by pandas."""
# pylint: disable=import-outside-toplevel
from openbb_core.app.model.obbject import OBBject
return self.register_accessor(self.name, OBBject)
View on GitHub (pinned to 3e071fcc2c)
Solutions
- Pass a valid symbol in `dataflow::identifier` form, e.g. `symbol='IFS::NGDP_XDC'`.
- Discover valid symbols first: call `available_indicators()` (search) or `list_tables()` and feed a result back in.
- In dynamic builders, assert the symbol is non-empty and contains '::' before calling.
Example fix
# before res = obb.economy.economic_indicators(provider='imf', country='USA') # after res = obb.economy.economic_indicators(provider='imf', symbol='IFS::NGDP_XDC', country='USA')
Defensive patterns
Strategy: validation
Validate before calling
def require_symbol(symbol):
if not symbol or not symbol.strip():
raise ValueError('IMF economic_indicators requires a non-empty symbol like IFS::NGDP_XDC.')
return symbol
symbol = require_symbol(symbol) Type guard
def is_non_empty_symbol(symbol) -> bool:
return isinstance(symbol, str) and bool(symbol.strip()) Prevention
- When building symbols dynamically, assert the result is non-empty before the call.
- Default your UIs to a dataflow-qualified example symbol so users see the expected format.
When it happens
Trigger: Calling the economic-indicators endpoint with `symbol=''` or omitted, or passing `symbol=None` when the field is optional-with-default-empty in the params model. Also fires when a caller builds the symbol string dynamically and it concatenates to empty.
Common situations: Assuming the endpoint returns 'main indicators' without a symbol; templated code like `symbol=f'{dataflow}::{indicator}'` where indicator is empty at runtime; frontends sending an empty string when the user selects nothing.
Related errors
- Charting is not installed. Please install `openbb-charting`.
- Unsupported data format.
- ValueError: {ve}. Ensure the data format matches the expecte
- TypeError: {te}. Check the data types in your results.
- An unexpected error occurred: {ex}
AI-assisted analysis of OpenBB-finance/OpenBB@3e071fcc2c (2026-08-14).
Data as JSON: /api/errors/058362251535fdaa.
Report an issue: GitHub.