From 557c4825a683d7a955f7ae8f1ec1956360199236 Mon Sep 17 00:00:00 2001 From: Karen Chung Date: Mon, 3 Aug 2026 18:06:31 -0700 Subject: [PATCH] fix(sglang): cherry pick conditional disagg bypass httperror fix Signed-off-by: Karen Chung --- .../dynamo/sglang/request_handlers/llm/decode_handler.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/components/src/dynamo/sglang/request_handlers/llm/decode_handler.py b/components/src/dynamo/sglang/request_handlers/llm/decode_handler.py index 1b24b00394ca..022ddfe654a3 100644 --- a/components/src/dynamo/sglang/request_handlers/llm/decode_handler.py +++ b/components/src/dynamo/sglang/request_handlers/llm/decode_handler.py @@ -15,6 +15,7 @@ from dynamo.common.metadata_upload import MetadataUploader from dynamo.common.multimodal.image_loader import ImageLoader from dynamo.common.utils.engine_response import normalize_finish_reason +from dynamo.llm import HttpError from dynamo.sglang._compat import ( filter_supported_async_generate_kwargs, require_reasoning_kwargs, @@ -46,10 +47,11 @@ def _raise_if_conditional_disagg_bypass(request: Dict[str, Any]) -> None: if BYPASS_REMOTE_PREFILL_ANNOTATION not in (request.get("annotations") or []): return - raise RuntimeError( + raise HttpError( + 400, f"Detected request annotation {BYPASS_REMOTE_PREFILL_ANNOTATION!r}, but " "SGLang backend does not support conditional disaggregation yet. " - "Use vLLM or TensorRT-LLM for conditional disaggregation." + "Use vLLM or TensorRT-LLM for conditional disaggregation.", )