{"record":{"id":"954e76c91b6be4af","repo":"sgl-project/sglang","slug":"cutedsl-mla-backend-can-only-be-used-with-mla-mode","errorCode":null,"errorMessage":"cutedsl_mla backend can only be used with MLA models.","messagePattern":"cutedsl_mla backend can only be used with MLA models\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/layers/attention/attention_registry.py","lineNumber":104,"sourceCode":"\n    return TRTLLMMLABackend(runner)\n\n\n@register_attention_backend(\"tokenspeed_mla\")\ndef create_tokenspeed_mla_backend(runner):\n    if not runner.use_mla_backend:\n        raise ValueError(\"tokenspeed_mla backend can only be used with MLA models.\")\n    from sglang.srt.layers.attention.tokenspeed_mla_backend import (\n        TokenspeedMLABackend,\n    )\n\n    return TokenspeedMLABackend(runner)\n\n\n@register_attention_backend(\"cutedsl_mla\")\ndef create_cutedsl_mla_backend(runner):\n    if not runner.use_mla_backend:\n        raise ValueError(\"cutedsl_mla backend can only be used with MLA models.\")\n    from sglang.srt.layers.attention.cutedsl_mla_backend import CuteDslMLABackend\n\n    return CuteDslMLABackend(runner)\n\n\n@register_attention_backend(\"aiter\")\ndef create_aiter_backend(runner):\n    from sglang.srt.layers.attention.aiter_backend import AiterAttnBackend\n\n    return AiterAttnBackend(runner)\n\n\n@register_attention_backend(\"wave\")\ndef create_wave_backend(runner):\n    from sglang.srt.layers.attention.wave_backend import WaveAttnBackend\n\n    return WaveAttnBackend(runner)\n","sourceCodeStart":86,"sourceCodeEnd":122,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/layers/attention/attention_registry.py#L86-L122","documentation":"The cutedsl_mla attention backend factory only supports MLA models; runner.use_mla_backend must be true. Non-MLA (GQA/MHA) models use different KV layouts and kernels that CuteDslMLABackend cannot execute.","triggerScenarios":"Launching a server with --attention-backend cutedsl_mla (or resolving that backend string) for a non-MLA model architecture, where use_mla_backend is False.","commonSituations":"Forcing the CuTe DSL MLA backend on Llama/Qwen-class models, or a stale launch script from a DeepSeek deployment reused with a different checkpoint.","solutions":["Drop the explicit backend flag and use auto-selection","Use an MLA-based checkpoint (DeepSeek family) with cutedsl_mla"],"exampleFix":"# before\n--attention-backend cutedsl_mla --model llama-3\n# after\n--model llama-3  # auto backend selection","handlingStrategy":"validation","validationCode":"if not model_runner.use_mla_backend and server_args.attention_backend == \"cutedsl_mla\":\n    raise SystemExit(\"cutedsl_mla requires an MLA model\")","typeGuard":"def is_mla_model(runner) -> bool:\n    return bool(getattr(runner, \"use_mla_backend\", False))","tryCatchPattern":null,"preventionTips":["Don't force MLA-only backends on GQA/MHA checkpoints","Automate a smoke launch in CI for each model+backend pair you deploy"],"tags":["attention-backend","cutedsl-mla","mla","model-arch-mismatch","sglang"],"backgroundTag":"backend-model-mismatch","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}