conduktor.io ↗
← All errors
high PostgreSQL Offset

Saved offset is before replication slot's confirmed_flush_lsn; streaming will start from the confirmed_flush_lsn

Root cause

The LSN stored in the Kafka Connect offset is older than the slot's confirmed_flush_lsn. PostgreSQL JDBC driver ≥ 42.7.0 aggressively flushes keepalive LSNs, advancing confirmed_flush_lsn beyond the position Debezium last committed. Events between the two positions are lost.

How to fix

  1. Upgrade to Debezium ≥ 2.7.4 which includes the fix for pgjdbc 42.7.x keepalive flush behavior.
  2. Keep the default lsn.flush.mode=connector (Debezium only flushes on commit, not on keepalive). If you need connector_and_driver, also set offset.mismatch.strategy=trust_slot to tolerate the discrepancy safely.
  3. If events were already lost: audit downstream for gaps and trigger an incremental snapshot on affected tables.
Introduced by pgjdbc 42.7.0 (released late 2023). If you upgraded the JDBC driver and started seeing gaps, this is likely the cause.
Official Debezium documentation ↗