Zackriya-Solutions/meetily · error
Unsupported Parakeet model: {}
Error message
Unsupported Parakeet model: {} What it means
Thrown when a download is requested for a model name that has no entry in the engine's model spec table (find_model_spec returned None), i.e. the name is not one of the supported/registered Parakeet models. Note the engine first confirms the model is loaded/known in cache ('Model {} not found' is a different error); this error means the name is known to the cache layer but absent from the download spec registry, typically a name typo or a model added in a newer app version.
Source
Thrown at frontend/src-tauri/src/parakeet_engine/parakeet_engine.rs:644
});
self.download_model_detailed(model_name, detailed_callback).await
}
/// Download a catalogued Parakeet model with detailed progress.
pub async fn download_model_detailed(
&self,
model_name: &str,
progress_callback: Option<Box<dyn Fn(DownloadProgress) + Send>>,
) -> Result<()> {
let model_info = self
.available_models
.read()
.await
.get(model_name)
.cloned()
.ok_or_else(|| anyhow!("Model {} not found", model_name))?;
let spec = find_model_spec(model_name)
.ok_or_else(|| anyhow!("Unsupported Parakeet model: {}", model_name))?;
self.download_model_detailed_from_source(
model_name,
&model_info.path,
spec.source_base_url,
spec.artifacts,
progress_callback,
)
.await
}
async fn reserve_active_download(&self, model_name: &str) -> Result<Arc<ActiveDownload>> {
let mut active_downloads = self.active_downloads.lock().await;
if active_downloads.downloads.contains_key(model_name) {
return Err(anyhow!("Download already in progress for model: {}", model_name));
}
let (completion, _) = watch::channel(false);View on GitHub (pinned to a2cb62e827)
Solutions
- Use the exact model name string from the app's supported model list/spec (check find_model_spec entries in parakeet_engine.rs)
- Log the requested model_name and compare it character-by-character with registered names (case and quantization suffix matter)
- Update the app so the Rust spec table and frontend model list are from the same version
- Add a spec entry in find_model_spec if you are intentionally adding a new supported model
Example fix
// before
await invoke('download_parakeet_model', { modelName: 'Parakeet-TDT-0.6B-v2' });
// after (exact registered name)
await invoke('download_parakeet_model', { modelName: 'parakeet-tdt-0.6b-v2' }); Defensive patterns
Strategy: type-guard
Validate before calling
const SUPPORTED_PARAKEET_MODELS = ['parakeet-tdt-0.6b-v2' /* keep in sync with find_model_spec */];
function isSupportedModel(name: string): boolean { return SUPPORTED_PARAKEET_MODELS.includes(name); } Type guard
function isRegisteredParakeetModel(name: unknown): name is string { return typeof name === 'string' && SUPPORTED_PARAKEET_MODELS.includes(name); } Try / catch
try {
await invoke('download_parakeet_model', { modelName });
} catch (e) {
if (String(e).includes('Unsupported Parakeet model')) {
showError(`Model "${modelName}" is not supported by this app version. Update the app or pick a listed model.`);
} else { throw e; }
} Prevention
- Keep the frontend model list generated from the same source as the Rust spec table
- Compare model names exactly (case-sensitive, including quantization suffixes)
- Update app and frontend together so spec tables don't drift
- Expose the supported model list via a Tauri command instead of hardcoding names in the UI
When it happens
Trigger: Calling download_model (or download_model_detailed) with a model_name string that doesn't exactly match a spec key, e.g. 'parakeet-tdt-0.6b-v2-int8' when only 'parakeet-tdt-0.6b-v2' (or a specific quantization key) is registered.
Common situations: Typo or case mismatch in the model name passed from the frontend invoke(); frontend hardcodes a model name from an older/newer app version than the Rust spec table; custom UI offering models the bundled spec doesn't support.
Related errors
- Parakeet model {} is not downloaded
- Parakeet model {} is corrupted and cannot be loaded
- Parakeet model '{}' not found
- Failed to delete directory '{}': {}
- Can only delete corrupted or available Parakeet models. Mode
AI-assisted analysis of Zackriya-Solutions/meetily@a2cb62e827 (2026-09-12).
Data as JSON: /api/errors/ee41fb7a75a9c26d.
Report an issue: GitHub.