Zackriya-Solutions/meetily · error · anyhow::Error
Parakeet engine not initialized
Error message
Parakeet engine not initialized
What it means
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.
Source
Thrown at frontend/src-tauri/src/audio/retranscription.rs:677
warn!("Error during Parakeet model discovery (continuing anyway): {}", discover_err);
}
match e.load_model(&target_model).await {
Ok(_) => {
info!("Parakeet model '{}' loaded successfully", target_model);
Ok(e)
}
Err(load_err) => {
error!("Failed to load Parakeet model '{}': {}", target_model, load_err);
Err(anyhow!("Failed to load Parakeet model '{}': {}", target_model, load_err))
}
}
} else {
info!("Parakeet model '{}' already loaded", target_model);
Ok(e)
}
}
None => Err(anyhow!("Parakeet engine not initialized")),
}
}
/// Get the configured Parakeet model name from the database
async fn get_configured_parakeet_model<R: Runtime>(app: &AppHandle<R>) -> Result<String> {
debug!("Getting configured Parakeet model from database...");
let app_state = app
.try_state::<AppState>()
.ok_or_else(|| {
error!("App state not available");
anyhow!("App state not available")
})?;
// Query the transcript settings from the database
let result: Option<(String, String)> = sqlx::query_as(
"SELECT provider, model FROM transcript_settings WHERE id = '1'"
)View on GitHub (pinned to 0281737d87)
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.
Defensive patterns
Strategy: validation
Validate before calling
// Ensure the Parakeet engine exists before a parakeet-provider batch job
use crate::parakeet_engine::commands::PARAKEET_ENGINE;
let ready = PARAKEET_ENGINE.lock().unwrap_or_else(|e| e.into_inner()).is_some();
if !ready { invoke_parakeet_init(app).await?; } Prevention
- 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.
When it happens
Trigger: 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).
Common situations: 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.
Related errors
- Parakeet engine not initialized
- Whisper engine not initialized
- Whisper engine not initialized
- App state not available
- Failed to load Parakeet model {}: {}
AI-assisted analysis of Zackriya-Solutions/meetily@0281737d87 (2026-08-16).
Data as JSON: /api/errors/1534d725210a9e89.
Report an issue: GitHub.