sgl-project/sglang · error · ValueError
PD decode DCP currently requires chunk cache; --disaggregati
Error message
PD decode DCP currently requires chunk cache; --disaggregation-decode-enable-radix-cache is not supported.
What it means
PD decode DCP currently requires chunk-cache semantics on the decode side, so enabling --disaggregation-decode-enable-radix-cache alongside DCP is rejected. DCP's KV layout/protection assumes chunk cache behavior.
Source
Thrown at python/sglang/srt/arg_groups/pd_disaggregation_hook.py:64
"use the same DCP layout, but it usually adds communication "
"overhead without improving prefill performance."
)
if cfg.disaggregation_mode == "decode" and cfg.dcp_size > 1:
# Fake transfer moves no KV and is only used for synthetic decode
# benchmarks, so it does not need the DCP relayout from Mooncake/NIXL.
if cfg.disaggregation_transfer_backend not in (
"mooncake",
"nixl",
"fake",
):
raise ValueError(
"PD decode DCP requires --disaggregation-transfer-backend "
"mooncake, nixl, or fake for synthetic benchmarking, got "
f"{cfg.disaggregation_transfer_backend!r}."
)
if cfg.disaggregation_decode_enable_radix_cache:
raise ValueError(
"PD decode DCP currently requires chunk cache; "
"--disaggregation-decode-enable-radix-cache is not supported."
)
if cfg.enable_hierarchical_cache:
raise ValueError(
"PD decode DCP currently requires chunk cache; "
"--enable-hierarchical-cache is not supported."
)
if cfg.disaggregation_mode == "decode":
if cfg.disaggregation_decode_enable_radix_cache:
if cfg.enable_hisparse:
raise ValueError(
"--disaggregation-decode-enable-radix-cache is incompatible "
"with --enable-hisparse"
)
if cfg.disaggregation_transfer_backend == "fake":
raise ValueError(View on GitHub (pinned to 0132848349)
Solutions
- Remove --disaggregation-decode-enable-radix-cache when using PD decode DCP
- If decode radix cache is required, disable the DCP feature
Example fix
# before <DCP flags> --disaggregation-decode-enable-radix-cache # after <DCP flags>
Defensive patterns
Strategy: validation
Validate before calling
if dcp_enabled:
cfg.disaggregation_decode_enable_radix_cache = False Prevention
- Treat DCP as mutually exclusive with decode radix cache in config generation
When it happens
Trigger: PD decode DCP enabled together with --disaggregation-decode-enable-radix-cache.
Common situations: Tuning decode-side cache reuse for prefix-heavy workloads on a disaggregated deployment and enabling radix cache without realizing DCP forbids it.
Related errors
- PD decode DCP currently requires chunk cache; --enable-hiera
- --disaggregation-decode-enable-radix-cache is incompatible w
- --disaggregation-decode-enable-radix-cache is incompatible w
- --disaggregation-decode-enable-radix-cache is incompatible w
- PD decode DCP requires --disaggregation-transfer-backend moo
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/d2a24b9553964af6.
Report an issue: GitHub.