{"record":{"id":"bb84112d92e777a3","repo":"OpenBB-finance/OpenBB","slug":"provider-name-not-found-in-the-registry-availa","errorCode":null,"errorMessage":"Provider '{name}' not found in the registry.Available providers: {list(self.registry.providers.keys())}","messagePattern":"Provider '(.+?)' not found in the registry\\.Available providers: (.+?)","errorType":"exception","errorClass":"OpenBBError","httpStatus":null,"severity":"error","filePath":"openbb_platform/core/openbb_core/provider/query_executor.py","lineNumber":23,"sourceCode":"from openbb_core.app.model.abstract.error import OpenBBError\nfrom openbb_core.provider.abstract.fetcher import Fetcher\nfrom openbb_core.provider.abstract.provider import Provider\nfrom openbb_core.provider.registry import Registry, RegistryLoader\nfrom pydantic import SecretStr\n\n\nclass QueryExecutor:\n    \"\"\"Class to execute queries from providers.\"\"\"\n\n    def __init__(self, registry: Registry | None = None) -> None:\n        \"\"\"Initialize the query executor.\"\"\"\n        self.registry = registry or RegistryLoader.from_extensions()\n\n    def get_provider(self, provider_name: str) -> Provider:\n        \"\"\"Get a provider from the registry.\"\"\"\n        name = provider_name.lower()\n        if name not in self.registry.providers:\n            raise OpenBBError(\n                f\"Provider '{name}' not found in the registry.Available providers: {list(self.registry.providers.keys())}\"\n            )\n        return self.registry.providers[name]\n\n    def get_fetcher(self, provider: Provider, model_name: str) -> type[Fetcher]:\n        \"\"\"Get a fetcher from a provider.\"\"\"\n        if model_name not in provider.fetcher_dict:\n            raise OpenBBError(\n                f\"Fetcher not found for model '{model_name}' in provider '{provider.name}'.\"\n            )\n        return provider.fetcher_dict[model_name]\n\n    @staticmethod\n    def filter_credentials(\n        credentials: dict[str, SecretStr] | None,\n        provider: Provider,\n        require_credentials: bool,\n    ) -> dict[str, str]:","sourceCodeStart":5,"sourceCodeEnd":41,"githubUrl":"https://github.com/OpenBB-finance/OpenBB/blob/3e071fcc2cd9f891cac6040ae60296dba76dab46/openbb_platform/core/openbb_core/provider/query_executor.py#L5-L41","documentation":"OpenBBError from QueryExecutor.get_provider: it lowercases the requested provider name and looks it up in the provider registry (built from installed openbb-<provider> packages). If the name is absent - misspelled, or the package simply not installed in this environment - it raises this error listing every registered provider name.","triggerScenarios":"Calling a command with provider='FMP' works (lowercased), but provider='fmpp' or provider='polygon' when openbb-polygon is not installed raises this. Also occurs when a provider package was uninstalled but remains in user defaults, or when running in an environment where only the core is installed.","commonSituations":"Typos in provider names; assuming a provider ships with openbb core (only some do); virtualenv mismatch where the provider was installed in a different environment; defaults referencing a provider removed after an uninstall; case variants like 'BenZinga' are fine but 'benzinga-pro' is not.","solutions":["Pick a provider from the list in the error message (or obb.coverage.providers)","Install the desired provider: pip install openbb-polygon","Fix typos/case in the provider argument or in openbb_settings.json defaults","Verify you are in the same virtualenv/conda env where the provider was installed"],"exampleFix":"# before\nres = obb.equity.price.historical('AAPL', provider='polygon')  # not installed\n\n# after\npip install openbb-polygon\nres = obb.equity.price.historical('AAPL', provider='polygon')","handlingStrategy":"validation","validationCode":"from openbb import obb\n\ndef provider_available(name: str) -> bool:\n    return name.lower() in set(obb.coverage.providers)","typeGuard":"def is_registered_provider(obb, name: str) -> bool:\n    return isinstance(name, str) and name.lower() in set(obb.coverage.providers)","tryCatchPattern":"from openbb_core.app.model.abstract.error import OpenBBError\n\ntry:\n    res = obb.equity.price.historical('AAPL', provider=p)\nexcept OpenBBError as e:\n    if 'not found in the registry' in str(e):\n        p = next(iter(set(obb.coverage.providers) & {'fmp', 'yfinance'}))\n        res = obb.equity.price.historical('AAPL', provider=p)\n    else:\n        raise","preventionTips":["Validate provider names against obb.coverage.providers before requests","Install provider packages in the same env that runs the app","Lowercase provider names in configuration to avoid case surprises"],"tags":["openbb","providers","registry","installation"],"backgroundTag":null,"analyzedSha":"3e071fcc2cd9f891cac6040ae60296dba76dab46","analyzedAt":"2026-08-14T23:40:48.960Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}