cannot alter inherited constraint “…” on relation “…”
Symptoms
A statement failed with SQLSTATE 55000 (object_not_in_prerequisite_state), reported at severity ERROR. This is a Object Not In Prerequisite State condition: PostgreSQL emits the message cannot alter inherited constraint "…" on relation "…".
- The client receives SQLSTATE
55000(object not in prerequisite state). - The operation is rejected at
ERRORlevel; the statement does not complete.
What the server log shows
ERROR: cannot alter inherited constraint "…" on relation "…"
Why PostgreSQL raises this
Class 55 (Object Not In Prerequisite State) is raised when an object exists but is not in a state that allows the requested operation right now.
As described in PostgreSQL’s Appendix A PostgreSQL Error Codes, SQLSTATE 55000 carries the condition name object_not_in_prerequisite_state in class Object Not In Prerequisite State. (Paraphrased — see the linked reference for the exact wording.)
Common causes
- The object is locked, in use, or being modified by another session.
- A required precondition (e.g. an index, a prepared state) is not met.
- The operation cannot run while the object is in its current state.
How to fix it
- Wait for the conflicting session/operation to finish, then retry.
- Establish the missing precondition before retrying.
- Check for blocking locks with
pg_locks.
Version applicability
This message text is present in PostgreSQL 18, 19. It was introduced around PostgreSQL 18; earlier releases do not emit this exact text.
Related & next steps
Reference: PostgreSQL Appendix A PostgreSQL Error Codes.