On Sat, Sep 5, 2026 at 7:30 AM Greg Sabino Mullane <htamfids@gmail.com> wrote:
This is not a normal FATAL from the server - that particular message is coming from pgcat, not from Postgres. So the normal FATAL/connection terminated/reconnect flow is not relevant here, as it is pgcat that is responsible for all this. The FATAL is being sent to the client only - pgcat is probably releasing that connection and fetching you a new one in the background. Try tweaking your idle_client_in_transaction_timeout setting in your pgcat config to duplicate/debug the behavior, and sprinkle some pg_backend_pid() calls in there.
100% this. It looks like pgcat may be mixing up the sessions so that a transaction might not be 'pinned' properly to a single client after being opened. I can't say for sure since I'm not so familiar with pgcat but this looks dangerous; somehow an open transaction may have been checked back into the pool.