Diagnostic step 1
Check per-partition reloptions: SELECT relname, reloptions FROM pg_class c JOIN pg_namespace n ON c.relnamespace = n.oid WHERE relname LIKE 'your_partition_prefix%'; ensure autovacuum_enabled is not false.
Generated Oct 3, 2026, 12:35:03 AM
Check per-partition reloptions: SELECT relname, reloptions FROM pg_class c JOIN pg_namespace n ON c.relnamespace = n.oid WHERE relname LIKE 'your_partition_prefix%'; ensure autovacuum_enabled is not false.
Inspect pg_stat_activity and pg_replication_slots for long-running transactions or replication slots holding old xmin; terminate or advance replication where appropriate before vacuuming.
Enable autovacuum logging (log_autovacuum_min_duration = 0) temporarily and monitor logs when new partitions are created to see if autovacuum schedules them.
If partitions were created by a script, review and standardize creation to ensure declarative partitioning or include ALTER TABLE ... SET (autovacuum_enabled = true) immediately after creation.
As an immediate remediation, schedule a controlled manual VACUUM ANALYZE for new partitions during low-traffic windows. If you suspect a deeper catalog visibility bug, capture server logs and consider escalating to a DBA or opening a PostgreSQL support ticket with the logs and a minimal repro.