cjpais/Handy · error · anyhow::Error

Failed to load gigaam model

Error message

Failed to load gigaam model {}: {}

What it means

Thrown when GigaAMModel::load fails to load the GigaAM ONNX model (Int8 quantization) from model_path. The chained error carries the ONNX Runtime cause; a "loading_failed" model-state event is emitted before the error is returned from load_model.

Solutions

  1. Re-download the GigaAM model from the model selector
  2. Check the model directory contents and file sizes against the registry entry
  3. Read the chained ONNX Runtime error and address the provider issue (or switch accelerator to CPU)
  4. Check disk space and permissions on the models directory
Defensive patterns

Strategy: try-catch

Try / catch

if let Err(e) = manager.load_model(&model_id, None) {
    log::error!("gigaam load failed: {e:#}");
    // re-download and retry once; escalate to the user if it persists
}

Prevention

When it happens

Trigger: EngineType::GigaAM branch runs and GigaAMModel::load(&model_path, &Quantization::Int8) errors: model files missing/corrupt, quantization variant not on disk, or execution-provider/session creation failure.

Common situations: Partial download after network drop; manually moved app-data directory; antivirus locking or removing the .onnx file; onnxruntime shared library missing on Linux deployments.

Related errors


AI-assisted analysis of cjpais/Handy@ba10ce1943 (2026-08-17). Data as JSON: /api/errors/256e002bb5044ffb. Report an issue: GitHub.

Appendix: source

Thrown at src-tauri/src/managers/transcription.rs:688

                        anyhow::anyhow!(error_msg)
                    })?;
                LoadedEngine::MoonshineStreaming(engine)
            }
            EngineType::SenseVoice => {
                let engine =
                    SenseVoiceModel::load(&model_path, &Quantization::Int8).map_err(|e| {
                        let error_msg =
                            format!("Failed to load SenseVoice model {}: {}", model_id, e);
                        emit_loading_failed(&error_msg);
                        anyhow::anyhow!(error_msg)
                    })?;
                LoadedEngine::SenseVoice(engine)
            }
            EngineType::GigaAM => {
                let engine = GigaAMModel::load(&model_path, &Quantization::Int8).map_err(|e| {
                    let error_msg = format!("Failed to load gigaam model {}: {}", model_id, e);
                    emit_loading_failed(&error_msg);
                    anyhow::anyhow!(error_msg)
                })?;
                LoadedEngine::GigaAM(engine)
            }
            EngineType::Canary => {
                let engine = CanaryModel::load(&model_path, &Quantization::Int8).map_err(|e| {
                    let error_msg = format!("Failed to load canary model {}: {}", model_id, e);
                    emit_loading_failed(&error_msg);
                    anyhow::anyhow!(error_msg)
                })?;
                LoadedEngine::Canary(engine)
            }
            EngineType::Cohere => {
                let engine = CohereModel::load(&model_path, &Quantization::Int8).map_err(|e| {
                    let error_msg = format!("Failed to load cohere model {}: {}", model_id, e);
                    emit_loading_failed(&error_msg);
                    anyhow::anyhow!(error_msg)
                })?;
                LoadedEngine::Cohere(engine)

View on GitHub (pinned to ba10ce1943)