Skip to main content
Question

Salesforce sync issues: Invisible duplicates

  • May 11, 2026
  • 1 reply
  • 14 views

Forum|alt.badge.img+6
I'm experiencing a persistent issue with my Salesforce sync and have followed the troubleshooting steps in the Airtable documentation without resolution. I'm hoping that someone can help me understand why I continue to get these errors!
 
Could anyone help me identify whether this is a known pagination issue with the Salesforce Reports API integration, and whether there is a fix or configuration option on Airtable's side?

The Sync
  • The sync source is a Salesforce Report, type "Leads,"​ in a standard tabular format, no groupings, summaries, matrices, or joined data. The only filter​s applied ​are​: Created Date after October 2020, Converted = False, and filters to limit Owners (segmenting by Department)​. ​The report is sorted by 18-digit Record ID.​
  • The Unique ID field is set to the native Salesforce 18-digit Record ID. 
  • The Salesforce report contains 2,097 rows (confirmed via CSV export). Airtable is receiving approximately 2,212 rows before deduplication​, 115 more rows than exist in the source report.

The Error
  • This warning appears on every sync attempt. It started showing up about 3 weeks ago, and has continued to appear through all troubleshooting steps​, sometimes with different Example IDs: 
This source generated warnings. 120 row(s) were dropped because your unique ID field (18-digit ID) had duplicates. Examples: '00QRf00000aOCWLMA4' (1 time), '00QRf00000aNJGXMA4' (1 time), '00QRf00000aMPcbMAG' (1 time)
 
Background/History
  • This sync worked correctly for an extended period before the issue began.
  • ​I experienced a broader sync outage recently (OAuth/session expiry), ​but​ I resolved that by installing the Airtable connector in Salesforce, and the duplicate warning appeared both before and after that issue was resolved.
  • I have since recreated the synced table from scratch and fully reconnected the Salesforce integration​, but the error h​as continued to appear.

More details
  • The three example IDs flagged as duplicates correspond to records at positions 118, 119, and 120 in the report when sorted by 18-digit ID.
  • Given that exactly 120 records are dropped and the flagged examples sit at positions 118–120, I am wondering if Airtable's sync may be receiving the first ~120 records twice, once in an initial batch and again in the main paginated response from the Salesforce Reports API.

What I tried
I ruled out the following as causes:
  • Duplicate records in Salesforce (confirmed clean via CSV pivot table)
  • Report groupings, summaries, or joined data (none present)
  • Sort order (tried multiple sort configurations)
  • Stale sync cache (recreated the table from scratch)
  • OAuth/connection issues (fully reconnected)

Splitting the report across multiple tables is not a workable solution for my base due to linked records, automations, and other dependencies.

Thank you for your help!

1 reply

Forum|alt.badge.img+5
  • Participating Frequently
  • May 11, 2026

You are correct, it looks like this is an issue with pagination on Airtable’s side.  It strongly suggests that it is the first page of results getting duplicated because of the fact that it is always 120 records that are being duplicated.

You could check Airtable’s status page and elsewhere in the community for any recent reports of this issue occurring.  This may indicate if others are seeing the same thing which could mean Airtable is already aware and handling this.

Very unlikely it is on your end, especially since you said that the issue started 3 weeks ago on a previously working sync.  Something in Airtable must have changed in the handling of initial API requests to Salesforce Reports.

Best is to reach out to support, especially if you didn’t see anything else about this in the community.  When talking to support frame it exactly how you did here.  You can include your record count discrepancy and show how it is always 120 records and the position of the flagged IDs.  This should get Airtable to look at it more directly.