[Bugfix] Keep client error status in the single-GPU diffusion executor (#8474)

Signed-off-by: Wenbo Ji <36562829+fusheng-ji@users.noreply.github.com>
This commit is contained in:
Wenbo Ji 嵇文博 authored and GitHub committed 2026-10-05 13:09:34 -04:00
1 parent 9146284c16
commit 539c533762
4 files changed
+80 -4

No files matched your search

@@ -1452,3 +1452,27 @@ def test_execute_model_batch_cancellation_preserves_live_peer(monkeypatch, cance
assert pipeline.last_batch is None
finally:
registry.close()
@pytest.mark.core_model
@pytest.mark.cpu
def test_non_step_fallback_keeps_client_error_status():
"""Step mode's full-forward fallback must not drop a request error's 4xx status."""
from vllm_omni.errors import OmniClientError
runner = _make_runner(cache_backend=None, cache_backend_name="none")
runner.execute_model = Mock(side_effect=OmniClientError("bad request option", status_code=400))
request = _make_request()
scheduler_output = SimpleNamespace(
scheduled_new_reqs=[SimpleNamespace(request_id=request.request_id, req=request, diffusion_kv_metadata=None)],
scheduled_cached_reqs=SimpleNamespace(request_ids=[]),
kv_prefetch_job=None,
)
result = DiffusionModelRunner._execute_non_step_requests(runner, scheduler_output)
output = result.get_request_output(request.request_id)
assert output.finished is True
assert output.result.error == "bad request option"
assert output.result.error_status_code == 400
assert output.result.error_type == "BadRequestError"