{"record":{"id":"b89c98caa9c58c10","repo":"openai/codex","slug":"memory-summary-artifact-does-not-start-with-v1","errorCode":null,"errorMessage":"memory summary artifact does not start with v1: {}","messagePattern":"memory summary artifact does not start with v1: (.+?)","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"codex-rs/memories/write/src/workspace.rs","lineNumber":75,"sourceCode":"\n    let memory_path = root.join(\"MEMORY.md\");\n    let memory_metadata = tokio::fs::metadata(&memory_path).await.with_context(|| {\n        format!(\n            \"read consolidated memory artifact {}\",\n            memory_path.display()\n        )\n    })?;\n    anyhow::ensure!(\n        memory_metadata.is_file(),\n        \"consolidated memory artifact is not a file: {}\",\n        memory_path.display()\n    );\n\n    let summary_path = root.join(\"memory_summary.md\");\n    let summary = tokio::fs::read_to_string(&summary_path)\n        .await\n        .with_context(|| format!(\"read memory summary artifact {}\", summary_path.display()))?;\n    anyhow::ensure!(\n        summary.lines().next() == Some(\"v1\"),\n        \"memory summary artifact does not start with v1: {}\",\n        summary_path.display()\n    );\n\n    Ok(())\n}\n\npub(crate) async fn remove_memory_symlinks(root: &Path) -> std::io::Result<usize> {\n    let mut directories = vec![root.to_path_buf()];\n    let mut removed = 0;\n\n    while let Some(directory) = directories.pop() {\n        let mut entries = tokio::fs::read_dir(directory).await?;\n        while let Some(entry) = entries.next_entry().await? {\n            let path = entry.path();\n            let file_type = entry.file_type().await?;\n            if file_type.is_symlink() {","sourceCodeStart":57,"sourceCodeEnd":93,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/memories/write/src/workspace.rs#L57-L93","documentation":"Error \"memory summary artifact does not start with v1: {}\" thrown in openai/codex.","triggerScenarios":"Thrown at codex-rs/memories/write/src/workspace.rs:75 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"}