Robert Holt
12/29/2025, 7:25 PMkapa.ai
12/29/2025, 7:25 PM“snapshot_completed“:true suggests Airbyte believes the snapshot finished, but if the commit_lsn remains static and the connection later fails with a missing offset, it indicates the saved position is no longer in the SQL Server transaction logs [[Sync fails after CDC cleanup](https://github.com/airbytehq/airbyte/issues/68150)]. When the CDC cleanup job runs on the MS SQL server, it removes entries older than your 72-hour retention window. If the connector hasn't successfully transitioned from "snapshot" mode to "streaming" mode (which would update the LSN), the next sync attempt will look for an LSN that has been deleted, causing a failure [[Sync fails after CDC cleanup](https://github.com/airbytehq/airbyte/issues/68150)]. ### 2. Table Interference and Heartbeats You mentioned the snapshot is interrupted on tables not selected in the sync. In MS SQL CDC, the connector may still monitor change events for the entire database to maintain the LSN position. * Heartbeat Issues: There is a known issue where MS SQL CDC syncs can run indefinitely or hang if there is low activity on the tables being tracked, causing the LSN heartbeat to stop progressing [[MSSQL CDC Sync runs infinitely](https://github.com/airbytehq/airbyte/issues/60304)]. * Missing Activity: If the tables in Connections 2 and 3 have very low traffic, the connector might not receive enough events to commit a new state, preventing the replication slot/LSN from advancing [[Stack Syncs and Automated Full Resyncs](https://discuss.airbyte.io/t/2675)]. ### 3. Connection and Buffer Constraints Since Connection 1 (10-minute interval) works while the others (1-hour and 24-hour) fail, the frequency of the sync is likely the deciding factor. * Back Pressure: Larger syncs or syncs with many tables can cause back pressure from the destination (Snowflake), leading to timeouts during the snapshot phase [[MySQL to Snowflake Fails](https://discuss.airbyte.io/t/2991)]. * Recommended Adjustments: * Increase the sync frequency for Connections 2 and 3 to match Connection 1 (e.g., every 10-15 minutes). This ensures the LSN is acknowledged and updated frequently, well before the 72-hour cleanup job runs [[Sync fails after CDC cleanup](https://github.com/airbytehq/airbyte/issues/68150)]. * If you have a large number of tables (more than 30), consider splitting them into even more connections, as high table counts can lead to "interrupted" states due to buffer limitations [[Postgres CDC connector stuck](https://discuss.airbyte.io/t/4373)]. ### Summary of Recommendations: 1. Increase Sync Frequency: Change Connections 2 and 3 to run more frequently (e.g., every 15 minutes) to ensure the LSN is updated before it is purged from the server logs [[Sync fails after CDC cleanup](https://github.com/airbytehq/airbyte/issues/68150)]. 2. Verify CDC on New Tables: Ensure that any tables recently added to the database have CDC explicitly enabled at the database level [[CDC Limitations](https://docs.airbyte.com/platform/2.0/understanding-airbyte/cdc#limitations)]. 3. Reset and Re-sync: Because the current saved offset is already lost (or "stuck" in a snapshot state that refers to a deleted LSN), you must Reset the connection to trigger a fresh initial snapshot [[Sync fails after CDC cleanup](https://github.com/airbytehq/airbyte/issues/68150)]. The knowledge sources do not explicitly mention why a table not in the schema would trigger an "interrupted" log, but this often points to the underlying Debezium engine scanning the database's transaction logs for all CDC-enabled tables to find the correct starting point.Robert Holt
01/02/2026, 6:46 PM