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
- Catch IntegrityError, session.rollback(), and report “already exists”
- Validate references before inserting
- Use upserts (insert().on_conflict_do_update())
Detailed fix by platform
Python
- python
try: db.session.commit() except IntegrityError: db.session.rollback() raise
How to diagnose
- Constraint — Which one is named?
- 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.
Was this page helpful?
Report a correction or suggest an improvement
Last updated 2 Oct 2026