Code SQLITE_PROTOCOL · An issue reported by SQLite.
Official explanation · Original text
The SQLITE_PROTOCOL result code indicates a problem with the file locking protocol used by SQLite. The SQLITE_PROTOCOL error is currently only returned when using WAL mode and attempting to start a new transaction. There is a race condition that can occur when two separate database connections both try to start a transaction at the same time in WAL mode. The loser of the race backs off and tries again, after a brief delay. If the same connection loses the locking race dozens of times over a span of multiple seconds, it will eventually give up and return SQLITE_PROTOCOL. The SQLITE_PROTOCOL error should appear in practice very, very rarely, and only when there are many separate processes all competing intensely to write to the same database.
Troubleshooting and diagnostic links
First check that the document's product, version, and environment match your situation.
Modifications: English prose extracted; whitespace normalized; Korean context and classified official links added. Python code examples not redistributed.