AI API receipt · vllm-project/vllm

SamplingParams accepts float for int fields, then LLM.generate() hangs on an EngineCore msgspec decode error

vllm-project/vllm#60998 · upstream bug reproduced by running the issue's own reproduction

✓ Badgr rejects this response

generate() with max_tokens=2.5 never returned: the engine logged msgspec.ValidationError and the client got no response and no error (reproduced on vLLM 0.30.0, RTX 4090; capped at 240 s).

Outcome contract verdict: stream ended without a terminal [DONE] or message_stop event. 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.

What the upstream returned (replayed)

The output the bug produces, taken from the issue’s reproduction and fed to Badgr’s validators. Not a live provider call.

(no events: the stream produced nothing)

Badgr receipt

Written by Badgr’s receipt ledger and read back from GET /v1/receipts/replay-vllm-60998-float-max-tokens-hangs.

{
  "request_id": "replay-vllm-60998-float-max-tokens-hangs",
  "status": "failed",
  "endpoint": "/v1/completions",
  "stream": true,
  "failure_stage": "outcome_contract",
  "error_code": "invalid_outcome",
  "error_message": "Response did not satisfy the outcome contract: stream ended without a terminal [DONE] or message_stop event",
  "retryable": true,
  "provider_mode": "replay",
  "routing_decision": "replayed_upstream_output",
  "created_at": "1791679612.988222"
}

Recorded 2026-10-11 in Badgr’s local development environment. Replay cases and verdicts are pinned by backend/test_ai_api_replay_cases.py.

← All AI API receipts