{"record":{"id":"dc7bfcdbbd701ecc","repo":"sgl-project/sglang","slug":"dflash-requires-explicit-layer-ids-for-aux-hidden-dc7bfc","errorCode":null,"errorMessage":"DFLASH requires explicit layer_ids for aux hidden capture.","messagePattern":"DFLASH requires explicit layer_ids for aux hidden capture\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/models/qwen3_next.py","lineNumber":1285,"sourceCode":"        self.capture_aux_hidden_states = True\n        if layer_ids is None:\n            num_layers = self.config.num_hidden_layers\n            self.model.set_eagle3_layers_to_capture(\n                [\n                    2,\n                    num_layers // 2,\n                    num_layers - 3,\n                ]\n            )  # Specific layers for EAGLE3 support\n        else:\n            self.model.set_eagle3_layers_to_capture([val + 1 for val in layer_ids])\n\n    def set_dflash_layers_to_capture(self, layer_ids: list[int]):\n        if not self.pp_group.is_last_rank:\n            return\n\n        if layer_ids is None:\n            raise ValueError(\n                \"DFLASH requires explicit layer_ids for aux hidden capture.\"\n            )\n\n        self.capture_aux_hidden_states = True\n        self.model.set_dflash_layers_to_capture([val + 1 for val in layer_ids])\n\n\nEntryClass = Qwen3NextForCausalLM\n","sourceCodeStart":1267,"sourceCodeEnd":1294,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/models/qwen3_next.py#L1267-L1294","documentation":"DFLASH aux-hidden capture on Qwen3-Next requires explicit layer ids; None is rejected before enabling capture_aux_hidden_states.","triggerScenarios":"Calling Qwen3NextForCausalLM.set_dflash_layers_to_capture(None) on the last pipeline rank while setting up DFLASH speculative decoding.","commonSituations":"DFLASH enabled without a capture-layer list in server args or speculative config for Qwen3-Next.","solutions":["Set explicit capture layers (--dflash-capture-layers or equivalent)","Ensure the spec-decoding worker computes and forwards layer indices"],"exampleFix":"# before\nmodel.set_dflash_layers_to_capture(None)\n# after\nmodel.set_dflash_layers_to_capture([0, 2, 4])","handlingStrategy":"validation","validationCode":"assert layer_ids, \"DFLASH requires --dflash-capture-layers\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Set explicit capture layer ids in the DFLASH/spec config"],"tags":["dflash","qwen3-next","speculative-decoding"],"backgroundTag":"missing-required-argument","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}