pgref.dev/sqlite/errors/SQLITE_AUTH_USER
SQLITE_AUTH_USERERRORTier 2 — Caution⚠️ MEDIUM confidence

Authorisation denied by user

Category: AuthorisationVersions: 3.0+

🔴 Production Risk Error

Medium — SQL operation denied by application-level authorisation.

What this means

SQLITE_AUTH_USER (279) is a sub-code of SQLITE_AUTH returned specifically when the authoriser callback denies access due to a user-level permission check (as opposed to a schema-level check).

Why it happens

  1. 1Authoriser callback registered via sqlite3_set_authorizer() returned SQLITE_DENY for a user-specific operation.
  2. 2Multi-user SQLite extension (e.g., user_version-based auth) denied the operation.

How to reproduce

Any SQL operation when a custom authoriser callback denies it with user context.

trigger — this will ERROR
# In C, register an authoriser:
# sqlite3_set_authorizer(db, myAuth, NULL);
# If myAuth() returns SQLITE_DENY with user contextSQLITE_AUTH_USER
sqlite3.OperationalError: not authorized

Fix 1

Why this works

Review the authoriser callback logic to ensure the current user has the required permissions.

Fix 2

Why this works

Authenticate the user before performing the operation.

Sources

📚 Official docs: https://www.sqlite.org/rescode.html#auth_user

🔧 Source ref: sqlite3.h — SQLITE_AUTH_USER = 279

📖 Further reading: sqlite3_set_authorizer()

Confidence assessment

⚠️ MEDIUM confidence

Stable.

See also

🔗 Related errors

📄 Reference pages

sqlite3_set_authorizer
⚙️ This error reference was generated with AI assistance and reviewed for accuracy. Examples are provided to illustrate common scenarios and may not cover every case. Always test fixes in a development environment before applying to production. Spotted an error? Suggest a correction →