AI API receipt · BerriAI/litellm
BerriAI/litellm#45348 · upstream bug as reported in the issue (not re-run)
✓ Badgr rejects this response
Two parallel tool calls streamed; the second one's arguments never arrived.
Outcome contract verdict: tool call arguments are empty. The attempt is recorded as failed (invalid_outcome) instead of a verified success, so it is not billed as a good answer and can fall back to another route.
The output the bug produces, taken from the issue’s reproduction and fed to Badgr’s validators. Not a live provider call.
data: {"choices": [{"index": 0, "delta": {"tool_calls": [{"index": 0, "function": {"arguments": "{\"x\": \"1\"}", "name": "a"}}]}, "finish_reason": null}]}
data: {"choices": [{"index": 0, "delta": {"tool_calls": [{"index": 1, "function": {"arguments": "", "name": "b"}}]}, "finish_reason": null}]}
data: {"choices": [{"index": 0, "delta": {}, "finish_reason": "tool_calls"}]}
data: [DONE]Written by Badgr’s receipt ledger and read back from GET /v1/receipts/replay-litellm-45348-parallel-tool-args-dropped.
{
"request_id": "replay-litellm-45348-parallel-tool-args-dropped",
"status": "failed",
"endpoint": "/v1/chat/completions",
"stream": true,
"failure_stage": "stream_contract",
"error_code": "invalid_outcome",
"error_message": "Stream did not complete a valid response: tool call arguments are empty",
"retryable": true,
"provider_mode": "replay",
"routing_decision": "replayed_upstream_output",
"created_at": "2026-10-09T02:14:36Z"
}Recorded 2026-10-09 in Badgr’s local development environment. Replay cases and verdicts are pinned by backend/test_ai_api_replay_cases.py.
← All AI API receipts