{"record":{"id":"305bbbcaeb1d2ea1","repo":"huggingface/candle","slug":"attribute-of-type-tensor-has-an-unsupported-dat","errorCode":null,"errorMessage":"attribute {} of type TENSOR has an unsupported data_type {}","messagePattern":"attribute (.+?) of type TENSOR has an unsupported data_type (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"candle-onnx/src/eval.rs","lineNumber":105,"sourceCode":"            Some(value) => value,\n            None => bail!(\n                \"attribute {} was of type TENSOR, but no tensor was found\",\n                attr.name\n            ),\n        };\n\n        let data_type = match DataType::try_from(tensor_proto.data_type) {\n            Ok(value) => value,\n            Err(_) => bail!(\n                \"attribute {} of type TENSOR was an invalid data_type number {}\",\n                attr.name,\n                tensor_proto.data_type\n            ),\n        };\n\n        let dtype = match dtype(data_type) {\n            Some(value) => value,\n            None => bail!(\n                \"attribute {} of type TENSOR has an unsupported data_type {}\",\n                attr.name,\n                data_type.as_str_name()\n            ),\n        };\n\n        let mut dims = Vec::with_capacity(tensor_proto.dims.len());\n        for dim in &tensor_proto.dims {\n            if dim < &0 {\n                bail!(\n                    \"attribute {} of type TENSOR has a negative dimension, which is unsupported\",\n                    attr.name\n                )\n            }\n            dims.push(*dim as usize)\n        }\n\n        Tensor::from_raw_buffer(&tensor_proto.raw_data, dtype, &dims, &Device::Cpu)","sourceCodeStart":87,"sourceCodeEnd":123,"githubUrl":"https://github.com/huggingface/candle/blob/d5fee525bfde3273eb7c9b75fd2bc4937be867ca/candle-onnx/src/eval.rs#L87-L123","documentation":"The tensor attribute's data_type is a valid ONNX type, but candle-onnx has no mapping from that ONNX DataType to a candle DType. Types without candle equivalents (e.g. certain float8/complex/uint variants depending on candle version) are rejected rather than silently misinterpreted.","triggerScenarios":"Loading an ONNX tensor attribute (or initializer via get_tensor) whose element type is one candle-onnx's dtype() mapping does not support, e.g. BFLOAT16/FLOAT8/COMPLEX types on candle versions lacking them.","commonSituations":"Models using bfloat16 weights or newer float8 formats; exporters emitting complex or string tensors for attributes; older candle-onnx not yet supporting recently added ONNX dtypes.","solutions":["Convert the model's tensors to a supported dtype (f32/f16/i64) before loading, e.g. cast weights in Python with onnx.","Regenerate the model exporting float32 parameters.","Update candle/candle-onnx to a version that supports the needed dtype.","Replace the unsupported attribute tensor with an equivalent supported representation."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"let dt = onnx::tensor_proto::DataType::try_from(t.data_type)?;\nlet supported = [DataType::FLOAT, DataType::INT32, DataType::INT64, DataType::FLOAT16];\nassert!(supported.contains(&dt), \"unsupported dtype {dt:?} for '{name}'\");","typeGuard":"fn is_candle_supported(dt: onnx::tensor_proto::DataType) -> bool {\n    matches!(\n        dt,\n        onnx::tensor_proto::DataType::FLOAT\n            | onnx::tensor_proto::DataType::FLOAT16\n            | onnx::tensor_proto::DataType::INT32\n            | onnx::tensor_proto::DataType::INT64\n            | onnx::tensor_proto::DataType::UINT8\n            | onnx::tensor_proto::DataType::BOOL\n    )\n}","tryCatchPattern":"match get_attr::<Tensor>(node, name) {\n    Ok(v) => v,\n    Err(e) if e.to_string().contains(\"unsupported data_type\") => {\n        // pre-cast model tensors to f32 and retry\n        return Err(e);\n    }\n    Err(e) => return Err(e),\n}","preventionTips":["Convert models to f32/f16/i64 before loading","Check candle-onnx release notes for newly supported dtypes","Avoid bfloat16/complex/string tensors in attributes"],"tags":["rust","candle","onnx","dtype","unsupported"],"backgroundTag":"unsupported-dtype","analyzedSha":"d5fee525bfde3273eb7c9b75fd2bc4937be867ca","analyzedAt":"2026-09-02T00:15:47.023Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-09T06:17:21.866Z"}