{"record":{"id":"b1eae779957fbb8b","repo":"sgl-project/sglang","slug":"hisparse-destination-device-indices-are-not-suppor","errorCode":null,"errorMessage":"HiSparse destination device indices are not supported by PD DCP relayout","messagePattern":"HiSparse destination device indices are not supported by PD DCP relayout","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/disaggregation/mooncake/conn.py","lineNumber":1676,"sourceCode":"                                self.sync_status_to_decode_endpoint(\n                                    req.endpoint,\n                                    req.dst_port,\n                                    req.room,\n                                    KVPoll.Failed,\n                                    prefill_unique_rank,\n                                )\n                                break\n\n                        target_rank_registration_info: KVArgsRegisterInfo = (\n                            self.decode_kv_args_table[req.mooncake_session_id]\n                        )\n                        is_dcp_transfer = (\n                            target_rank_registration_info.requires_dcp_relayout\n                        )\n                        chunked_dst_device_kv_indice = None\n                        if is_dcp_transfer:\n                            if req.dst_device_kv_indices is not None:\n                                raise RuntimeError(\n                                    \"HiSparse destination device indices are not \"\n                                    \"supported by PD DCP relayout\"\n                                )\n                            chunked_dst_kv_indice = req.dst_kv_indices\n                        else:\n                            chunked_dst_kv_indice = req.dst_kv_indices[\n                                kv_chunk.index_slice\n                            ]\n                            if req.dst_device_kv_indices is not None:\n                                chunked_dst_device_kv_indice = (\n                                    req.dst_device_kv_indices[kv_chunk.index_slice]\n                                )\n\n                            # NOTE: This is temporarily a workaround to deal with the case where the prefill_kv_indices\n                            # is mismatched with the dst_kv_indices when page size > 1, this should never happen.\n                            if len(chunked_dst_kv_indice) < len(\n                                kv_chunk.prefill_kv_indices\n                            ):","sourceCodeStart":1658,"sourceCodeEnd":1694,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/disaggregation/mooncake/conn.py#L1658-L1694","documentation":"When the target rank requires DCP (DeepSeek sparse cache) relayout, the relayout derives destination indices from dst_kv_indices only; per-request destination device indices cannot be honored and the transfer is rejected.","triggerScenarios":"transfer_worker handling a request with dst_device_kv_indices != None where target_rank_registration_info.requires_dcp_relayout is true.","commonSituations":"Mixing HiCache device-resident requests with a decode side that performs DCP relayout — an unsupported combination.","solutions":["Disable the feature producing dst_device_kv_indices (e.g. hicache device placement for these requests)","Disable DCP relayout on the decode side so the normal path runs","Route such requests to a non-DCP decode pool"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"if target_registration.requires_dcp_relayout:\n    req.dst_device_kv_indices = None  # route via dst_kv_indices only","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Segment workloads so hicache-device requests never target DCP-relayout decoders"],"tags":["pd-disagg","dcp-relayout","hicache","kv-cache"],"backgroundTag":"unsupported-feature-combination","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}