{"record":{"id":"69acd583d4797e1d","repo":"sgl-project/sglang","slug":"deepep-v2-moe-has-not-implemented-the-tbo-sbo-over","errorCode":null,"errorMessage":"DeepEP v2 MoE has not implemented the TBO/SBO overlap hooks yet. Disable --enable-two-batch-overlap and --enable-single-batch-overlap when using --moe-a2a-backend deepep_v2.","messagePattern":"DeepEP v2 MoE has not implemented the TBO/SBO overlap hooks yet\\. Disable --enable-two-batch-overlap and --enable-single-batch-overlap when using --moe-a2a-backend deepep_v2\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/server_args.py","lineNumber":7724,"sourceCode":"                )\n            # ElasticBuffer requires CUMEM, but not NVLS or its preallocation.\n            os.environ.setdefault(\"NCCL_CUMEM_ENABLE\", \"1\")\n            # Respect model-level runner declarations before resolving auto.\n            resolved_runner = resolved_view(self).moe_runner_backend\n            if resolved_runner == \"auto\":\n                self._declare(\"_handle_a2a_moe\", moe_runner_backend=\"deep_gemm\")\n                logger.warning(\n                    \"DeepEP v2 MoE: resolved --moe-runner-backend auto -> deep_gemm.\"\n                )\n            elif resolved_runner != \"deep_gemm\":\n                raise ValueError(\n                    \"DeepEP v2 MoE currently supports only \"\n                    f\"--moe-runner-backend deep_gemm. Got {resolved_runner!r}. \"\n                    \"Add a runner adapter before enabling DeepEP v2 with other \"\n                    \"MoE runners.\"\n                )\n            if cfg.enable_two_batch_overlap or cfg.enable_single_batch_overlap:\n                raise ValueError(\n                    \"DeepEP v2 MoE has not implemented the TBO/SBO overlap hooks yet. \"\n                    \"Disable --enable-two-batch-overlap and \"\n                    \"--enable-single-batch-overlap when using --moe-a2a-backend deepep_v2.\"\n                )\n            if cfg.enforce_shared_experts_fusion:\n                raise ValueError(\n                    \"DeepEP v2 MoE has not validated fused shared experts yet. \"\n                    \"Remove --enforce-shared-experts-fusion when using \"\n                    \"--moe-a2a-backend deepep_v2.\"\n                )\n            # Prefill reads host counts and is not graph-capturable.\n            self._declare(\n                \"_handle_a2a_moe\",\n                cuda_graph_config=with_phase(\n                    cfg.cuda_graph_config, Phase.PREFILL, backend=Backend.DISABLED\n                ),\n            )\n            logger.warning(","sourceCodeStart":7706,"sourceCodeEnd":7742,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/server_args.py#L7706-L7742","documentation":"Raised when deepep_v2 is enabled together with --enable-two-batch-overlap (TBO) or --enable-single-batch-overlap (SBO). DeepEP v2 has not implemented the overlap hooks that TBO/SBO require, so the combination cannot run.","triggerScenarios":"Launching with --moe-a2a-backend deepep_v2 and either --enable-two-batch-overlap or --enable-single-batch-overlap in the resolved config.","commonSituations":"Reusing a prefill-throughput-tuned config that enables TBO, then switching the a2a backend to deepep_v2; enabling SBO for latency while testing the v2 path.","solutions":["Remove --enable-two-batch-overlap and --enable-single-batch-overlap from the launch flags","Keep TBO/SBO and stay on --moe-a2a-backend deepep until v2 overlap hooks land"],"exampleFix":"# before\n--moe-a2a-backend deepep_v2 --enable-two-batch-overlap\n# after\n--moe-a2a-backend deepep_v2","handlingStrategy":"validation","validationCode":"if a2a_backend == \"deepep_v2\":\n    flags.discard(\"--enable-two-batch-overlap\")\n    flags.discard(\"--enable-single-batch-overlap\")","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep TBO/SBO flags in a separate prefill-tuned profile not mixed with v2 backend flags","Smoke-test launch args with --help/dry-run before deploying"],"tags":["deepep","tbo","sbo","overlap","moe","server-args"],"backgroundTag":"unsupported-configuration-combo","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}