{"record":{"id":"776b50b6d1d83229","repo":"huggingface/candle","slug":"conv-block-is-not-supported","errorCode":null,"errorMessage":"conv-block is not supported","messagePattern":"conv-block is not supported","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"candle-transformers/src/models/mimi/transformer.rs","lineNumber":481,"sourceCode":"}\n\n#[derive(Debug, Clone)]\npub struct StreamingTransformerLayer {\n    self_attn: StreamingMultiheadAttention,\n    mlp: Mlp,\n    norm1: Norm,\n    norm2: Norm,\n    layer_scale_1: Option<LayerScale>,\n    layer_scale_2: Option<LayerScale>,\n    cross_attn: Option<(candle_nn::LayerNorm, StreamingMultiheadCrossAttention)>,\n    norm_first: bool,\n    span: tracing::Span,\n}\n\nimpl StreamingTransformerLayer {\n    pub fn new(rope: &Option<Arc<RotaryEmbedding>>, cfg: &Config, vb: VarBuilder) -> Result<Self> {\n        if cfg.use_conv_block {\n            candle::bail!(\"conv-block is not supported\")\n        }\n        let d_model = cfg.d_model;\n        let mlp = Mlp::new(cfg, vb.clone())?;\n        let (norm1, norm2) = match cfg.norm {\n            super::NormType::LayerNorm => {\n                let norm1 = candle_nn::layer_norm(d_model, 1e-5, vb.pp(\"input_layernorm\"))?;\n                let norm2 =\n                    candle_nn::layer_norm(d_model, 1e-5, vb.pp(\"post_attention_layernorm\"))?;\n                (Norm::LayerNorm(norm1), Norm::LayerNorm(norm2))\n            }\n            super::NormType::RmsNorm => {\n                let norm1 = RmsNorm::new(d_model, 1e-8, vb.pp(\"input_rmsnorm\"))?;\n                let norm2 = RmsNorm::new(d_model, 1e-8, vb.pp(\"post_attention_rmsnorm\"))?;\n                (Norm::RmsNorm(norm1), Norm::RmsNorm(norm2))\n            }\n        };\n        let layer_scale_1 = match cfg.layer_scale {\n            None => None,","sourceCodeStart":463,"sourceCodeEnd":499,"githubUrl":"https://github.com/huggingface/candle/blob/d5fee525bfde3273eb7c9b75fd2bc4937be867ca/candle-transformers/src/models/mimi/transformer.rs#L463-L499","documentation":"StreamingTransformerLayer::new rejects configs that enable the convolutional block (cfg.use_conv_block). The candle mimi transformer only implements LayerNorm/MLP layers without the extra conv branch present in some reference architectures.","triggerScenarios":"Building StreamingTransformerLayer with a Config where use_conv_block is true, typically imported from a mimi/Moshi config that enables conv blocks.","commonSituations":"Copying a config from the reference implementation with \"use_conv_block\": true; a checkpoint trained with conv-block layers.","solutions":["Set use_conv_block to false in the transformer Config","Use a checkpoint/config without conv blocks","Add conv-block support to candle's mimi transformer if required"],"exampleFix":"// before\nlet cfg = Config { use_conv_block: true, ..base };\nStreamingTransformerLayer::new(&rope, &cfg, vb)?; // bails\n// after\nlet cfg = Config { use_conv_block: false, ..base };\nStreamingTransformerLayer::new(&rope, &cfg, vb)?;","handlingStrategy":"validation","validationCode":"if cfg.use_conv_block {\n    return Err(anyhow::anyhow!(\"conv-block layers are unsupported in candle mimi\"));\n}\nlet layer = StreamingTransformerLayer::new(&rope, &cfg, vb)?;","typeGuard":"fn supports_layer(cfg: &Config) -> bool { !cfg.use_conv_block }","tryCatchPattern":"let layer = StreamingTransformerLayer::new(&rope, &cfg, vb)\n    .map_err(|e| if e.to_string().contains(\"conv-block is not supported\") {\n        anyhow::anyhow!(\"set use_conv_block = false in the transformer config\")\n    } else { e.into() })?;","preventionTips":["Force use_conv_block = false when importing Moshi configs","Validate the whole transformer Config before building layers","Choose checkpoints trained without conv-block layers"],"tags":["rust","candle","mimi","transformer","unsupported-config"],"backgroundTag":"unsupported-model-config","analyzedSha":"d5fee525bfde3273eb7c9b75fd2bc4937be867ca","analyzedAt":"2026-09-02T00:15:47.023Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-09T06:17:21.866Z"}