{"record":{"id":"624bd3c388e7cdbf","repo":"openai/codex","slug":"failed-to-read-codex-home-val-err","errorCode":null,"errorMessage":"failed to read CODEX_HOME {val:?}: {err}","messagePattern":"failed to read CODEX_HOME (.+?): (.+?)","errorType":"exception","errorClass":"std::io::Error","httpStatus":null,"severity":"error","filePath":"codex-rs/utils/home-dir/src/lib.rs","lineNumber":31,"sourceCode":"pub fn find_codex_home() -> std::io::Result<AbsolutePathBuf> {\n    let codex_home_env = std::env::var(\"CODEX_HOME\")\n        .ok()\n        .filter(|val| !val.is_empty());\n    find_codex_home_from_env(codex_home_env.as_deref())\n}\n\nfn find_codex_home_from_env(codex_home_env: Option<&str>) -> std::io::Result<AbsolutePathBuf> {\n    // Honor the `CODEX_HOME` environment variable when it is set to allow users\n    // (and tests) to override the default location.\n    match codex_home_env {\n        Some(val) => {\n            let path = PathBuf::from(val);\n            let metadata = std::fs::metadata(&path).map_err(|err| match err.kind() {\n                std::io::ErrorKind::NotFound => std::io::Error::new(\n                    std::io::ErrorKind::NotFound,\n                    format!(\"CODEX_HOME points to {val:?}, but that path does not exist\"),\n                ),\n                _ => std::io::Error::new(\n                    err.kind(),\n                    format!(\"failed to read CODEX_HOME {val:?}: {err}\"),\n                ),\n            })?;\n\n            if !metadata.is_dir() {\n                Err(std::io::Error::new(\n                    std::io::ErrorKind::InvalidInput,\n                    format!(\"CODEX_HOME points to {val:?}, but that path is not a directory\"),\n                ))\n            } else {\n                let canonical = path.canonicalize().map_err(|err| {\n                    std::io::Error::new(\n                        err.kind(),\n                        format!(\"failed to canonicalize CODEX_HOME {val:?}: {err}\"),\n                    )\n                })?;\n                AbsolutePathBuf::from_absolute_path(canonical)","sourceCodeStart":13,"sourceCodeEnd":49,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/utils/home-dir/src/lib.rs#L13-L49","documentation":"Error \"failed to read CODEX_HOME {val:?}: {err}\" thrown in openai/codex.","triggerScenarios":"Thrown at codex-rs/utils/home-dir/src/lib.rs:31 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":"339751715c64496cb86246bfb3935f40e309dd3d","analyzedAt":"2026-08-25T05:35:09.876Z","schemaVersion":2},"datasetVersion":"2026-08-25T06:17:31.827Z"}