Zackriya-Solutions/meetily · warning · anyhow::Error
Model {} is currently downloading
Error message
Model {} is currently downloading What it means
Thrown by WhisperModelManager::load_model when the requested model's ModelStatus is Downloading. A download task is still streaming the ggml file to disk, so load is refused to prevent whisper.cpp from memory-mapping a partial file. The error clears once the download finishes and status becomes Available.
Source
Thrown at frontend/src-tauri/src/whisper_engine/whisper_engine.rs:334
};
// Update current context and model
*self.current_context.write().await = Some(ctx);
*self.current_model.write().await = Some(model_name.to_string());
// Enhanced acceleration status reporting
let acceleration_status = acceleration.status_label();
log::info!("Successfully loaded model: {} with {} (Performance Tier: {:?}, Beam Size: {}, Threads: {:?})",
model_name, acceleration_status, hardware_profile.performance_tier,
adaptive_config.beam_size, adaptive_config.max_threads);
Ok(())
},
ModelStatus::Missing => {
Err(anyhow!("Model {} is not downloaded", model_name))
},
ModelStatus::Downloading { .. } => {
Err(anyhow!("Model {} is currently downloading", model_name))
},
ModelStatus::Error(ref err) => {
Err(anyhow!("Model {} has error: {}", model_name, err))
},
ModelStatus::Corrupted { .. } => {
Err(anyhow!("Model {} is corrupted and cannot be loaded", model_name))
}
}
}
pub async fn unload_model(&self) -> bool {
let mut ctx_guard = self.current_context.write().await;
let unloaded = ctx_guard.take().is_some();
if unloaded {
log::info!("📉Whisper model unloaded");
}
let mut model_name_guard = self.current_model.write().await;View on GitHub (pinned to 0281737d87)
Solutions
- Wait for the download progress event to report 100 and the status to become Available, then retry load_model
- If the status is stuck at Downloading after a crash/restart, call get_models (which rescans the registry/disk) or delete_model then download_model again
- Disable the Load button in the UI while the model status is Downloading
Example fix
// before (frontend)
await invoke('load_whisper_model', { modelName }); // fails with 'currently downloading'
// after
const models = await invoke<ModelInfo[]>('get_whisper_models');
const m = models.find(m => m.name === modelName);
if (m?.status === 'Downloading') {
showToast('Model still downloading — wait for 100%');
} else {
await invoke('load_whisper_model', { modelName });
} Defensive patterns
Strategy: validation
Validate before calling
// Before load_model: check status via the model list command
const models = await invoke<Array<{ name: string; status: string }>>('get_whisper_models');
const m = models.find(x => x.name === modelName);
if (!m || m.status !== 'Available') {
throw new Error(`Model not loadable yet (status: ${m?.status ?? 'unknown'})`);
}
await invoke('load_whisper_model', { modelName }); Type guard
const isLoadable = (m: { status: string } | undefined): m is { status: 'Available' } =>
m?.status === 'Available'; Try / catch
try {
await invoke('load_whisper_model', { modelName });
} catch (e) {
if (String(e).includes('currently downloading')) {
// subscribe to download progress; retry on 100%
} else { throw e; }
} Prevention
- Subscribe to model download progress events and only enable Load when progress reaches 100
- Refresh model statuses via get_whisper_models after app restart to clear stale Downloading states
- Never fire load_model in the same handler as download_model; chain them with await
When it happens
Trigger: Calling load_model (Tauri command load_whisper_model) for a model whose download_model call is still in progress; clicking Load in the UI while the progress callback reports < 100; retrying load immediately after starting a download.
Common situations: UI lets the user press Load while a download badge shows partial progress; app crashed or was killed mid-download leaving a stale Downloading status in the registry; automated test starts transcription before the model fetch completes.
Related errors
- Model {} has error: {}
- Model '{}' not found
- Download already in progress for model: {}
- Whisper engine not initialized
- Parakeet model {} is not downloaded
AI-assisted analysis of Zackriya-Solutions/meetily@0281737d87 (2026-08-16).
Data as JSON: /api/errors/50bf2923d78fbd02.
Report an issue: GitHub.