What does HRESULT 0x87AF000A (SQLITE_E_IOERR) mean?

 
Previous Next
SQLITE_E_INTERRUPT SQLITE_E_CORRUPT

SQLITE_E_IOERR

SQLITE_E_IOERR is the service representation of SQLite SQLITE_IOERR: the database engine received an input/output error from its VFS or filesystem layer. The base code is deliberately broad; the extended SQLite result code is the useful diagnostic value.

Record the extended result code, SQLite error message, database path, journal mode, and the operating-system error before retrying. Do not delete -wal, -shm, or rollback-journal files from an active database as a first response.

What to check

  • Enable or retrieve the extended result code with sqlite3_extended_errcode() so the failing VFS operation is known.
  • Check the database directory, not only the main database file: SQLite may need journal, WAL, shared-memory, and temporary files.
  • Investigate storage, filesystem, permissions, and mount events around the first failure; a generic I/O code is not proof of database corruption.
sqlite3_extended_errcode(db)
sqlite3_errmsg(db)

SQLite: Result and Error Codes

SQLite: Extended Result Codes

SQLite: VFS interface

SQLite: How Database Files Can Become Corrupt


Looking for a different code? Search another status or error code.