What does HRESULT 0x87AF0005 (SQLITE_E_BUSY) mean?

 
Previous Next
SQLITE_E_ABORT SQLITE_E_LOCKED

SQLITE_E_BUSY

SQLITE_E_BUSY corresponds to SQLite SQLITE_BUSY. SQLite documents this as a lock conflict with a separate database connection, often in another process, rather than a conflict inside the same connection.

What to check

  • Identify the competing writer or long-running reader and shorten transaction duration before increasing timeouts.
  • Use a bounded busy handler or sqlite3_busy_timeout() only where waiting is safe for the application.
  • For WAL databases, check whether a long-lived reader prevents checkpoint progress.
PRAGMA wal_checkpoint(PASSIVE);

SQLite: Result and Error Codes

SQLite: File locking and concurrency

SQLite: Set a busy timeout

SQLite: Write-Ahead Logging


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