{"record":{"id":"d4d5d8f15af6c5b6","repo":"ajeetdsouza/zoxide","slug":"zo-data-dir-must-be-an-absolute-path","errorCode":null,"errorMessage":"_ZO_DATA_DIR must be an absolute path","messagePattern":"_ZO_DATA_DIR must be an absolute path","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src/config.rs","lineNumber":18,"sourceCode":"use std::env;\nuse std::ffi::OsString;\nuse std::path::PathBuf;\n\nuse anyhow::{Context, Result, ensure};\nuse glob::Pattern;\n\nuse crate::db::Rank;\n\npub fn data_dir() -> Result<PathBuf> {\n    let dir = match env::var_os(\"_ZO_DATA_DIR\") {\n        Some(path) => PathBuf::from(path),\n        None => dirs::data_local_dir()\n            .context(\"could not find data directory, please set _ZO_DATA_DIR manually\")?\n            .join(\"zoxide\"),\n    };\n\n    ensure!(dir.is_absolute(), \"_ZO_DATA_DIR must be an absolute path\");\n    Ok(dir)\n}\n\npub fn echo() -> bool {\n    env::var_os(\"_ZO_ECHO\").is_some_and(|var| var == \"1\")\n}\n\npub fn exclude_dirs() -> Result<Vec<Pattern>> {\n    match env::var_os(\"_ZO_EXCLUDE_DIRS\") {\n        Some(paths) => env::split_paths(&paths)\n            .map(|path| {\n                let pattern = path.to_str().context(\"invalid unicode in _ZO_EXCLUDE_DIRS\")?;\n                Pattern::new(pattern)\n                    .with_context(|| format!(\"invalid glob in _ZO_EXCLUDE_DIRS: {pattern}\"))\n            })\n            .collect(),\n        None => {\n            let pattern = (|| {","sourceCodeStart":1,"sourceCodeEnd":36,"githubUrl":"https://github.com/ajeetdsouza/zoxide/blob/8a3f76da90cc12547b593ca210b8fdfb1631d07f/src/config.rs#L1-L36","documentation":"Error \"_ZO_DATA_DIR must be an absolute path\" thrown in ajeetdsouza/zoxide.","triggerScenarios":"Thrown at src/config.rs:18 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set _ZO_DATA_DIR to an absolute path (starting with / on Unix or a drive letter on Windows)","Unset _ZO_DATA_DIR to use the default data directory"],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"8a3f76da90cc12547b593ca210b8fdfb1631d07f","analyzedAt":"2026-08-19T03:25:13.308Z","contentChangedAt":"2026-08-19T03:25:13.308Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}