In one of projects I am using Airbyte OSS along wi...
# replication-ask-ai
w
In one of projects I am using Airbyte OSS along with RDS MySQL source (CDC BinLog based). Over the weekend there was some issue while running syncs. We've got following error mesage:
Copy code
The error FailedRecordIteratorException with the nested Kafka Connect exception in Airbyte typically occurs during CDC (Change Data Capture) syncs from relational databases like Postgres, MySQL, or Oracle RDS.
(We suspect the issue was it could be due to binlog was deleted due to AWS RDS instance auto update) Now after three days as the BinLog is outdated (or completely new) the connection is not working and after restart it is throwing following error:
Copy code
Failure in source: Saved offset no longer present on the server. Please reset the connection, and then increase binlog retention and/or increase sync frequency. See <https://docs.airbyte.com/integrations/sources/mysql/mysql-troubleshooting#under-cdc-incremental-mode-there-are-still-full-refresh-syncs> for more details.
What is the less painful approach to restore the connection without a need to perform initial full refresh again? What would be recommended approach to handle this long term (we had similar issue alrady two months ago)?
k
Addressing the "Saved Offset No Longer Present" Error Immediate Fix Unfortunately, based on the knowledge sources, there is no documented way to restore the CDC connection without performing a full refresh (re-snapshot) once the binlog offset is lost. The error message itself instructs you to reset the connection, which triggers a full re-sync. [MySQL troubleshooting] The knowledge sources do not describe a method to manually manipulate the saved state/offset to skip the initial snapshot in this scenario. Long-Term Prevention To avoid this recurring issue, here are the recommended approaches: 1. Increase Binlog Retention on RDS Set the
binlog retention hours
parameter on your RDS instance to at least 24 hours — and ideally 7 days (168 hours):
Copy code
call mysql.rds_set_configuration('binlog retention hours', 168);
> ⚠️ Note: This parameter defaults to
0
on RDS, meaning binlogs are removed immediately. This is very likely the root cause of your recurring issue. [MySQL troubleshooting] 2. Increase Sync Frequency Sync more frequently so that Airbyte always reads binlogs before they expire. The general rule is: your binlog retention period must always be longer than your sync interval. [CDC best practices] Recommended retention vs. sync frequency examples: 3. Configure "Invalid CDC Position Behavior" In your Airbyte connection settings, configure the Invalid CDC Position Behavior: • "Fail Sync" is recommended for production/large databases — it stops the sync and alerts you rather than silently triggering an expensive full re-snapshot. [CDC best practices] This way, you get notified immediately when the offset is lost, rather than discovering it days later. Summary The recurring nature of this issue (twice in two months) strongly suggests the RDS default binlog retention of
0
is the root cause, especially combined with weekend maintenance windows where syncs may be delayed. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help., with interactive elements