{"record":{"id":"1534d725210a9e89","repo":"Zackriya-Solutions/meetily","slug":"parakeet-engine-not-initialized-1534d7","errorCode":null,"errorMessage":"Parakeet engine not initialized","messagePattern":"Parakeet engine not initialized","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"frontend/src-tauri/src/audio/retranscription.rs","lineNumber":677,"sourceCode":"                    warn!(\"Error during Parakeet model discovery (continuing anyway): {}\", discover_err);\n                }\n\n                match e.load_model(&target_model).await {\n                    Ok(_) => {\n                        info!(\"Parakeet model '{}' loaded successfully\", target_model);\n                        Ok(e)\n                    }\n                    Err(load_err) => {\n                        error!(\"Failed to load Parakeet model '{}': {}\", target_model, load_err);\n                        Err(anyhow!(\"Failed to load Parakeet model '{}': {}\", target_model, load_err))\n                    }\n                }\n            } else {\n                info!(\"Parakeet model '{}' already loaded\", target_model);\n                Ok(e)\n            }\n        }\n        None => Err(anyhow!(\"Parakeet engine not initialized\")),\n    }\n}\n\n/// Get the configured Parakeet model name from the database\nasync fn get_configured_parakeet_model<R: Runtime>(app: &AppHandle<R>) -> Result<String> {\n    debug!(\"Getting configured Parakeet model from database...\");\n\n    let app_state = app\n        .try_state::<AppState>()\n        .ok_or_else(|| {\n            error!(\"App state not available\");\n            anyhow!(\"App state not available\")\n        })?;\n\n    // Query the transcript settings from the database\n    let result: Option<(String, String)> = sqlx::query_as(\n        \"SELECT provider, model FROM transcript_settings WHERE id = '1'\"\n    )","sourceCodeStart":659,"sourceCodeEnd":695,"githubUrl":"https://github.com/Zackriya-Solutions/meetily/blob/0281737d87d26352fb0adc78c8c0975f691b23d1/frontend/src-tauri/src/audio/retranscription.rs#L659-L695","documentation":"The global PARAKEET_ENGINE static (Mutex<Option<Arc<ParakeetEngine>>>) is None. It is populated only by the Parakeet init Tauri command (parakeet_engine/commands.rs); get_or_init_parakeet reuses an existing engine but never constructs one, so retranscription with provider='parakeet' fails if that init never ran or failed.","triggerScenarios":"Frontend invokes start_retranscription with provider='parakeet' before the Parakeet engine was initialized; the app just restarted and the user retried immediately; the init command failed earlier (models dir error).","commonSituations":"User has only ever used Whisper and selects Parakeet in the retranscribe dialog for the first time; UI flow that skips Parakeet init; init failure swallowed at startup.","solutions":["Invoke the Parakeet engine init Tauri command before start_retranscription with provider='parakeet'.","Or extend get_or_init_parakeet to lazily construct the engine when None, mirroring the init command.","Check logs for a failed Parakeet engine initialization.","Ensure the models directory is set before init."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// Ensure the Parakeet engine exists before a parakeet-provider batch job\nuse crate::parakeet_engine::commands::PARAKEET_ENGINE;\nlet ready = PARAKEET_ENGINE.lock().unwrap_or_else(|e| e.into_inner()).is_some();\nif !ready { invoke_parakeet_init(app).await?; }","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Initialize the engine matching the selected provider before retranscription starts.","Watch startup logs for Parakeet init failures and resolve them before selecting the provider.","Consider lazy engine construction in get_or_init_parakeet to remove this failure mode."],"tags":["parakeet","initialization","global-state","tauri"],"backgroundTag":"engine-not-initialized","analyzedSha":"0281737d87d26352fb0adc78c8c0975f691b23d1","analyzedAt":"2026-08-16T20:57:52.567Z","schemaVersion":2},"datasetVersion":"2026-08-16T23:17:17.608Z"}