Subject: Why is WAL-file based replica stuck for long time (hour?) in IPC:RecoveryConflictSnapshot ?

From: hubert depesz lubaczewski <[email-masked]>
Date: Thu, 18 Jun 2026 13:57:04 +0200

Hi,
we have set of clusters that run on pg14 (yes, I know, we are in process
of upgrading but it's complicated).

Recently we noticed that some of the DR nodes are lagging because they
get stuck on some wal files, and starup process, in pg_stat_activity
shows "IPC:RecoveryConflictSnapshot" as wait event.

The thing is that there are no othger connections doing anything to the
db. There are some idle monitor ones, running things like count(*) from
pg_stat_activity, every now and then, but we're talking about pg being
stuck on single wal up to an hour or so.

Stuck as in:
ps shows:
postgres: 14/main: startup recovering 00000003000065EA000000C6 waiting

What could it be, how to fix it?

Best regards,

depesz

---

From: Thom Brown <[email-masked]>
Date: Thu, 18 Jun 2026 14:07:36 +0100

> What could it be, how to fix it?

Have you got anything in the logs that say "conflict with recovery"?

Also, I know you are just running count(*), but is there a transaction
being left open?

SELECT pid, state, xact_start, query
FROM pg_stat_activity
ORDER BY xact_start NULLS LAST;

Any 'idle in transaction' for too long?

What is max_standby_streaming_delay and hot_standby_feedback set to?

Thom

---

From: hubert depesz lubaczewski <[email-masked]>
Date: Thu, 18 Jun 2026 15:33:56 +0200

> What is max_standby_streaming_delay and hot_standby_feedback set to?

No transactions were happening then. These are our "Disaster Recovery"
instances, and they are generally unused.

max_standby_streaming_delay is 10 minutes
hot_standby_feedback is on.

Please note that these are *NOT* doing streaming replication!

Best regards,

depesz

---

From: Laurenz Albe <[email-masked]>
Date: Fri, 19 Jun 2026 09:06:12 +0200

> Please note that these are *NOT* doing streaming replication!

Could it be bug #19490 [1]?
That would be fixed in the next minor releases.

Yours,
Laurenz Albe

 [1]: https://postgr.es/m/flat/19490-9c59c6a583513b99%40postgresql.org

---

From: hubert depesz lubaczewski <[email-masked]>
Date: Fri, 19 Jun 2026 12:07:21 +0200

> That would be fixed in the next minor releases.

Maybe it's related, but there are two issues:
1. it's not streaming replication
2. waitevent/type doesn't match. in my case it's
   IPC/RecoveryConflictSnapshot

Best regards,

depesz