{"record":{"id":"f3d713ced42a981b","repo":"sgl-project/sglang","slug":"unsupported-runner-backend-s","errorCode":null,"errorMessage":"Unsupported runner backend: %s","messagePattern":"Unsupported runner backend: (.+?)","errorType":"exception","errorClass":"NotImplementedError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/layers/quantization/fp8.py","lineNumber":2623,"sourceCode":"                ),\n                output1_scales_gate_scalar=(\n                    getattr(layer, \"output1_scales_gate_scalar\", None)\n                    if not self.block_quant\n                    else None\n                ),\n                output2_scales_scalar=(\n                    getattr(layer, \"output2_scales_scalar\", None)\n                    if not self.block_quant\n                    else None\n                ),\n                activation_type=activation_type,\n            )\n        elif self.runner.runner_backend.is_hpc_ops():\n            quant_info = self._get_hpc_ops_quant_info(layer)\n        elif self.runner.runner_backend.is_triton():\n            quant_info = self.get_triton_quant_info(layer)\n        else:\n            raise NotImplementedError(\n                \"Unsupported runner backend: %s\" % self.runner.runner_backend\n            )\n\n        return self.runner.run(dispatch_output, quant_info)\n\n    def _ensure_cutlass_buffers_initialized(self, layer: Module) -> None:\n        if getattr(self, \"_cutlass_buffers_ready\", False):\n            return\n\n        device = layer.w13_weight.device\n        num_experts = layer.w13_weight.shape[0]\n        hidden_size = layer.w2_weight.shape[1]\n        intermediate_size_per_partition = layer.intermediate_size_per_partition\n        w13_num_shards = 2 if layer.moe_runner_config.is_gated else 1\n\n        self.ab_strides1 = torch.full(\n            (num_experts,), hidden_size, device=device, dtype=torch.int64\n        )","sourceCodeStart":2605,"sourceCodeEnd":2641,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/layers/quantization/fp8.py#L2605-L2641","documentation":"Fp8MoEMethod.apply dispatches on the runner backend (deep_gemm, flashinfer_*, triton, hpc_ops, etc.); if runner.runner_backend matches none of the recognized branches, it raises NotImplementedError as a defensive catch-all. Seeing it means a backend enum value exists that the dispatcher wasn't updated to handle.","triggerScenarios":"Calling the FP8 MoE apply path with a new/renamed MoeRunnerBackend enum value not covered by the if/elif chain — usually after a partial upgrade, custom backend additions, or a mismatched enum import.","commonSituations":"Custom forks adding a runner backend without updating fp8.py dispatch; version skew between sglang packages; passing a raw string where an enum is expected.","solutions":["Update SGLang so the dispatcher in fp8.py handles your runner backend (add an elif branch)","Use a standard --moe-runner-backend value (auto, triton, deep_gemm, flashinfer_trtllm, hpc_ops)","Reinstall/align sglang versions so enums and dispatch code come from the same release"],"exampleFix":"# before\n--moe-runner-backend my_custom_backend\n# after\n--moe-runner-backend auto","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try:\n    out = method.apply(layer, dispatch_output)\nexcept NotImplementedError as e:\n    logger.error(\"runner backend %s unsupported by this fp8 dispatcher; falling back\", method.runner.runner_backend)\n    raise SystemExit(\"use a standard --moe-runner-backend\") from e","preventionTips":["Use only documented moe-runner-backend values","Keep custom fork dispatchers in sync with new backend enums","Align sglang package versions across the stack"],"tags":["quantization","moe","dispatch","version-skew"],"backgroundTag":"unsupported-backend-enum","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}