{"record":{"id":"ea8fdd66e44861ed","repo":"sgl-project/sglang","slug":"disaggregation-decode-enable-radix-cache-is-inco-ea8fdd","errorCode":null,"errorMessage":"--disaggregation-decode-enable-radix-cache is incompatible with --disaggregation-transfer-backend fake","messagePattern":"--disaggregation-decode-enable-radix-cache is incompatible with --disaggregation-transfer-backend fake","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/arg_groups/pd_disaggregation_hook.py","lineNumber":82,"sourceCode":"            raise ValueError(\n                \"PD decode DCP currently requires chunk cache; \"\n                \"--disaggregation-decode-enable-radix-cache is not supported.\"\n            )\n        if cfg.enable_hierarchical_cache:\n            raise ValueError(\n                \"PD decode DCP currently requires chunk cache; \"\n                \"--enable-hierarchical-cache is not supported.\"\n            )\n\n    if cfg.disaggregation_mode == \"decode\":\n        if cfg.disaggregation_decode_enable_radix_cache:\n            if cfg.enable_hisparse:\n                raise ValueError(\n                    \"--disaggregation-decode-enable-radix-cache is incompatible \"\n                    \"with --enable-hisparse\"\n                )\n            if cfg.disaggregation_transfer_backend == \"fake\":\n                raise ValueError(\n                    \"--disaggregation-decode-enable-radix-cache is incompatible \"\n                    \"with --disaggregation-transfer-backend fake\"\n                )\n            if cfg.speculative_algorithm is not None:\n                raise ValueError(\n                    \"--disaggregation-decode-enable-radix-cache is incompatible \"\n                    \"with speculative decoding \"\n                    f\"(--speculative-algorithm {cfg.speculative_algorithm})\"\n                )\n            from sglang.srt.arg_groups.overrides import resolved_view\n\n            if resolved_view(server_args).enable_dp_attention:\n                logger.warning(\n                    \"EXPERIMENTAL: Decode radix cache with DP attention. \"\n                    \"Requires prefix-aware DP rank routing for optimal cache hits.\"\n                )\n            declare_resolution(\n                server_args,","sourceCodeStart":64,"sourceCodeEnd":100,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/arg_groups/pd_disaggregation_hook.py#L64-L100","documentation":"Decode-side radix cache in PD disaggregation does not work with the fake transfer backend, because fake skips real KV transfer so the radix cache would serve unverified state. SGLang rejects the combination at startup.","triggerScenarios":"--disaggregation-mode decode with --disaggregation-decode-enable-radix-cache and --disaggregation-transfer-backend fake.","commonSituations":"Reusing a synthetic benchmarking config (fake backend) while toggling radix cache flags on for a load test.","solutions":["Use a real transfer backend (mooncake/nixl) when radix cache is enabled","Or disable --disaggregation-decode-enable-radix-cache for fake-backend benchmarking"],"exampleFix":"# before\n--disaggregation-mode decode --disaggregation-decode-enable-radix-cache --disaggregation-transfer-backend fake\n# after\n--disaggregation-mode decode --disaggregation-decode-enable-radix-cache --disaggregation-transfer-backend mooncake","handlingStrategy":"validation","validationCode":"if cfg.disaggregation_mode == \"decode\" and cfg.disaggregation_decode_enable_radix_cache:\n    assert cfg.disaggregation_transfer_backend != \"fake\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep benchmarking (fake) configs separate from serving configs"],"tags":["sglang","pd-disaggregation","radix-cache","fake-backend","config-conflict"],"backgroundTag":"feature-incompatibility","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}