{"record":{"id":"ee41fb7a75a9c26d","repo":"Zackriya-Solutions/meetily","slug":"unsupported-parakeet-model","errorCode":null,"errorMessage":"Unsupported Parakeet model: {}","messagePattern":"Unsupported Parakeet model: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"frontend/src-tauri/src/parakeet_engine/parakeet_engine.rs","lineNumber":644,"sourceCode":"        });\n        self.download_model_detailed(model_name, detailed_callback).await\n    }\n\n    /// Download a catalogued Parakeet model with detailed progress.\n    pub async fn download_model_detailed(\n        &self,\n        model_name: &str,\n        progress_callback: Option<Box<dyn Fn(DownloadProgress) + Send>>,\n    ) -> Result<()> {\n        let model_info = self\n            .available_models\n            .read()\n            .await\n            .get(model_name)\n            .cloned()\n            .ok_or_else(|| anyhow!(\"Model {} not found\", model_name))?;\n        let spec = find_model_spec(model_name)\n            .ok_or_else(|| anyhow!(\"Unsupported Parakeet model: {}\", model_name))?;\n\n        self.download_model_detailed_from_source(\n            model_name,\n            &model_info.path,\n            spec.source_base_url,\n            spec.artifacts,\n            progress_callback,\n        )\n        .await\n    }\n\n    async fn reserve_active_download(&self, model_name: &str) -> Result<Arc<ActiveDownload>> {\n        let mut active_downloads = self.active_downloads.lock().await;\n        if active_downloads.downloads.contains_key(model_name) {\n            return Err(anyhow!(\"Download already in progress for model: {}\", model_name));\n        }\n\n        let (completion, _) = watch::channel(false);","sourceCodeStart":626,"sourceCodeEnd":662,"githubUrl":"https://github.com/Zackriya-Solutions/meetily/blob/a2cb62e827da7ef59f65064c97233efb2313878e/frontend/src-tauri/src/parakeet_engine/parakeet_engine.rs#L626-L662","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":"// before\nawait invoke('download_parakeet_model', { modelName: 'Parakeet-TDT-0.6B-v2' });\n// after (exact registered name)\nawait invoke('download_parakeet_model', { modelName: 'parakeet-tdt-0.6b-v2' });","handlingStrategy":"type-guard","validationCode":"const SUPPORTED_PARAKEET_MODELS = ['parakeet-tdt-0.6b-v2' /* keep in sync with find_model_spec */];\nfunction isSupportedModel(name: string): boolean { return SUPPORTED_PARAKEET_MODELS.includes(name); }","typeGuard":"function isRegisteredParakeetModel(name: unknown): name is string { return typeof name === 'string' && SUPPORTED_PARAKEET_MODELS.includes(name); }","tryCatchPattern":"try {\n  await invoke('download_parakeet_model', { modelName });\n} catch (e) {\n  if (String(e).includes('Unsupported Parakeet model')) {\n    showError(`Model \"${modelName}\" is not supported by this app version. Update the app or pick a listed model.`);\n  } else { throw e; }\n}","preventionTips":["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"],"tags":["model-management","unsupported-model","parakeet","naming"],"backgroundTag":"unsupported-enum-value","analyzedSha":"a2cb62e827da7ef59f65064c97233efb2313878e","analyzedAt":"2026-09-12T11:12:14.152Z","contentChangedAt":"2026-09-12T11:12:14.152Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}