pgref.dev/sqlite/errors/SQLITE_IOERR_ACCESS
SQLITE_IOERR_ACCESSERRORTier 2 — Caution⚠️ MEDIUM confidence

I/O error checking file existence/access

Category: I/O ErrorVersions: 3.0+

🔴 Production Risk Error

Medium — database open may fail.

What this means

SQLITE_IOERR_ACCESS (3338) is returned when the VFS xAccess method fails while checking whether a database-related file (journal, WAL, etc.) exists or is accessible.

Why it happens

  1. 1OS error on stat() or access() syscall for journal/WAL file.
  2. 2Filesystem error checking file metadata.

How to reproduce

Database open or lock-check operations that probe for sidecar file existence.

trigger — this will ERROR
# stat() failure on -journal or -wal file triggers this
sqlite3.OperationalError: disk I/O error

Fix 1

Why this works

Check filesystem health.

Fix 2

Why this works

Ensure the application has read access to the database directory.

Sources

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

🔧 Source ref: sqlite3.h — SQLITE_IOERR_ACCESS = 3338

Confidence assessment

⚠️ MEDIUM confidence

Stable.

See also

⚙️ 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 →