{"record":{"id":"a53bd1904ccf0538","repo":"huggingface/candle","slug":"compile-with-features-flash-attn-a53bd1","errorCode":null,"errorMessage":"compile with '--features flash-attn'","messagePattern":"compile with '--features flash-attn'","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"candle-transformers/src/models/helium.rs","lineNumber":149,"sourceCode":"        let rhs = xs.apply(&self.up_proj)?;\n        (lhs * rhs)?.apply(&self.down_proj)\n    }\n}\n\n#[cfg(feature = \"flash-attn\")]\nfn flash_attn(\n    q: &Tensor,\n    k: &Tensor,\n    v: &Tensor,\n    softmax_scale: f32,\n    causal: bool,\n) -> Result<Tensor> {\n    candle_flash_attn::flash_attn(q, k, v, softmax_scale, causal)\n}\n\n#[cfg(not(feature = \"flash-attn\"))]\nfn flash_attn(_: &Tensor, _: &Tensor, _: &Tensor, _: f32, _: bool) -> Result<Tensor> {\n    unimplemented!(\"compile with '--features flash-attn'\")\n}\n\n#[derive(Debug, Clone)]\nstruct Attention {\n    q_proj: Linear,\n    k_proj: Linear,\n    v_proj: Linear,\n    o_proj: Linear,\n    num_heads: usize,\n    num_kv_heads: usize,\n    num_kv_groups: usize,\n    head_dim: usize,\n    rotary_emb: Arc<RotaryEmbedding>,\n    kv_cache: Option<(Tensor, Tensor)>,\n    use_flash_attn: bool,\n}\n\nimpl Attention {","sourceCodeStart":131,"sourceCodeEnd":167,"githubUrl":"https://github.com/huggingface/candle/blob/d5fee525bfde3273eb7c9b75fd2bc4937be867ca/candle-transformers/src/models/helium.rs#L131-L167","documentation":"helium.rs contains the same guarded `flash_attn` helper: without the `flash-attn` cargo feature it is a stub that panics with `unimplemented!`. The Attention forward path calls it whenever flash attention is requested, producing a runtime panic.","triggerScenarios":"Running the Helium model with `use_flash_attn: true` in Config (e.g. from checkpoint config.json) while compiled without `--features flash-attn`.","commonSituations":"Default cargo builds without features; non-CUDA environments; copying example code enabling flash attention without matching cargo flags.","solutions":["Enable the feature: `cargo run --release --features candle-transformers/flash-attn` (CUDA only).","Override `config.use_flash_attn = false` before building the model.","Persist the correct flags in your build script/CI so feature and config always agree."],"exampleFix":"// before\nlet model = Model::new(&vs, &config)?; // config.use_flash_attn == true, no feature\n// after\nlet mut config = config.clone();\nconfig.use_flash_attn = false;\nlet model = Model::new(&vs, &config)?;","handlingStrategy":"validation","validationCode":"let mut config = helium::Config::from_reader(&mut f)?;\nif config.use_flash_attn && !cfg!(feature = \"flash-attn\") {\n    config.use_flash_attn = false;\n}","typeGuard":"fn use_standard_attention(use_flash: bool) -> bool {\n    use_flash && !cfg!(feature = \"flash-attn\")\n}","tryCatchPattern":"if use_standard_attention(config.use_flash_attn) {\n    config.use_flash_attn = false; // prevent unimplemented! panic\n}","preventionTips":["Always normalize checkpoint configs to the built feature set","Add CI jobs for both with/without flash-attn feature builds","Note in CLI help that flash attention needs the cargo feature plus CUDA","Fail fast at startup with a clear message instead of mid-inference panic"],"tags":["rust","candle","feature-flag","flash-attention","panic"],"backgroundTag":"missing-cargo-feature","analyzedSha":"d5fee525bfde3273eb7c9b75fd2bc4937be867ca","analyzedAt":"2026-09-02T00:15:47.023Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-09T06:17:21.866Z"}