HKUDS/nanobot · error · RuntimeError

validated Azure provider setup is missing api_base

Error message

validated Azure provider setup is missing api_base

What it means

Internal invariant check in _make_provider_core: the backend resolved to azure_openai, but the already-validated provider setup somehow lacks api_base — meaning validation in _resolve_provider_setup was bypassed or the setup object was constructed inconsistently. This is a defensive programmer-error guard, not an expected user-facing condition; it indicates the AzureProvider branch is about to build a client with no endpoint.

Solutions

  1. Trace how the provider setup reached make_provider without passing through validate_provider_setup
  2. Re-run make_provider so _resolve_provider_setup validation executes before client construction
  3. Report as a bug if reproducible with a config that passes validate_provider_setup
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at nanobot/providers/factory.py:190 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of HKUDS/nanobot@42f37dc4c0 (2026-08-26). Data as JSON: /api/errors/226649de21808093. Report an issue: GitHub.

Appendix: source

Thrown at nanobot/providers/factory.py:190

            default_model=model,
            proxy=getattr(p, "proxy", None) if p else None,
            extra_body=p.extra_body if p else None,
            provider_name=provider_name,
        )
    elif backend == "xai_grok":
        from nanobot.providers.xai_grok_provider import XAIGrokProvider

        provider = XAIGrokProvider(
            default_model=model,
            proxy=getattr(p, "proxy", None) if p else None,
            extra_body=p.extra_body if p else None,
            provider_name=provider_name,
        )
    elif backend == "azure_openai":
        from nanobot.providers.azure_openai_provider import AzureOpenAIProvider

        if p is None or p.api_base is None:
            raise RuntimeError("validated Azure provider setup is missing api_base")
        provider = AzureOpenAIProvider(
            api_key=p.api_key or "",
            api_base=p.api_base,
            default_model=model,
            provider_name=provider_name,
        )
    elif backend == "github_copilot":
        from nanobot.providers.github_copilot_provider import GitHubCopilotProvider

        provider = GitHubCopilotProvider(default_model=model, provider_name=provider_name)
    elif backend == "anthropic":
        from nanobot.providers.anthropic_provider import AnthropicProvider

        provider = AnthropicProvider(
            api_key=p.api_key if p else None,
            api_base=config.get_api_base(model, preset=preset),
            default_model=model,
            extra_headers=_provider_extra_headers(spec, p),

View on GitHub (pinned to 42f37dc4c0)