SQLITE_ABORT
SQLiteWARNINGNotableTransactionofficial confidence

Callback routine requested an abort

Production Risk

Medium — statements must be retried or the transaction redesigned.

What this means

SQLITE_ABORT (4) is returned when an operation was aborted before completing. Commonly seen when a ROLLBACK is executed while a read is in progress, or when sqlite3_exec() callback returns non-zero.

Why it happens
  1. 1sqlite3_exec() callback returned non-zero, requesting abort.
  2. 2ROLLBACK issued while a prepared statement was active.
  3. 3sqlite3_interrupt() called from another thread.
How to reproduce

Multi-statement exec callbacks, or concurrent rollback during active read.

trigger — this will error
trigger — this will error
import sqlite3
conn = sqlite3.connect(':memory:')
conn.execute('CREATE TABLE t(x)')
conn.execute('INSERT INTO t VALUES (1)')
# Abort extended code also appears after ROLLBACK during active SELECT

expected output

sqlite3.OperationalError: abort due to ROLLBACK

Fix 1

Fix 2

Fix 3

What not to do

Sources

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

← All SQLite errors