SQLAlchemy IntegrityError 🐍 Python

sqlalchemy.exc.IntegrityError: (psycopg2.errors.UniqueViolation) duplicate key value violates unique constraint

A database constraint (unique, foreign key, not null) rejected an insert/update made through SQLAlchemy.

Seen on: Python

Meaning

The parenthesised driver error names the constraint. After an IntegrityError the session must be rolled back before it can be used again.

Common causes

  • Duplicate unique value
  • Foreign key pointing to a missing row
  • NULL in a NOT NULL column
  • Session not rolled back after a previous failure

⚡ Quick fix

  1. Catch IntegrityError, session.rollback(), and report “already exists”
  2. Validate references before inserting
  3. Use upserts (insert().on_conflict_do_update())

Detailed fix by platform

Python

  1. python
    try:
        db.session.commit()
    except IntegrityError:
        db.session.rollback()
        raise

How to diagnose

  1. Constraint — Which one is named?
  2. Session — Rolled back after errors?

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.