HKUDS/DeepTutor · error · RuntimeError

The active LLM transport is not supported by PageIndex OSS i

Error message

The active LLM transport is not supported by PageIndex OSS indexing.

What it means

resolve_oss_sdk_config maps the active provider backend to a PageIndex SDK model prefix, and only anthropic, azure_openai, and openai_compat backends are supported. Any other backend yields prefix=None and this RuntimeError.

Source

Thrown at deeptutor/services/rag/pipelines/pageindex/client.py:68

        in {
            "openai_codex",
            "github_copilot",
            "codebuddy",
        }
    ):
        raise RuntimeError(
            "PageIndex OSS indexing needs an API-key or local LLM profile; "
            "the active OAuth-only provider cannot be used."
        )

    resolved_model = strip_provider_prefix(model, spec)
    prefix = {
        "anthropic": "anthropic",
        "azure_openai": "azure",
        "openai_compat": "openai",
    }.get(spec.backend)
    if prefix is None:
        raise RuntimeError("The active LLM transport is not supported by PageIndex OSS indexing.")

    sdk_model = _prefixed_model(prefix, resolved_model)
    backend: dict[str, Any] = {}
    api_key = str(getattr(cfg, "api_key", "") or "").strip()
    base_url = str(getattr(cfg, "base_url", "") or "").strip()
    api_version = str(getattr(cfg, "api_version", "") or "").strip()
    headers = getattr(cfg, "extra_headers", None)

    if spec.backend == "openai_compat":
        # PageIndex treats ``openai/...`` as the OpenAI-compatible fast path;
        # this also preserves gateway model ids such as anthropic/claude-*.
        backend["api_key"] = api_key or "sk-no-key-required"
    elif api_key:
        backend["api_key"] = api_key

    if base_url:
        backend["api_base"] = base_url
    if api_version and spec.backend != "openai_compat":

View on GitHub (pinned to 3e82f13042)

Solutions

  1. Switch the active LLM to an openai_compat binding pointed at your provider's OpenAI-compatible endpoint — most gateways expose one.
  2. If your provider is genuinely Anthropic/Azure, ensure it's configured under those exact backend types so the prefix maps.
  3. File/extend the prefix map in client.py if you control a custom backend that PageIndex's SDK actually supports.

Example fix

# before
# binding backend: "vertex_ai" -> prefix None -> RuntimeError
await pageindex_client.local(...)

# after
# binding backend: "openai_compat", base_url=https://my-gateway/v1
await pageindex_client.local(...)
Defensive patterns

Strategy: validation

Validate before calling

SUPPORTED = {"anthropic", "azure_openai", "openai_compat"}
spec = find_by_name(active_binding())
assert spec.backend in SUPPORTED, f"backend {spec.backend} unsupported by PageIndex OSS"

Type guard

def backend_supported_by_pageindex(spec) -> bool:
    return spec.backend in {"anthropic", "azure_openai", "openai_compat"}

Try / catch

try:
    cfg = resolve_oss_sdk_config()
except RuntimeError as e:
    if "not supported" in str(e):
        configure_openai_compat_gateway(provider_base_url)
        cfg = resolve_oss_sdk_config()
    else:
        raise

Prevention

When it happens

Trigger: Active LLM binding resolves to a backend outside the supported set (e.g., a newly added or exotic provider backend) when list_pipelines/local/_pageindex_oss_preflight resolve OSS SDK config.

Common situations: Adding a custom provider backend to the catalog, using a Google/Bedrock-style binding, or a version change that renamed backends — the provider works for chat but is unmapped for PageIndex OSS.

Related errors


AI-assisted analysis of HKUDS/DeepTutor@3e82f13042 (2026-08-27). Data as JSON: /api/errors/da0c621f6171b105. Report an issue: GitHub.