{"record":{"id":"70c520e7a9b87b80","repo":"cjpais/Handy","slug":"failed-to-create-model-submenu","errorCode":null,"errorMessage":"failed to create model submenu","messagePattern":"failed to create model submenu","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src-tauri/src/tray.rs","lineNumber":260,"sourceCode":"    let separator = || PredefinedMenuItem::separator(app).expect(\"failed to create separator\");\n\n    // Build model submenu — label is the active model name\n    let model_manager = app.state::<Arc<ModelManager>>();\n    let models = model_manager.get_available_models();\n    let current_model_id = &settings.selected_model;\n\n    let mut downloaded: Vec<_> = models.into_iter().filter(|m| m.is_downloaded).collect();\n    downloaded.sort_by(|a, b| a.name.cmp(&b.name));\n\n    let submenu_label = downloaded\n        .iter()\n        .find(|m| m.id == *current_model_id)\n        .map(|m| m.name.clone())\n        .unwrap_or_else(|| strings.model.clone());\n\n    let model_submenu = {\n        let submenu = Submenu::with_id(app, \"model_submenu\", &submenu_label, true)\n            .expect(\"failed to create model submenu\");\n\n        for model in &downloaded {\n            let is_active = model.id == *current_model_id;\n            let item_id = format!(\"model_select:{}\", model.id);\n            let item =\n                CheckMenuItem::with_id(app, &item_id, &model.name, true, is_active, None::<&str>)\n                    .expect(\"failed to create model item\");\n            let _ = submenu.append(&item);\n        }\n\n        submenu\n    };\n\n    let unload_model_i = MenuItem::with_id(\n        app,\n        \"unload_model\",\n        &strings.unload_model,\n        model_loaded,","sourceCodeStart":242,"sourceCodeEnd":278,"githubUrl":"https://github.com/cjpais/Handy/blob/98a4d80cce8ad41efec2a419b59d9e81229a35d7/src-tauri/src/tray.rs#L242-L278","documentation":"Error \"failed to create model submenu\" thrown in cjpais/Handy.","triggerScenarios":"Thrown at src-tauri/src/tray.rs:260 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"98a4d80cce8ad41efec2a419b59d9e81229a35d7","analyzedAt":"2026-08-16T20:58:09.966Z","schemaVersion":2},"datasetVersion":"2026-08-16T23:17:17.608Z"}