{"record":{"id":"1128bd6e2f63e414","repo":"tinyhumansai/openhuman","slug":"memory-directory-missing","errorCode":null,"errorMessage":"memory directory missing: {}","messagePattern":"memory directory missing: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/platform/doctor/core.rs","lineNumber":441,"sourceCode":"            }\n        }\n        Err(e) => {\n            items.push(DiagnosticItem::error(\n                cat,\n                format!(\"directory is not writable: {e}\"),\n            ));\n        }\n    }\n\n    // Minimal workspace folders\n    let mem_dir = ws.join(\"memory\");\n    if mem_dir.exists() {\n        items.push(DiagnosticItem::ok(\n            cat,\n            format!(\"memory directory: {}\", mem_dir.display()),\n        ));\n    } else {\n        items.push(DiagnosticItem::warn(\n            cat,\n            format!(\"memory directory missing: {}\", mem_dir.display()),\n        ));\n    }\n\n    // Check for config templates or docs\n    let prompt = ws.join(\"SYSTEM.md\");\n    if prompt.exists() {\n        items.push(DiagnosticItem::ok(\n            cat,\n            format!(\"SYSTEM prompt: {}\", prompt.display()),\n        ));\n    } else {\n        items.push(DiagnosticItem::warn(\n            cat,\n            format!(\"SYSTEM prompt missing: {}\", prompt.display()),\n        ));\n    }","sourceCodeStart":423,"sourceCodeEnd":459,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/platform/doctor/core.rs#L423-L459","documentation":"Doctor workspace check: the <workspace>/memory directory does not exist. The memory store expects this folder for its persisted data; the check is a warn (not error) because the directory is created lazily on first write, but its absence on a long-lived install suggests the workspace was wiped, moved, or never initialised.","triggerScenarios":"Thrown at src/openhuman/platform/doctor/core.rs:441 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Run one memory-ingesting action (a chat turn or memory sync) and let the core create it","Verify workspace_dir in config points at the intended workspace root if the path looks wrong","If the workspace was moved, migrate or repoint config rather than expecting the old memory tree to reappear"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"749120085864ce16e0f273c7b86fac7740b39c5b","analyzedAt":"2026-08-17T21:21:45.363Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}