| Previous | Next |
| SQLITE_E_IOERR_LOCK | SQLITE_E_IOERR_DIR_CLOSE |
SQLITE_E_IOERR_CLOSE
SQLITE_E_IOERR_CLOSE corresponds to SQLITE_IOERR_CLOSE: the VFS failed in its xClose method while SQLite was closing a file handle.
What to check for SQLITE_E_IOERR_CLOSE
- Check for filesystem and storage errors at shutdown, rotation, backup, or service-stop time.
- Inspect the preceding error; a close failure can be secondary to an earlier write or lock failure.
- Preserve the files and logs before restarting repeatedly, especially if a transaction was active.
PRAGMA database_list;
SQLite: Result and Error Codes
Diagnostic interpretation of SQLITE_E_IOERR_CLOSE
SQLITE_E_IOERR_CLOSE has the HRESULT value 0x87AF100A. AllStat records the condition as “SQLITE_IOERR_CLOSE”. For SQLITE_E_IOERR_CLOSE, in practice, interpret that wording at the boundary owned by the Windows component or COM interface that returned the HRESULT, rather than treating the value as a generic Windows message.
Evidence to capture for SQLITE_E_IOERR_CLOSE
- Record the exact COM method or Windows API, its input object, the calling thread, and the full 0x87AF100A value before a wrapper converts it to an exception or Boolean result.
- Capture any IErrorInfo text, activity identifier, event-log entry, and subsystem trace that mentions SQLITE_E_IOERR_CLOSE or the sqlite / ioerr / close operation.
- For SQLITE_E_IOERR_CLOSE, compare the failing machine with a working one at the same configuration boundary: component version, policy, registration, identity, and target resource.
Retry and recovery for SQLITE_E_IOERR_CLOSE
Retry SQLITE_E_IOERR_CLOSE only when the owning API documents a transient state or after the condition described as “SQLITE_IOERR_CLOSE” has changed. For SQLITE_E_IOERR_CLOSE, configuration, policy, format, and authorization failures normally require correction first; an immediate loop can hide the original call site and add secondary errors.
Looking for a different code? Search another status or error code.