Transaction ID wraparound prevents new transactions
criticalavailabilityUpdated Feb 26, 2026
Technologies:
How to detect:
When database reaches fewer than 3 million transactions before wraparound (2 billion transaction limit), PostgreSQL refuses to assign new XIDs to prevent catastrophic data loss. System emits warnings at 40 million transactions from wraparound.
Recommended action:
Resolve old prepared transactions via pg_prepared_xacts. End long-running transactions found in pg_stat_activity with large age(backend_xid) or age(backend_xmin). Drop old replication slots from pg_stat_replication with large age(xmin) or age(catalog_xmin). Execute database-wide VACUUM (not VACUUM FULL). Do not stop postmaster or enter single-user mode.