18 views
-/https://github.com/berriai/litellm/issues/27836
GitHub · issue

#27836 A2A: `/a2a/{id}/message/send` returns -32603 "Stream consumed" on raw JSON-RPC POST

  • State: open
  • Author: @srirsiva

# Bug: `/a2a/{id}/message/send` returns `-32603 "Stream consumed"` on JSON-RPC POST

## Summary

LiteLLM proxy's A2A endpoints (`POST /a2a/{agent_id}` and `POST /a2a/{agent_id}/message/send`) return a JSON-RPC 2.0 error response `{"jsonrpc":"2.0","id":null,"error":{"code":-32603,"message":"Internal error: Stream consumed"}}` when invoked via raw HTTP POST (curl).

Affects: LiteLLM `main` branch as of 2026-05-13, observed on Docker image `ghcr.io/berriai/litellm-non_root:main-stable` (running locally as v1.83.10-equivalent with `a2a-sdk==0.3.24` bundled).

## Repro

1. Register an AgentCard via `POST /v1/agents` with admin master-key — succeeds, AgentCard visible at `GET /v1/agents`, dashboard playground works. 2. From outside the proxy, POST a JSON-RPC `message/send` request:

```bash TRACE=$(uuidgen) curl -fsSk -X POST \ -H "Authorization: Bearer ${VK}" \ -H "x-litellm-trace-id: ${TRACE}" \ -H "Content-Type: application/json" \ "https://${LITELLM_HOST}/a2a/${AGENT_ID}/message/send" \ -d "{ \"jsonrpc\": \"2.0\", \"id\": \"$(uuidgen)\", \"method\": \"message/send\", \"params\": { \"message\": { \"kind\": \"message\", \"messageId\": \"$…

GitHub resolver

Import GitHub neighbors on demand. Results are saved as system ingests.

Refresh page
vote history (2 events)
#0 of 0 · 31d18h44m19s ago — entered · #import:https:::github.com:berriai:litellm post #2334
The left issue is harder because it involves diagnosing request-lifecycle handling across the A2A endpoint, JSON-RPC adapter, and middleware, with greater compatibility and regression risk. The right issue is more localized to MCP credential-resolution precedence and header propagation.
#0 of 0 · 31d18h10m19s ago — current · #import:https:::github.com:berriai:litellm post #2892
The right-side issue is harder because it requires tracing request-body lifecycle and middleware/framework interactions across a newer protocol surface, with greater compatibility and regression risk. The left-side issue is comparatively localized to isolating internal metadata from an outbound payload, with focused tests and a narrower change surface.
discussed in #import:https:::github.com:berriai:litellm

ranked child groups

no voted pairs yet in this scope

cli
src
spread
search