SQLITE_IOERR_DATA
SQLiteFATALCriticalI/O Errorofficial confidence

I/O error: data integrity check failed

Production Risk

Critical — physical storage corruption; restore from backup.

What this means

SQLITE_IOERR_DATA (8202) is returned when a hardware-level data integrity check (such as NVMe end-to-end data protection) detects corrupted data during a read. The data read from the storage device does not match its stored checksum.

Why it happens
  1. 1NVMe or SCSI end-to-end data protection detected a checksum mismatch.
  2. 2Storage device returned corrupt data (bit rot, bad sector).
How to reproduce

Read operations on storage with end-to-end data protection enabled.

trigger — this will error
trigger — this will error
# Surfaces as:
# sqlite3.DatabaseError: disk I/O error
# Check system logs: dmesg | grep -i nvme

expected output

sqlite3.DatabaseError: disk I/O error

Fix 1

Fix 2

Fix 3

Version notes

Sources
Official documentation ↗

sqlite3.h — SQLITE_IOERR_DATA = 8202

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All SQLite errors