{"record":{"id":"1a27f81e5b5a1da7","repo":"sgl-project/sglang","slug":"short-conv-hybrid-models-zaya1-cca-lfm2-lfm2-m","errorCode":null,"errorMessage":"Short-conv hybrid models (ZAYA1 CCA, LFM2 / LFM2-MoE) are not yet supported on NPU: the conv-state sidecar (ShortConvAttnBackend.conv_state_metadata) has no Ascend implementation. Add an Ascend conv-state backend before serving these models on NPU.","messagePattern":"Short-conv hybrid models \\(ZAYA1 CCA, LFM2 / LFM2-MoE\\) are not yet supported on NPU: the conv-state sidecar \\(ShortConvAttnBackend\\.conv_state_metadata\\) has no Ascend implementation\\. Add an Ascend conv-state backend before serving these models on NPU\\.","errorType":"validation","errorClass":"NotImplementedError","httpStatus":null,"severity":"critical","filePath":"python/sglang/srt/layers/attention/attention_registry.py","lineNumber":473,"sourceCode":"\n            # Short-conv hybrids (ZAYA1 CCA, LFM2 short conv) share a conv-state\n            # sidecar that owns the per-request state plumbing and is invoked by\n            # the model via conv_state_metadata (never as a full-vs-linear\n            # alternative). Other mamba2 models keep the full Mamba2 SSM backend.\n            short_conv_cfgs = (\n                ZayaConfig,\n                Lfm2Config,\n                Lfm2MoeConfig,\n                Lfm2VlConfig,\n            )\n            if isinstance(mamba2_config(runner.model_config), short_conv_cfgs):\n                if is_npu():\n                    # The model conv layers call\n                    # get_attn_backend().conv_state_metadata() unconditionally,\n                    # but the Ascend hybrid/mamba backend has no such method.\n                    # Fail here (before model execution) with a clear message\n                    # rather than an AttributeError deep in the first conv layer.\n                    raise NotImplementedError(\n                        \"Short-conv hybrid models (ZAYA1 CCA, LFM2 / LFM2-MoE) \"\n                        \"are not yet supported on NPU: the conv-state sidecar \"\n                        \"(ShortConvAttnBackend.conv_state_metadata) has no Ascend \"\n                        \"implementation. Add an Ascend conv-state backend before \"\n                        \"serving these models on NPU.\"\n                    )\n                from sglang.srt.layers.attention.hybrid_linear_attn_backend import (\n                    ShortConvHybridAttnBackend,\n                )\n                from sglang.srt.layers.attention.linear.short_conv_backend import (\n                    ShortConvAttnBackend,\n                )\n\n                linear_attn_backend = ShortConvAttnBackend(runner)\n                hybrid_backend_cls = ShortConvHybridAttnBackend\n            else:\n                linear_attn_backend = Mamba2AttnBackend(runner)\n        elif kimi_linear_config(runner.model_config) is not None:","sourceCodeStart":455,"sourceCodeEnd":491,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/layers/attention/attention_registry.py#L455-L491","documentation":"Short-conv hybrid models (ZAYA1 CCA, LFM2, LFM2-MoE) require a conv-state metadata sidecar (ShortConvAttnBackend.conv_state_metadata). On Ascend NPU the hybrid/mamba backend lacks that method, so the registry fails before model execution with NotImplementedError instead of an AttributeError inside the first conv layer.","triggerScenarios":"Serving ZAYA1, LFM2, or LFM2-MoE on an Ascend NPU device (is_npu() true) where the model's conv layers would call get_attn_backend().conv_state_metadata() unconditionally.","commonSituations":"Porting an x86/CUDA deployment of LFM2 to Huawei Ascend hardware before an Ascend conv-state backend exists.","solutions":["Serve these short-conv hybrid models on CUDA hardware instead","Wait for / implement an Ascend conv-state backend (add conv_state_metadata to the Ascend hybrid/mamba backend)","Use a non-short-conv model variant on NPU"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"import torch\nfrom sglang.srt.utils import is_npu\nif is_npu() and model_config.architectures and any(a.startswith((\"ZAYA\", \"LFM\")) for a in model_config.architectures):\n    raise SystemExit(\"short-conv hybrids unsupported on NPU; use CUDA\")","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Check hardware support matrices per model family before migrating fleets to NPU","Add a pre-launch device/model compatibility assertion in deployment tooling"],"tags":["npu","ascend","short-conv","lfm2","zaya1","attention-backend","not-implemented","sglang"],"backgroundTag":"platform-not-supported","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}