Yuki Kakegawa
10/11/2026, 7:12 PMkapa.ai
10/11/2026, 7:12 PMconfirmed_flush_lsn has advanced past the LSN saved in Airbyte's state ā a known bug in source-postgres versions >= 3.6.19. Here are your options:
Immediate Workarounds 1. Downgrade to source-postgres v3.6.18 (or v3.6.15) The most reliable short-term fix. The issue was introduced in v3.6.19 due to a PgJDBC regression (version 42.7.0+) that automatically advances confirmed_flush_lsn even when there are no new events for the publication tables. [CDC LSN issue]
2. Upgrade to source-postgres v3.7.2+ A fix was released in v3.7.2 (and a preview build 3.7.1-preview.8ed70f5). Users have confirmed this resolves the issue. [CDC LSN issue]
3. Set up a heartbeat table This is the most robust workaround if you can't change connector versions. It keeps the LSN advancing properly by writing small events to a dedicated table in the publication:
1. Create the heartbeat table:
CREATE TABLE public.airbyte_heartbeat (
id SERIAL PRIMARY KEY,
timestamp TIMESTAMP NOT NULL DEFAULT current_timestamp,
text TEXT
);
2. Add it to your Airbyte publication:
ALTER PUBLICATION <publicationName> ADD TABLE public.airbyte_heartbeat;
3. In the Postgres source connector settings, configure the Debezium heartbeat query field:
INSERT INTO public.airbyte_heartbeat (text) VALUES ('heartbeat');
This ensures that even when your tracked tables have low traffic, the publication sees activity and the LSN advances correctly. [WAL troubleshooting]
4. Add a high-traffic table to the publication (read-only option) If you don't want to give Airbyte write access, add a high-traffic table to the publication. You don't need to sync it ā it just keeps the LSN moving:
ALTER PUBLICATION <publicationName> ADD TABLE <high_volume_table>;
Note: this may increase disk consumption. [WAL troubleshooting]
5. Change "Invalid CDC position behavior" to "Re-sync data" This avoids hard failures by triggering a full re-sync instead. However, it's not ideal for large tables since it will silently perform a full refresh whenever the CDC state is invalidated. [CDC LSN issue]
Root cause summary: The bug stems from PgJDBC >= 42.7.0 automatically flushing the LSN when there are no new events for publication tables (even if the WAL has changes for tables outside the publication). This was introduced in source-postgres v3.6.19. [PgJDBC issue] š 0 button š 0 button ā¹ļø Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.Yuki Kakegawa
10/11/2026, 7:16 PMkapa.ai
10/11/2026, 7:16 PMPostgresCdcCtidInitializer calls pg_current_wal_lsn() multiple times and commits a higher LSN than what gets saved in the state. The heartbeat table doesn't fully protect against this race condition. [wrong LSN issue]
What You Should Do The most reliable fix is to upgrade to source-postgres v3.7.2, which community contributors have confirmed resolves the issue: [CDC LSN issue]
> "Airbyte released 3.7.2 which fixes this issue for me"
If upgrading isn't immediately possible, the next best option is to downgrade to v3.6.18 as a temporary measure while you plan the upgrade. [CDC LSN issue]
I'm sorry, but the knowledge sources don't contain enough detail to explain exactly why the heartbeat failed in your specific case beyond what's described above. If the issue persists after upgrading to v3.7.2, it may be worth opening a GitHub issue with your connector version and logs. š 0 button š 0 button ā¹ļø Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.Yuki Kakegawa
10/11/2026, 7:22 PMkapa.ai
10/11/2026, 7:22 PMconfirmed_flush_lsn not to advance ā a race condition in ReplicationSlotManager.advanceLsn() and a missing LSN fallback after the initial snapshot phase. [LSN fix PR]
So the short answer is: the v3.7.2 fix did not carry over cleanly into the v3.8.x rewrite, and the LSN advancement problem resurfaced in a different form.
I'm sorry, but the knowledge sources don't explicitly confirm whether PR #79671 has been released in v3.8.5 specifically. I'd recommend:
1. Checking the source-postgres changelog to see if the fix from PR #79671 is included in your version.
2. If not, upgrading to the latest available version of source-postgres. š 0 button š 0 button ā¹ļø Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.Yuki Kakegawa
10/11/2026, 7:27 PMkapa.ai
10/11/2026, 7:27 PMsearch_path (e.g. s2.kind[]), discovering them as array<string> rather than string. [array type fix]
I'd strongly recommend checking the official source-postgres changelog for a complete picture, as the knowledge sources only cover a subset of changes. š 0 button š 0 button ā¹ļø Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.