{"record":{"id":"5f21bc3f10c58b94","repo":"openai/codex","slug":"memory-root-cannot-be-a-symbolic-link","errorCode":null,"errorMessage":"memory root cannot be a symbolic link: {}","messagePattern":"memory root cannot be a symbolic link: (.+?)","errorType":"validation","errorClass":"std::io::Error","httpStatus":null,"severity":"error","filePath":"codex-rs/memories/write/src/lib.rs","lineNumber":139,"sourceCode":"    root.join(artifacts::ROLLOUT_SUMMARIES_SUBDIR)\n}\n\npub fn memory_extensions_root(root: &Path) -> PathBuf {\n    root.join(artifacts::EXTENSIONS_SUBDIR)\n}\n\npub fn raw_memories_file(root: &Path) -> PathBuf {\n    root.join(artifacts::RAW_MEMORIES_FILENAME)\n}\n\npub async fn ensure_layout(root: &Path) -> std::io::Result<()> {\n    tokio::fs::create_dir_all(root).await?;\n    if tokio::fs::symlink_metadata(root)\n        .await?\n        .file_type()\n        .is_symlink()\n    {\n        return Err(std::io::Error::new(\n            std::io::ErrorKind::InvalidInput,\n            format!(\"memory root cannot be a symbolic link: {}\", root.display()),\n        ));\n    }\n\n    workspace::remove_memory_symlinks(root).await?;\n    tokio::fs::create_dir_all(rollout_summaries_dir(root)).await\n}\n","sourceCodeStart":121,"sourceCodeEnd":148,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/memories/write/src/lib.rs#L121-L148","documentation":"Error \"memory root cannot be a symbolic link: {}\" thrown in openai/codex.","triggerScenarios":"Thrown at codex-rs/memories/write/src/lib.rs:139 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"}