SQLAlchemy IntegrityError Python Origin: Application & API Last updated 12 Oct 2026

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.

Exact message you may see This Session's transaction has been rolled back
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 not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

Where this error sits

Origin: Application & API. Errors that are often confused with or caused by this one (click to open):

1062 — MySQL ERROR 1062 (23000): Duplicate entry for key (MySQL)106223505 — PostgreSQL: ERROR: duplicate key value violates unique constraint (PostgreSQL)23505ALREADY_EXISTS — API Error: Resource already exists (ALREADY_EXISTS / resource_already_exists / 409) (API)ALREADY_EXISTSDbUpdateException — DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. (.NET)DbUpdateExceptionHibernate ConstraintViolationException — org.hibernate.exception.ConstraintViolationException: could not execute statement (Java)Hibernate ConstraintV…LazyInitializationException — org.hibernate.LazyInitializationException: could not initialize proxy - no Session (Java)LazyInitializationExc…NonUniqueResultException — IncorrectResultSizeDataAccessException: query did not return a unique result: 2 (Java)NonUniqueResultExcept…SQLAlchemy OperationalError — sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server … failed (Python)SQLAlchemy Operationa…SQLAlchem…

Explore the map of this error Full error map →

🧠 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.

💬 What worked for others

No tips yet — did something else fix this for you?

Share what worked for you

Tips are checked by an editor before they appear. Links are removed.