Sync Failures and Retries
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.
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. 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 |
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
- In the Zuora application, click the down arrow next to your user name.
- Select Settings > Commerce.
- 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.
Via System Health Dashboard
- Navigate to Administration > System Health in the left navigation menu.
- Within the System Health section, click Zuora Connector for Salesforce CRM.
- 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.
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
-
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.
-
-
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.
-
-
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:
- 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.
- 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.
- 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.
- Optional - Click Delete All to delete all the unsuccessful synced records.
Customize columns
To customize the columns displayed on the Retry page:
- Click the highlighted icon in the image at the top right of the table.
- 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 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.