{"record":{"id":"ef4c43f598c4438c","repo":"Zackriya-Solutions/meetily","slug":"failed-to-get-current-directory-ef4c43","errorCode":null,"errorMessage":"Failed to get current directory: {}","messagePattern":"Failed to get current directory: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"frontend/src-tauri/src/summary/summary_engine/model_manager.rs","lineNumber":137,"sourceCode":"\n    /// Cancellation flag for current download\n    cancel_download_flag: Arc<RwLock<Option<String>>>,\n}\n\nimpl ModelManager {\n    /// Create a new model manager with default models directory\n    pub fn new() -> Result<Self> {\n        Self::new_with_models_dir(None)\n    }\n\n    /// Create a new model manager with custom models directory\n    pub fn new_with_models_dir(models_dir: Option<PathBuf>) -> Result<Self> {\n        let models_dir = if let Some(dir) = models_dir {\n            dir\n        } else {\n            // Fallback: Use current directory in development\n            let current_dir = std::env::current_dir()\n                .map_err(|e| anyhow!(\"Failed to get current directory: {}\", e))?;\n\n            if cfg!(debug_assertions) {\n                // Development mode\n                current_dir.join(\"models\").join(\"summary\")\n            } else {\n                // Production mode fallback (caller should provide path)\n                log::warn!(\"ModelManager: No models directory provided, using fallback path\");\n                dirs::data_dir()\n                    .or_else(|| dirs::home_dir())\n                    .ok_or_else(|| anyhow!(\"Could not find system data directory\"))?\n                    .join(\"Meetily\")\n                    .join(\"models\")\n                    .join(\"summary\")\n            }\n        };\n\n        log::info!(\n            \"Built-in AI ModelManager using directory: {}\",","sourceCodeStart":119,"sourceCodeEnd":155,"githubUrl":"https://github.com/Zackriya-Solutions/meetily/blob/0281737d87d26352fb0adc78c8c0975f691b23d1/frontend/src-tauri/src/summary/summary_engine/model_manager.rs#L119-L155","documentation":"std::env::current_dir() failed inside ModelManager's fallback when no models directory was supplied. On Unix this happens when the process's working directory was deleted after launch. It only matters in debug builds (dev path is cwd/models/summary); production callers are expected to always pass an explicit directory.","triggerScenarios":"Constructing ModelManager::new() (no dir passed) after the directory the app was launched from was deleted; running tauri:dev while a build/clean script removes and recreates the project directory; a wrapper script that cd's into a temp dir it later deletes.","commonSituations":"Dev workflows where clean_run.sh or a build step recreates the working directory while the app runs; launching from a deleted temp/snapshot directory on macOS.","solutions":["Pass an explicit models directory with new_with_models_dir(Some(...)) at every call site","If implicit resolution is required, fall back to std::env::current_exe()'s parent instead of cwd","In dev, restart the app from an existing directory; avoid deleting the launch directory while it runs"],"exampleFix":"// before\nlet manager = ModelManager::new()?;\n\n// after: always anchor to app data, never cwd\nlet models_dir = app_data_dir.join(\"models\").join(\"summary\");\nlet manager = ModelManager::new_with_models_dir(Some(models_dir))?;","handlingStrategy":"validation","validationCode":"// Never rely on cwd: resolve the models dir from app data up front\nlet models_dir = app_data_dir.join(\"models\").join(\"summary\");\ntokio::fs::create_dir_all(&models_dir).await?;\nlet manager = ModelManager::new_with_models_dir(Some(models_dir))?;","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always pass an explicit directory to new_with_models_dir in app code","In dev, launch the app from a stable directory and avoid clean scripts that delete it mid-run","Prefer std::env::current_exe().parent() over cwd for any implicit path"],"tags":["filesystem","environment","dev-mode","rust"],"backgroundTag":"working-directory-deleted","analyzedSha":"0281737d87d26352fb0adc78c8c0975f691b23d1","analyzedAt":"2026-08-16T20:57:52.567Z","schemaVersion":2},"datasetVersion":"2026-08-16T23:17:17.608Z"}