BerriAI/litellm · error · HTTPException

Unsupported protocolVersion '{version}'. Supported versions:

Error message

Unsupported protocolVersion '{version}'. Supported versions: {', '.join(SUPPORTED_A2A_PROTOCOL_VERSIONS)}.

What it means

Validation of an upstream agent card before registration: its protocolVersion is not in SUPPORTED_A2A_PROTOCOL_VERSIONS (0.3/1.0), so LiteLLM cannot speak its dialect and the card is rejected with the supported list embedded.

Source

Thrown at litellm/proxy/agent_endpoints/endpoints.py:64

    PatchAgentRequest,
)
from litellm.types.llms.custom_http import httpxSpecialProvider
from litellm.types.proxy.management_endpoints.common_daily_activity import (
    DailySpendMetadata,
    SpendAnalyticsPaginatedResponse,
)


def _proxy_base_url(http_request: Request) -> str:
    """Return the proxy's public base URL, preferring PROXY_BASE_URL when set."""
    return get_custom_url(str(http_request.base_url), route=None)


def _validate_protocol_version(upstream_card: AgentCard | None) -> None:
    """Reject an agent card pinning an unsupported A2A protocol version."""
    version: Final = upstream_card.get("protocolVersion") if upstream_card else None
    if version is not None and normalize_protocol_version(version) is None:
        raise HTTPException(
            status_code=400,
            detail=(
                f"Unsupported protocolVersion '{version}'. "
                f"Supported versions: {', '.join(SUPPORTED_A2A_PROTOCOL_VERSIONS)}."
            ),
        )


def _build_merged_agent_card(
    upstream_card: AgentCard | None,
    *,
    agent_id: str,
    http_request: Request,
    agent_name: str | None = None,
) -> dict[str, object]:
    """Apply the LiteLLM-fronting merge to ``upstream_card`` for ``agent_id``."""
    proxy_base: Final = _proxy_base_url(http_request)
    _validate_protocol_version(upstream_card)

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Use one of the listed supported A2A protocol versions.

Example fix

protocolVersion='<a supported version>'
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at litellm/proxy/agent_endpoints/endpoints.py:64 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of BerriAI/litellm@77b7c6c40c (2026-08-18). Data as JSON: /api/errors/dccd3c27ba12c661. Report an issue: GitHub.