OpenBB-finance/OpenBB · warning · LoadingError

Error loading extension

Error message

Error loading extension: {name}
{e}

What it means

Thrown during OpenBB provider-registry construction (RegistryLoader.from_extensions, cached at first import/use). While iterating all installed provider packages discovered via entry points, one provider object failed to be included in the registry. Only in DEBUG_MODE does it raise LoadingError with the traceback; otherwise it is emitted as an OpenBBWarning and the provider is silently skipped, so commands routed to that provider later fail with 'provider not found'.

Solutions

  1. Reinstall the failing extension in lockstep with core: pip install -U --force-reinstall openbb openbb-yfinance (or the named extension from the message)
  2. Set DEBUG_MODE=1 (env var) and re-run to get the full traceback and the true underlying exception
  3. Verify the extension is compatible with your installed openbb-core version: pip show openbb-core openbb-<provider> and check the provider's release notes
  4. If the extension is unneeded, uninstall it: pip uninstall openbb-<provider>
  5. For custom providers, check the entry-point group/registration in pyproject.toml and that Provider instantiation does not raise

Example fix

# before: mixed versions cause the warning on every import
pip install -U openbb  # upgrades core only; providers left behind

# after: reinstall the whole platform so all extensions match core
pip install -U --force-reinstall openbb
Defensive patterns

Strategy: try-catch

Validate before calling

import importlib.metadata as md
import openbb_core
core_version = md.version("openbb-core")
for dist in md.distributions():
    name = (dist.metadata["Name"] or "").lower()
    if name.startswith("openbb-") and name != "openbb-core":
        print(name, dist.version)

Try / catch

import warnings
from openbb_core.provider.registry import LoadingError
from openbb_core.app.model.abstract.warning import OpenBBWarning

with warnings.catch_warnings(record=True) as caught:
    warnings.simplefilter("always")
    from openbb import obb  # triggers registry build
for w in caught:
    if issubclass(w.category, OpenBBWarning) and "Error loading extension" in str(w.message):
        print(f"degraded provider: {w.message}")
# if you need the hard failure, run with DEBUG_MODE=1 and catch LoadingError at startup

Prevention

When it happens

Trigger: Installing a broken or incompatible provider package (e.g. openbb-yfinance built against an older openbb_core API), a provider package whose module raises on import/entry-point load, or mixed versions after a partial 'pip install -U openbb' that upgrades core but not the provider extensions. Enable DEBUG_MODE=1 to get the LoadingError plus full traceback instead of the warning.

Common situations: Version mismatch between openbb_core and provider extensions after upgrade; a custom in-house provider whose entry point 'openbb_core_extension' or 'openbb_provider_extension' is misdeclared; corrupt virtualenv after upgrading the platform in place.

Related errors


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

Appendix: source

Thrown at openbb_platform/core/openbb_core/provider/registry.py:50


class RegistryLoader:
    """Load providers from entry points."""

    @staticmethod
    @lru_cache
    def from_extensions() -> Registry:
        """Load providers from entry points."""
        registry = Registry()

        for name, entry in ExtensionLoader().provider_objects.items():  # type: ignore[attr-defined]
            try:
                registry.include_provider(provider=entry)
            except Exception as e:
                msg = f"Error loading extension: {name}\n"
                if Env().DEBUG_MODE:
                    traceback.print_exception(type(e), e, e.__traceback__)
                    raise LoadingError(msg + f"\033[91m{e}\033[0m") from e
                warnings.warn(
                    message=msg,
                    category=OpenBBWarning,
                )
        return registry

View on GitHub (pinned to 3e071fcc2c)