From f790674ad8a59ddff20c5547cbf004ece8c24445 Mon Sep 17 00:00:00 2001 From: ybyang <10629930+whybeyoung@users.noreply.github.com> Date: Wed, 3 Jun 2026 15:44:28 +0800 Subject: [PATCH] fix(moe): avoid unpacking None from masked deep_gemm without overlap when sbo enabled (#26839) --- python/sglang/srt/layers/moe/moe_runner/deep_gemm.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/python/sglang/srt/layers/moe/moe_runner/deep_gemm.py b/python/sglang/srt/layers/moe/moe_runner/deep_gemm.py index c3ef55650..a814b5d23 100644 --- a/python/sglang/srt/layers/moe/moe_runner/deep_gemm.py +++ b/python/sglang/srt/layers/moe/moe_runner/deep_gemm.py @@ -486,7 +486,9 @@ class DeepGemmRunnerCore(MoeRunnerCore): **gemm_overlap_args_dict, ) meta_overlap_args = running_state.get("meta_overlap_args", None) - if meta_overlap_args is not None: + # Returns (block_m, threshold) only with down-gemm overlap, else None; + # meta_overlap_args may be set without overlap, so guard the unpack. + if meta_overlap_args is not None and deep_gemm_return_value is not None: block_m, threshold = deep_gemm_return_value meta_overlap_args["block_m"] = block_m meta_overlap_args["threshold"] = threshold