# sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) database is locked

- **ID:** `python/flask-sqlalchemy-database-lock`
- **Domain:** python
- **Category:** data_error
- **Verification:** ai_generated
- **Fix Rate:** 80%

## Root Cause

SQLite database locked due to concurrent writes or uncommitted transactions in Flask app.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 3.x | active | — | — |

## Workarounds

1. **** (80% success)
   ```
   Set SQLite timeout: engine = create_engine('sqlite:///app.db', connect_args={'timeout': 30})
   ```
2. **** (90% success)
   ```
   Use WAL mode: with engine.connect() as conn:
    conn.execute("PRAGMA journal_mode=WAL")
   ```

## Dead Ends

- **** — Timeout only waits for lock release; if transaction never commits, it still fails. (70% fail)
- **** — Uncommitted sessions hold locks; need explicit commit or rollback. (80% fail)
