Ian Hansen
12/15/2025, 8:41 PMkapa.ai
12/15/2025, 8:41 PMFull Refresh | Overwrite - Full Refresh | Overwrite + Deduped [[Full refresh deduped](https://docs.airbyte.com/platform/using-airbyte/core-concepts/sync-modes/full-refresh-overwrite-deduped)] 2. Check for resumed full refreshes - Full refresh syncs can be resumed, and when that happens, duplicates may occur. [[Full refresh deduped](https://docs.airbyte.com/platform/using-airbyte/core-concepts/sync-modes/full-refresh-overwrite-deduped)] - Look for: - Transient failures and automatic retries - Multiple attempts for the same job in the Airbyte UI/logs 3. Validate primary key and cursor assumptions for S3 Data Lake - S3 Data Lake assumes either: - The source never emits the same PK twice in a single sync, or - If it does, records for that PK are emitted in cursor order from oldest to newest. [[S3 Data Lake dedup](https://docs.airbyte.com/integrations/destinations/s3-data-lake#deduplication)] - If Postgres emits out‑of‑order updates for the same PK within one sync, Iceberg may keep an older version, which can look like “duplicate” or incorrect records. 4. Check data quality on the primary key - Confirm in Postgres that: - The PK column(s) are truly unique and non‑null. - The open S3 Data Lake issue shows that even with perfect PKs, dedup can fail on some tables, so if your PKs are clean, that strengthens the case for a bug. [[S3 DL issue](https://github.com/airbytehq/airbyte/issues/63359)] 5. Try a controlled repro - Create a minimal test connection: - One small Postgres table with a simple integer PK. - Same destination (S3 Data Lake) and same sync mode. - Run: 1. One full refresh. 2. Optionally, another full refresh to see if duplicates appear only after retries/resumes. - If duplicates appear in this minimal case, it’s strong evidence of a connector/platform issue. ### 3. How to file a good bug report The knowledge sources don’t give a formal template, but based on the existing S3 Data Lake issue, include at least: - Environment - Airbyte version - Deployment type (Docker, Kubernetes, etc.) - Connectors - Source: Postgres (version) - Destination: S3 Data Lake (exact version) [[S3 DL issue](https://github.com/airbytehq/airbyte/issues/63359)] - Configuration - Sync mode: e.g. Full Refresh | Overwrite + Deduped - Stream name(s) - Primary key fields configured in the connection - Observed behavior - Where duplicates appear (raw files vs final Iceberg table) - Example PK value that appears more than once - Evidence that PKs are unique and non‑null in the source - Whether the job was retried or resumed - Expected behavior - For Full Refresh Overwrite + Deduped, final table should have one row per PK. [[Full refresh deduped](https://docs.airbyte.com/platform/using-airbyte/core-concepts/sync-modes/full-refresh-overwrite-deduped)] - Reproduction steps - Step‑by‑step actions you took (including any reset, re‑runs, etc.) - If possible, a minimal table definition and sample data that reproduces the issue You can then open an issue in the Airbyte GitHub repo similar to the existing S3 Data Lake deduplication issue, referencing that you’re seeing duplicates in a Full Refresh scenario with Postgres → S3 Data Lake and attaching the details above. [[S3 DL issue](https://github.com/airbytehq/airbyte/issues/63359)] If you share the exact sync mode and where you see the duplicates (raw vs final), I can help you tighten the repro description further.Ian Hansen
12/15/2025, 8:54 PMkapa.ai
12/15/2025, 8:54 PMkapa.ai
12/15/2025, 8:54 PMIan Hansen
12/15/2025, 10:09 PMIan Hansen
12/15/2025, 10:09 PMkapa.ai
12/15/2025, 10:09 PMkapa.ai
12/15/2025, 10:09 PMIan Hansen
12/15/2025, 10:15 PMIan Hansen
12/15/2025, 10:15 PMkapa.ai
12/15/2025, 10:15 PMkapa.ai
12/15/2025, 10:15 PM