{"record":{"id":"86a2b1ac6a5d8a7f","repo":"openai/codex","slug":"failed-to-resolve-codex-home-for-mcp-oauth-store","errorCode":null,"errorMessage":"failed to resolve CODEX_HOME for MCP OAuth {store} aggregate-store lock","messagePattern":"failed to resolve CODEX_HOME for MCP OAuth (.+?) aggregate-store lock","errorType":"exception","errorClass":"OAuthStoreLockFailure","httpStatus":null,"severity":"error","filePath":"codex-rs/rmcp-client/src/oauth/store_lock.rs","lineNumber":168,"sourceCode":"                }\n                Err(error) => {\n                    return Err(OAuthStoreLockFailure::Lock {\n                        store,\n                        path,\n                        source: io::Error::from(error),\n                    });\n                }\n            }\n        }\n    }\n}\n\n/// Auto may fall back when the configured keyring backend is unavailable, but it must surface a\n/// lock failure. Falling back while another process owns the aggregate-store lock could leave the\n/// newer credential in File while a stale Secrets entry remains preferred.\n#[derive(Debug, thiserror::Error)]\npub(super) enum OAuthStoreLockFailure {\n    #[error(\"failed to resolve CODEX_HOME for MCP OAuth {store} aggregate-store lock\")]\n    CodexHome {\n        store: OAuthStore,\n        #[source]\n        source: io::Error,\n    },\n    #[error(\"failed to create MCP OAuth {store} aggregate-store lock directory {}\", path.display())]\n    CreateDir {\n        store: OAuthStore,\n        path: PathBuf,\n        #[source]\n        source: io::Error,\n    },\n    #[error(\"failed to open MCP OAuth {store} aggregate-store lock {}\", path.display())]\n    Open {\n        store: OAuthStore,\n        path: PathBuf,\n        #[source]\n        source: io::Error,","sourceCodeStart":150,"sourceCodeEnd":186,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/rmcp-client/src/oauth/store_lock.rs#L150-L186","documentation":"Error \"failed to resolve CODEX_HOME for MCP OAuth {store} aggregate-store lock\" thrown in openai/codex.","triggerScenarios":"Thrown at codex-rs/rmcp-client/src/oauth/store_lock.rs:168 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"}