Skip to main content

Sync Failures and Retries

Zuora

Sync Failures and Retries

This article explains managing data sync between Zuora and Salesforce CRM, covering troubleshooting, error handling, and manual retry processes for sync failures.

Overview

Keeping your Zuora and Salesforce CRM data in sync is important, but occasional failures can occur. Here's a quick rundown of what to expect:

  • Common Causes: Sync failures can happen due to expired Salesforce integration user credentials, Salesforce throttling Zuora's requests (rate limiting), or missing CRM IDs on the records being synced.
  • Automatic Retries: Don't worry about temporary hiccups! Zuora automatically retries failed sync attempts for you.
  • Manual Intervention Needed: However, these retries have a limit. This section will explain Zuora's retry process and how to manually retry a failed sync if needed.

Sync retry process

Zuora Connector for Salesforce CRM's daily retry job to sync objects that were failed to sync is triggered twice a day, at 11:30 AM and 11:30 PM UTC. It retrieves records within the past 7 days, processing 50,000 records at a time.

Zuora tries retries for all records except when encountering a DACO-02 error code. This error code indicates that a Parent billing account is missing a CRM ID. For further details and more information on error codes, see the Sync Errors Reported section.

Retry process (7).png

Sync errors reported

This table provides details on error codes encountered during Zuora and Salesforce CRM data synchronization, including explanations and recommendations for resolving them.

Code

Short Message

Explanation

DACO-903303

Missing Field Permission

Check the field permissions on the issue.

DACO-01

 

Known Target System Error

Known SFDC error. This can range across a wide variety of errors that will be identified via the error message.

1. INVALID_FIELD.not found for field. - Field does not exist in SFDC

2. CANNOT_EXECUTE_FLOW_TRIGGER.* - Issue with trigger on the SFDC side. Error message will have more info

3. INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY.* - Provided CRM ID does not exist in the SFDC org

4. MISSING_ARGUMENT.* - N/A

5. DUPLICATE_VALUE.* - A value with a duplicate primary key already exists in SFDC. SFDC ID will be in the error message. Deleting that object and retrying should work

6. External ID.more than one record found for external ID field. - Similar to the DUPLICATE_VALUE error, but with external ID instead of primary key

7. ENTITY_IS_DELETED - Record has already been deleted, no action needed

8. Foreign key external ID.not found for field. - Same as DACO-05 lookup error

9. Field name provided.* - N/A

10. CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY.* - Could not insert or update the record. Recommend checking write permissions on the tenant

DACO-02

Missing CRM ID

Parent billing account is missing a CRM ID or it is malformed. Recommend populating that field.

This error will not be selected for automatic retry processing.

To learn more about resolving this error, see Fixing DACO-02 errors.

DACO-03

Record has already been deleted

DACO tried to delete an already deleted object. No action needed from the you.

DACO-04

Login Failure

Invalid credentials. Recommend checking the sync user and maybe re-inputting the credentials in the billing UI if necessary.

DACO-05

Waiting for lookup dependency

Child object is waiting for parent. Recommend retrying the parent record with a dummy update or a retry from SHD if it failed due to some error.

DACO-06

Target System Resource Limit

SFDC request or storage limit exceeded. The error message will specify which. For request limits, recommend waiting some time before retrying. For storage limits, recommend freeing up some space in the org.

DACO-07

Target System Unavailable

SFDC target is down, typically happens during planned SFDC maintenance. Recommend checking SFDC trust for an incident or seeing if there's any maintenance going on there

DACO-08

Throttled message due to too many SFDC failures

Some kind of consistent failure was detected against the SFDC org which triggered additional records to be throttled.

DACO-09

Failed to extract SFDC namespace

Failed to parse the SFDC package namespace. No action needed.

DACO-10

Row locking error

Multiple records are trying to access the same parent as part of sync, and the SFDC database row locked. Recommend retrying, but in small batches if possible.

DACO-11

Target System Timeout

SFDC timed out on an API call. Recommend retrying if temporary or taking a look at if there's something going on with the org that would cause poor performance.

DACO-12

String field is too long for corresponding SFDC field

A field was too long for the target SFDC field. Recommend truncating the field in billing if possible.

DACO-13

Error occurred while getting calculated fields

This is a Zuora issue where a callback to billing failed. Recommend retrying the record from the failure list/SHD.

DACO-98

SFDC error occurred during transfer

The error message should have more info, such as which trigger or flow is failing and why.

DACO-101
DACO-198

Deprecated codes

All DACO errors > 100 should never happen, they're part of the deprecated dynamics connector.

View sync results 

You have two options for accessing sync results: through the Commerce Admin or via the System Health Dashboard.

Via Commerce Admin

  1. In the Zuora application, click the down arrow next to your user name.
  2. Select Settings > Commerce.
  3. Click Sync Failure List page. Here, you will find a list of records that failed to sync. Hover your mouse over any specific error message to view the complete error message associated with that particular failure.

Sync Failure Page.png

Via System Health Dashboard

  1. Navigate to Administration > System Health in the left navigation menu.
  2. Within the System Health section, click Zuora Connector for Salesforce CRM.
  3. Under the Overview tab, you can find the number of object sync requests sent within a specified time range and details of each request, including successful and failed sync.

System health .png

Retry sync failures manually

You can manually retry sync failures through two different methods: via the Sync Failure List page or through the System Health Dashboard.

Via Sync Failure List page

  1. On the Sync Failure List page, select the checkboxes before the failure records you are to retry the sync.
    You can quickly select all the records by selecting the checkbox in the header row.
    Also, you can select the records by object type using the object type filter, as shown in the following step:

    • Select the object type from the Record Type field at the top right of the Sync Failure List page.

      When you select a parent object type to re-sync, its child object type will also be re-synced. For example, if you select the Invoice objects to re-sync, the Invoice Item and Taxation Item objects will also be re-synced.

  2. Click Retry to retry the sync.

    • If a failure record is successfully re-synced, it will be removed from the Sync Failure List page automatically.

    • If a failure record is failed to be re-synced, the record will remain on the Sync Failure List page with the same ZUORA ID field, but with the SYNC DATE field being updated to the latest time.

  3. Optional - Click Retry All to retry sync for all the unsuccessful synced records.

Via System Health Dashboard

Alternatively, you can manually retry sync failures using the Failure Retry function available under the Zuora Connector for Salesforce CRM dashboard's section.

Refer to the Failure Retry function documentation for detailed instructions on utilizing this feature.

By leveraging these manual retry methods, you can efficiently address sync failures, ensuring smooth data synchronization between Zuora and Salesforce.

Setup threshold notifications

Standard events are pre-defined business events for Zuora Billing, Zuora Payment, Zuora Finance, and Zuora Central Platform. Zuora provides you with the supported standard events out of the box.

For more information, see Standard events for Zuora Central Platform.

Managing sync exception

Fixing DACO-02 errors

A DACO-02 error indicates a missing or malformed CRM ID for the parent billing account. To resolve this, update the CRM Account ID. Refer to "Edit a CRM Account ID" for further guidance.

Managing Credential Failures/Issues

If you encounter issues related to credentials for connecting to Salesforce, update the credentials. Refer to "Set up Sync Credentials to Connect to Salesforce" for more information.

Delete sync failures

To delete a sync failure:

  1. On the Sync Failure List page, select the checkboxes before the failure records you are to delete. You can quickly select all the records by selecting the checkbox in the header row.
  2. Also, you can select the records by object type using the object type filter, as shown in the following step:
    • Select the object type from the Record Type field at the top right of the Sync Failure List page.
  3. Click Delete to delete the sync for the selected object types. The selected records will be deleted from Zuora and removed from the OBJECTS TO RETRY page.
  4. Optional - Click Delete All to delete all the unsuccessful synced records.

Customize columns

To customize the columns displayed on the Retry page:

  1. Click the highlighted icon in the image at the top right of the table.
  2. Use the checkbox to select the fields you wish to display in the table. Additionally, you can easily change the order of the displayed fields by dragging and dropping them using the mouse.

Sync failure page - column.png

Sync retry rules

If there are records that failed to be synchronized, Zuora Connector for Salesforce CRM will retry syncing those failed records, in subsequent sync sessions. The retry rules consist of the following:

  • If the previous operation was a Sync Cleanup, all object records will be synchronized.
  • If the object type has not been synchronized since the last finished Sync Cleanup, all object records of this type will be synchronized.
  • If there was a sync and the sync was cancelled, all objects records will be re-synched.
  • If the last sync ended with errors before this object type was synchronized, the object records with errors will be re-synchronized.
  • If the previous sync ended with errors due to a field migration job for an upgrade of the Salesforce package, the sync session will start from where the last sync stopped.