Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wuXOO-000mEY-0X for pgsql-bugs@arkaria.postgresql.org; Thu, 13 Aug 2026 15:30:52 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wuXOL-00F8OV-33 for pgsql-bugs@arkaria.postgresql.org; Thu, 13 Aug 2026 15:30:51 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wtvR4-004V24-1s for pgsql-bugs@lists.postgresql.org; Tue, 11 Aug 2026 22:59:08 +0000 Received: from mahout.postgresql.org ([2001:4800:3e1:1::227]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wtvR2-00000000BJN-3jvm for pgsql-bugs@lists.postgresql.org; Tue, 11 Aug 2026 22:59:06 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=postgresql.org; s=20171124; h=Message-ID:Date:Reply-To:Cc:From:To:Subject: Content-Transfer-Encoding:MIME-Version:Content-Type:Sender:Content-ID: Content-Description:In-Reply-To:References; bh=RMk0kZPsDJHMUhT4ZQnA3fPXHCOcn9ovlI9eYKSmhlg=; b=Vq8goeopWUuUXAVaQK0tgFJsx6 vZhWogOHjvEJS0AqLkzd2tAAtq/ABkr8PddhQux738WvNOqg8+P8bI+53/hHEsBTv6UhI0KhPvNL2 j560ac0TBleFbzA83QB1BcZ05zmoUx9mTyAaxB5V+MiAa8kas9vQQPLMadtRlY2rOBW7pLvqZcBHB ynvc92OL4Q+xZ67sSQdXlLnFW7blNHOW8qD8MUdQa0JJ7ydDNcS8lmysk3Spt3h7VwQnVnkxY8Yhx wuXwoJG9tnBTD9/nvkL6ekPCRxPwneEfwNL0UIKDTb4s/8ZskDq7xMQC3f5LBnJ3GtwsMYBkfWhKm cFs9MG/g==; Received: from wrigleys.postgresql.org ([2a02:16a8:dc51::60]) by mahout.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wtvR2-000Wbz-1N for pgsql-bugs@lists.postgresql.org; Tue, 11 Aug 2026 22:59:04 +0000 Received: from localhost ([127.0.0.1] helo=wrigleys.postgresql.org) by wrigleys.postgresql.org with esmtp (Exim 4.98.2) (envelope-from ) id 1wtvR1-00000001eny-0P59 for pgsql-bugs@lists.postgresql.org; Tue, 11 Aug 2026 22:59:03 +0000 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Subject: BUG #19616: pgoutput sends stream abort ('A') to clients that did not enable streaming To: pgsql-bugs@lists.postgresql.org From: PG Bug reporting form Cc: tyler@smarts.io Reply-To: tyler@smarts.io, pgsql-bugs@lists.postgresql.org Date: Tue, 11 Aug 2026 22:58:04 +0000 Message-ID: <19616-f6153af509910853@postgresql.org> X-Auto-Response-Suppress: All Auto-Submitted: auto-generated List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk The following bug has been logged on the website: Bug reference: 19616 Logged by: Tyler Smart Email address: tyler@smarts.io PostgreSQL version: 18.4 Operating system: Linux (Docker; also Google Cloud SQL) Description: =20 Since PostgreSQL 18, pgoutput can send a Stream Abort ('A') message to a client that connected with proto_version 1 and never enabled streaming. Protocol 1 clients do not implement the stream message set, so consumers fail on it: Debezium (and tools that embed it, like Airbyte) dies with "Unsupported message type: A", and because the crash repeats at the same WAL position on every restart, the slot stops advancing until max_slot_wal_keep_size invalidates it. I reproduced this on 18.4 (Debian 18.4-1.pgdg13+1, official Docker image) and on Cloud SQL 18.1. The identical script does not reproduce it on 17.10. The trigger needs three conditions in one decode run: 1. logical_decoding_work_mem is exceeded, so eviction runs. 2. The eviction candidate has already aborted in clog. 3. That transaction has a subtransaction with changes still in memory.