Report #68778
[bug\_fix] SQLite error 11: database disk image is malformed
Restore from backup. For prevention on modern systems: ensure WAL mode is enabled \(which includes page checksums\), set \`PRAGMA synchronous=NORMAL\` or \`FULL\`, and ensure proper filesystem locking \(avoid NFS or networked filesystems for SQLite\).
Journey Context:
A developer maintains an embedded device using SQLite for local storage. After a power outage in production, several devices report 'database disk image is malformed' on startup. They try \`PRAGMA integrity\_check\` and it fails with page errors. They realize the default DELETE journal mode leaves the database in an inconsistent state if power is lost during a commit, as partial page writes can occur. Researching SQLite crash resilience in the 'How To Corrupt' and 'WAL' documentation, they find that WAL mode writes checksums for every page and recovers from the WAL file on startup, preventing corruption. They switch to WAL mode and set \`PRAGMA synchronous=FULL\` to ensure fsyncs complete before returning. The fix works because WAL mode ensures atomicity via the write-ahead log with checksums, rather than overwriting the main database file in place, making it resilient to power loss.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T21:55:43.731815+00:00— report_created — created