Mathilde Chevalier
04/29/2026, 8:12 AMkapa.ai
04/29/2026, 8:12 AMid_bo = 4193 in your Google Sheet, but the BigQuery table shows 3 rows with different _airbyte_extracted_at timestamps. This is expected behavior in Airbyte, and here's why: Why duplicates appear with Full Refresh - Overwrite Airbyte is an at-least-once delivery system. Even within a single sync, Airbyte paginates through the source data in chunks. If a sync fails partway through and needs to retry, records from the already-processed chunk will be re-sent on the next attempt, resulting in duplicate rows with different _airbyte_extracted_at timestamps. [Resumability]
Additionally, each time a Full Refresh - Overwrite sync runs successfully, it replaces all data in the destination. The multiple timestamps you see suggest the record was written across multiple sync runs or retry attempts. [Full Refresh - Overwrite] How to fix this If avoiding duplicates is a strong requirement, Airbyte recommends switching to Full Refresh - Overwrite + Deduped instead of plain Overwrite. This mode:
⢠Still replaces all data each sync
⢠But also deduplicates the final table by primary key, keeping only the latest row per unique key
> "If avoiding duplicate is a strong requirement, we recommend using Overwrite + Deduped over Overwrite. Bear in mind that deduplication incurs additional warehouse costs." [Full Refresh - Overwrite + Deduped]
In your case, setting id_bo as the primary key with the Overwrite + Deduped mode would ensure only one row per id_bo exists in the final BigQuery table. š 0 button š 0 button ā¹ļø Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.Mathilde Chevalier
04/29/2026, 8:14 AMkapa.ai
04/29/2026, 8:15 AMMathilde Chevalier
04/29/2026, 8:37 AMkapa.ai
04/29/2026, 8:37 AMadditional_data_adgroup shows 146 extracted).
This is actually a known issue with the destination-bigquery connector. Based on the GitHub issue in the knowledge sources, syncs can hang indefinitely even after all data has been flushed. The logs in that issue show:
⢠Queue size drops to 0 records / 0 bytes
⢠Workers report "nothing to do"
⢠But the sync never terminates on its own
The root cause appears to be related to how the BigQuery destination handles the final flush and termination signal. In some cases, a null job value is returned by BigQuery (Received null value for Job, nothing to waitFor), and the sync gets stuck waiting for a terminal status that never arrives. [sync hangs forever]
A similar issue was also reported where a sync completes all data loading but fails because no terminal stream status message is ever received, causing the sync to hang or fail with a TransientErrorException. [terminal status issue]
What you can do:
⢠Cancel and retry the sync ā in many reported cases, the data was actually loaded correctly despite the hang
⢠Check your BigQuery tables to confirm the data is already there before retrying
⢠Report the issue to Airbyte if it happens consistently, as both linked GitHub issues are still open
The knowledge sources do not provide a definitive fix for this behavior yet, as these are open bugs. š 0 button š 0 button ā¹ļø Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.