Investigation
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 attach table "…" as partition because it is referenced in publication … EXCEPT clause.
- The client receives SQLSTATE
55000(object not in prerequisite state). - The operation is rejected at
ERRORlevel; the statement does not complete. - The server adds a
DETAILline with specifics (see below).
What the server log shows
ERROR: cannot attach table "…" as partition because it is referenced in publication … EXCEPT clause
DETAIL: The publication EXCEPT clause cannot contain tables that are partitions.
HINT: Change the publication's EXCEPT clause using ALTER PUBLICATION ... SET ALL TABLES.
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 19. It was introduced around PostgreSQL 19; earlier releases do not emit this exact text.
Related & next steps
Reference: PostgreSQL Appendix A PostgreSQL Error Codes.
Related & next steps
Thanks — noted. This helps keep the database accurate.