SQLITE_PROTOCOL
SQLiteERRORNotableLockingofficial confidence

Database locking protocol error

Production Risk

High — concurrent access may corrupt data if the locking protocol diverges.

What this means

SQLITE_PROTOCOL (15) indicates that SQLite detected a file locking protocol failure — another process used an incompatible locking protocol on the same database file.

Why it happens
  1. 1Two processes using different SQLite locking implementations on the same file.
  2. 2Custom VFS with non-compliant lock semantics.
  3. 3NFS or network filesystem not supporting mandatory locks correctly.
How to reproduce

Concurrent access from processes using different SQLite versions or custom VFS layers.

trigger — this will error
trigger — this will error
# Typically appears as:
# sqlite3.OperationalError: locking protocol

expected output

sqlite3.OperationalError: locking protocol

Fix 1

Fix 2

Fix 3

What not to do

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

← All SQLite errors