tinyhumansai/openhuman · error
stale SQLite side-file present (may indicate unclean shutdow
Error message
stale SQLite side-file present (may indicate unclean shutdown): {} What it means
Doctor memory-tree check: a chunks.db-shm or chunks.db-wal sidecar exists next to the SQLite database. SQLite deletes these on clean shutdown; a surviving -shm/-wal pair means the last process died without closing the DB (crash, kill -9, power loss). The data is normally recovered by WAL replay on next open, but the flag warns that unclean shutdown occurred and, if a stale process still holds the file, locking issues are possible.
Source
Thrown at src/openhuman/platform/doctor/core.rs:805
/// - If the DB directory / file does not exist yet: `Warn` (not yet created).
/// - If a stale `.db-shm` file is present alongside the DB: `Warn`.
/// - If we can open the DB and run a basic probe query: `Ok`.
/// - If the probe fails: `Error`.
fn check_memory_tree_db(config: &Config, items: &mut Vec<DiagnosticItem>) {
let cat = "memory_tree_db";
let db_path = config.workspace_dir.join("memory_tree").join("chunks.db");
// ── Stale side-files (checked even when chunks.db is absent) ────
let base_name = db_path
.file_name()
.unwrap_or_default()
.to_string_lossy()
.into_owned();
let shm = db_path.with_file_name(format!("{base_name}-shm"));
let wal = db_path.with_file_name(format!("{base_name}-wal"));
for sidecar in [&shm, &wal] {
if sidecar.exists() {
items.push(DiagnosticItem::warn(
cat,
format!(
"stale SQLite side-file present (may indicate unclean shutdown): {}",
sidecar.display()
),
));
}
}
// ── File existence ──────────────────────────────────────────────
if !db_path.exists() {
items.push(DiagnosticItem::warn(
cat,
format!(
"DB not yet created (first ingest will initialise it): {}",
db_path.display()
),
));View on GitHub (pinned to 7491200858)
Solutions
- Open the core once so SQLite replays the WAL and removes the sidecars cleanly
- If sidecars persist after a clean shutdown, no process may be holding the DB — stop all core instances and delete the -shm/-wal pair only after backing up chunks.db
- Investigate the cause of the unclean shutdown (OOM killer, forced quit) to avoid WAL corruption
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/openhuman/platform/doctor/core.rs:805 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17).
Data as JSON: /api/errors/e4482f6e749417b8.
Report an issue: GitHub.