{"record":{"id":"4b33eba1afaf4ed6","repo":"Zackriya-Solutions/meetily","slug":"failed-to-load-whisper-model","errorCode":null,"errorMessage":"Failed to load Whisper model '{}': {}","messagePattern":"Failed to load Whisper model '(.+?)': (.+?)","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"frontend/src-tauri/src/audio/retranscription.rs","lineNumber":567,"sourceCode":"                info!(\n                    \"Loading Whisper model '{}' (current: {:?})\",\n                    target_model, current_model\n                );\n\n                // Discover available models first (populates the internal cache)\n                info!(\"Discovering available Whisper models...\");\n                if let Err(discover_err) = e.discover_models().await {\n                    warn!(\"Error during model discovery (continuing anyway): {}\", discover_err);\n                }\n\n                match e.load_model(&target_model).await {\n                    Ok(_) => {\n                        info!(\"Whisper model '{}' loaded successfully\", target_model);\n                        Ok(e)\n                    }\n                    Err(load_err) => {\n                        error!(\"Failed to load Whisper model '{}': {}\", target_model, load_err);\n                        Err(anyhow!(\"Failed to load Whisper model '{}': {}\", target_model, load_err))\n                    }\n                }\n            } else {\n                info!(\"Whisper model '{}' already loaded\", target_model);\n                Ok(e)\n            }\n        }\n        None => Err(anyhow!(\"Whisper engine not initialized\")),\n    }\n}\n\n/// Get the configured Whisper model name from the database\nasync fn get_configured_whisper_model<R: Runtime>(app: &AppHandle<R>) -> Result<String> {\n    debug!(\"Getting configured Whisper model from database...\");\n\n    let app_state = app\n        .try_state::<AppState>()\n        .ok_or_else(|| {","sourceCodeStart":549,"sourceCodeEnd":585,"githubUrl":"https://github.com/Zackriya-Solutions/meetily/blob/0281737d87d26352fb0adc78c8c0975f691b23d1/frontend/src-tauri/src/audio/retranscription.rs#L549-L585","documentation":"WhisperEngine::load_model(target_model) failed while preparing the engine for retranscription. discover_models() runs first but its failure is only warned about; the hard error comes from load_model. The inner '{}' typically means the GGML model file is missing from the models directory, corrupt or truncated (partial download), unreadable for this whisper-rs build, or too large for available memory.","triggerScenarios":"Requesting a model by name (retranscription dialog or transcript_settings row) that was never downloaded; models directory missing or moved; model file half-downloaded; loading large-v3 on a low-memory machine.","commonSituations":"User selects large-v3 in the UI without downloading it; app data directory moved between machines; whisper-rs version update rejecting old GGML files; disk full during model download earlier.","solutions":["Verify the model file exists in the models directory (dev: frontend/models; macOS: ~/Library/Application Support/Meetily/models).","Read the inner error: 'no such file' means missing, 'failed to read' usually means corrupt - re-download the model from Settings.","If the inner error is out-of-memory, choose a smaller model (base/small).","Retry with the default model to confirm the engine itself works, isolating the problem to that model file."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// Confirm the model file exists before invoking retranscription\nlet models_dir = get_models_directory();\nlet ok = models_dir.map(|d| d.join(format!(\"{model}.bin\")).exists()).unwrap_or(false);\nif !ok { return Err(anyhow!(\"model {model} not downloaded - fetch it in Settings first\")); }","typeGuard":null,"tryCatchPattern":"// Frontend: branch on the load failure and offer the model download UI\ntry { await invoke('start_retranscription', {...}); }\ncatch (e) {\n  if (String(e).includes('Failed to load Whisper model')) promptDownloadModel(modelName);\n}","preventionTips":["Download and verify the model in Settings before selecting it for retranscription.","Keep the models directory on a drive with space for the model plus runtime memory.","Re-download models that fail integrity (truncated files load with opaque errors)."],"tags":["whisper","whisper-cpp","model-loading","configuration"],"backgroundTag":"ml-model-load-failed","analyzedSha":"0281737d87d26352fb0adc78c8c0975f691b23d1","analyzedAt":"2026-08-16T20:57:52.567Z","schemaVersion":2},"datasetVersion":"2026-08-16T23:17:17.608Z"}