{"record":{"id":"7978a9f71dca6772","repo":"sgl-project/sglang","slug":"unknown-forward-method-forward-method","errorCode":null,"errorMessage":"Unknown forward method: {forward_method}","messagePattern":"Unknown forward method: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/models/sarvam_moe.py","lineNumber":817,"sourceCode":"            attn_output = self.attn_mqa(\n                q_nope_out,\n                k_nope,\n                k_nope,\n                forward_batch,\n                q_rope=q_pe,\n                k_rope=k_pe,\n            )\n        elif forward_method == AttnForwardMethod.MLA_CONCAT_ROPE:\n            q = torch.cat([q_nope_out, q_pe], dim=-1)\n            k = torch.cat([k_nope, k_pe], dim=-1)\n            attn_output = self.attn_mqa(\n                q,\n                k,\n                k_nope,\n                forward_batch,\n            )\n        else:\n            raise ValueError(f\"Unknown forward method: {forward_method}\")\n        attn_output = attn_output.view(-1, self.num_local_heads, self.kv_lora_rank)\n\n        attn_bmm_output = self._maybe_fp8_bmm(\n            attn_output.transpose(0, 1), self.w_vc, zero_allocator\n        )\n        attn_bmm_output = attn_bmm_output.transpose(0, 1).flatten(1, 2)\n\n        output, _ = self.o_proj(attn_bmm_output)\n        return output\n\n    def forward_prepare(\n        self,\n        positions: torch.Tensor,\n        hidden_states: torch.Tensor,\n        forward_batch: ForwardBatch,\n        zero_allocator: Optional[BumpAllocator] = None,\n        llama_4_scaling: Optional[torch.Tensor] = None,\n    ) -> Tuple[Optional[torch.Tensor], ForwardBatch, Optional[Tuple]]:","sourceCodeStart":799,"sourceCodeEnd":835,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/models/sarvam_moe.py#L799-L835","documentation":"Raised by SarvamMoE attention forward when the attention layer is dispatched with a forward method name that matches none of the supported branches (e.g. full/MLA-style paths selected by forward_method). The model implementation only implements a fixed set of forward paths, so any other string is a programming or configuration error rather than a runtime data problem.","triggerScenarios":"Calling the SarvamMoE attention module's forward with a forward_method value not recognized by the if/elif chain in python/sglang/srt/models/sarvam_moe.py:817 (e.g. a new backend name passed from model config or a custom patch that renames methods).","commonSituations":"Using an unsupported attention backend with sarvam-moe, mixing model code versions where a newer scheduler passes a method name the installed model file doesn't know, or typos in custom forks that add a forward method selection string.","solutions":["Check the server/attention backend flags (--attention-backend) and switch to one supported by sarvam-moe","Update sglang to a version where sarvam_moe.py supports the forward method being requested","If running a fork, inspect the if/elif chain above line 817 and add a branch for the missing forward_method"],"exampleFix":"# before\npython -m sglang.launch_server --model sarvam-moe --attention-backend some_new_backend\n# after\npython -m sglang.launch_server --model sarvam-moe --attention-backend fa3","handlingStrategy":"validation","validationCode":"from sglang.srt.models.sarvam_moe import SUPPORTED  # if exposed; otherwise read source\n# before launch: assert chosen attention backend is in the model's supported set\nassert attention_backend in {\"fa3\", \"flashinfer\", \"triton\", \"torch_native\"}, attention_backend","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pin sglang version and launch scripts together","Check server logs at startup for which forward path the model selected"],"tags":["sarvam-moe","attention-backend","config"],"backgroundTag":"unsupported-backend-selection","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}