SUPPORT.TWILIO.COM END OF LIFE NOTICE: This site, support.twilio.com, is scheduled to go End of Life on February 27, 2024. All Twilio Support content has been migrated to help.twilio.com, where you can continue to find helpful Support articles, API docs, and Twilio blog content, and escalate your issues to our Support team. We encourage you to update your bookmarks and begin using the new site today for all your Twilio Support needs.

Fix Salesforce ConcurrentPerOrgLongTxn Reverse ETL Error

Issue

When syncing data using a Reverse ETL connection to Salesforce, the sync fails with a 403 Forbidden status and the destination returns the error: REQUEST_LIMIT_EXCEEDED: ConcurrentPerOrgLongTxn Limit exceeded.

If users attempt to resolve this by enabling the Bulk API for an upsert operation, the sync may subsequently fail and return the following payload error: Undefined bulkUpsertExternalId.externalIdName or externalIdValue when using bulkUpsert operation.

 

Product

Segment

 

Environment

Segment Console

 

Cause

The ConcurrentPerOrgLongTxn error occurs because standard REST API requests are sent individually. When Reverse ETL extracts and sends a high volume of records simultaneously, it exceeds Salesforce's concurrent transaction limits.

Enabling the Bulk API resolves this by collecting events into batches of up to 5,000 before sending them to Salesforce. However, if the operation is set to "Upsert", the Undefined bulkUpsertExternalId error occurs because the Bulk API requires a specifically mapped External ID to perform upsert operations, which is missing from the destination mapping.

 

Resolution

  1. Navigate to your Reverse ETL mapping in the Segment Console.
  2. Toggle the Use Salesforce Bulk API setting to Yes to batch requests and prevent concurrency limit errors.
  3. In the mapping settings, locate the Bulk Upsert External Id section.
  4. Map the External Id Name to the exact Salesforce API name of the field used as your unique identifier (for example, Email).
  5. Map the External Id Value to the corresponding column from your source model.
  6. Ensure that the field used for the External ID is not included again in the Other Fields mapping section. Including it as a custom field will cause an error in Salesforce.
  7. Save the mapping and run a sync.

 

Additional Information 

  • Segment automatically retries events that were extracted from your data warehouse but failed to load.
  • When Segment processes retries, the records from the current sync are always loaded first, followed by the previous failures. Because of this, the load graph for the newest sync will only reflect the initial load results. Once the retried records are successfully loaded, the Segment Console will update the status of the original failed syncs to "Success".
Have more questions? Submit a request
Powered by Zendesk