{"record":{"id":"541df1b38230a43d","repo":"sgl-project/sglang","slug":"deepep-moe-is-not-supported-yet-in-step3-model","errorCode":null,"errorMessage":"DeepEP MoE is not supported yet in Step3 model.","messagePattern":"DeepEP MoE is not supported yet in Step3 model\\.","errorType":"validation","errorClass":"NotImplementedError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/models/step3_vl.py","lineNumber":153,"sourceCode":"            num_experts=config.moe_num_experts,\n            top_k=config.moe_top_k,\n            hidden_size=config.hidden_size,\n            intermediate_size=config.moe_intermediate_size,\n            layer_id=layer_id,\n            quant_config=quant_config,\n            prefix=add_prefix(\"experts\", prefix),\n        )\n\n        self.gate = ReplicatedLinear(\n            config.hidden_size,\n            output_size=config.moe_num_experts,\n            bias=False,\n            quant_config=None,\n            prefix=add_prefix(\"gate\", prefix),\n        )\n\n        if get_moe_a2a_backend().is_deepep():\n            raise NotImplementedError(\"DeepEP MoE is not supported yet in Step3 model.\")\n\n    def forward(self, hidden_states: torch.Tensor) -> torch.Tensor:\n        num_tokens, hidden_dim = hidden_states.shape\n        hidden_states = hidden_states.view(-1, hidden_dim)\n\n        router_logits, _ = self.gate(hidden_states)\n        topk_output = self.topk(hidden_states, router_logits)\n        final_hidden_states = self.experts(\n            hidden_states=hidden_states, topk_output=topk_output\n        )\n\n        if self.tp_size > 1:\n            final_hidden_states = tensor_model_parallel_all_reduce(final_hidden_states)\n        return final_hidden_states.view(num_tokens, hidden_dim)\n\n\nclass Step3TextAttention(nn.Module):\n    def __init__(","sourceCodeStart":135,"sourceCodeEnd":171,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/models/step3_vl.py#L135-L171","documentation":"The Step3 MoE gate path explicitly does not implement the DeepEP all-to-all backend; if the server was launched with --moe-a2a-backend deepep, init raises NotImplementedError rather than silently producing wrong routing.","triggerScenarios":"Launching step3/step3-vl with --moe-a2a-backend deepep (get_moe_a2a_backend().is_deepep() true at python/sglang/srt/models/step3_vl.py:153).","commonSituations":"EP scripts copied from DeepSeek deployments that default to DeepEP; enabling deepep via SGLANG_* env vars globally and then launching step3-vl.","solutions":["Remove --moe-a2a-backend deepep (use default or none) for step3-vl","Unset env vars like SGLANG_MOE_A2A_BACKEND before launch","Watch upstream for DeepEP support and update when available"],"exampleFix":"# before\n--moe-a2a-backend deepep --model step3-vl\n# after\n--model step3-vl","handlingStrategy":"fallback","validationCode":"import os\nassert os.environ.get(\"SGLANG_MOE_A2A_BACKEND\", \"\").lower() != \"deepep\", \"step3-vl lacks DeepEP\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Don't share DeepSeek launch scripts with step3-vl; scrub a2a backend flags"],"tags":["step3-vl","deepep","moe-backend"],"backgroundTag":"unsupported-moe-backend","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}