BerriAI/litellm · error · RuntimeError

Cannot retry A2A localhost URL fix: the client was not creat

Error message

Cannot retry A2A localhost URL fix: the client was not created by create_a2a_client, so no LiteLLM httpx client is attached.

What it means

Error "Cannot retry A2A localhost URL fix: the client was not created by create_a2a_client, so no LiteLLM httpx client is attached." thrown in BerriAI/litellm.

Source

Thrown at litellm/a2a_protocol/exception_mapping_utils.py:210

    request_type: Final = "streaming " if is_streaming else ""
    verbose_logger.warning(
        "A2A %srequest to '%s' failed: %s. Agent card contains localhost/internal URL. Retrying with base_url '%s'.",
        request_type,
        error.localhost_url,
        error.original_error,
        error.base_url,
    )

    # Fix the agent card URL
    set_agent_card_url(agent_card, error.base_url)

    # Reuse the httpx client and call context LiteLLM attached at creation, since the
    # context carries this agent's trace-id/auth headers. Only clients built by
    # ``create_a2a_client`` have them; an externally-supplied client cannot be retried.
    httpx_client: Final = getattr(a2a_client, "_litellm_httpx_client", None)
    if httpx_client is None:
        raise RuntimeError(
            "Cannot retry A2A localhost URL fix: the client was not created by "
            "create_a2a_client, so no LiteLLM httpx client is attached."
        )

    new_client: Final = await create_client(  # pyright: ignore[reportOptionalCall]
        agent_card,
        client_config=ClientConfig(  # pyright: ignore[reportOptionalCall]
            httpx_client=httpx_client,
            streaming=is_streaming,
        ),
    )
    new_client._litellm_httpx_client = httpx_client
    new_client._litellm_call_context = getattr(  # pyright: ignore[reportAttributeAccessIssue]  # LiteLLM-owned stash
        a2a_client, "_litellm_call_context", None
    )
    new_client._litellm_agent_card = agent_card
    return new_client

View on GitHub (pinned to 6c2dcb801b)

Solutions

  1. Create the A2A client with litellm's create_a2a_client so an httpx client is attached and the localhost retry fix can run.

When it happens

Trigger: Thrown at litellm/a2a_protocol/exception_mapping_utils.py:210 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of BerriAI/litellm@6c2dcb801b (2026-08-15). Data as JSON: /api/errors/7388ac8df0aa10ba. Report an issue: GitHub.