Distributor Failures - Records on Hold

Distributors that are experiencing assignments errors and repeated failures are not shut down.  Instead, records that are experiencing errors will be placed on 'hold'.

Distribution Engine will create a single distribution log for a particular record and will retain that log through all unsuccessful attempts at the assignment until the update is committed.  If the number of failed attempts reaches a particular threshold the record will be placed in a hold status and excluded from further distribution cycles for a set amount of time.  Once that time has passed assignment will be attempted again.  Records on 'hold' can also be attempted again on request through the 'Distribution Logs' tab.

Distribution Engine - Distributor Failures

The health checker will run every hour and monitor the number of attempted assignments.  If a particular threshold is reached a notification email will be sent to the users configured on Distribution Settings as well as NC-squared support.  

Once the issue has been resolved (e.g. relaxing the validation rule, or fixing the records), you can then either wait for the records to be automatically retried or use the 'Retry All' feature on the Distribution Logs tab.

Records on Hold

The Distribution Logs tab will have information regarding any records that have been placed on hold. The  error message can be seen in the Distribution logs sidepanel. Additionally, the sidepanel will describe how many attempts have been made when the first attempt was made and when the next attempt will be.

  • Individual records can be removed from 'Hold' status by clicking on the 'Retry' button in the row menu or side panel..  After 'Retry' is clicked the record will attempt to assign in the next distribution cycle.
  • If there are multiple records on hold, the 'Retry all' button will become available. The retry all function will remove up to 9000 records from Hold and they will attempt to assign in the next distribution cycle.  If more than 9000 records are on hold, multiple clicks of 'Retry all' will be necessary.
Resolving Assignment Errors

Common sources of assignment errors are when custom automation fails, preventing the assignment from committing.  If at all possible the Distribution Engine Running user should be excluded from custom automation to prevent clashes.  The following articles give examples of how to exclude the running user for Triggers, Workflows, and Process Builder.

Other potential issues that would prevent record updates and resources on how to resolve them follow:

  • "No such column 'lastvieweddate' on entity 'Lead'."
  • "Operation not valid for this user type"
  • UNABLE_TO_LOCK_ROW or "unable to obtain exclusive access to this record"
    •  Another process has the record locked so that it can make updates.  Typically this will clear up after a few minutes and the assignment can be tried again.  If not check for long running jobs in Salesforce -> Setup -> Apex Jobs.
  • TRANSFER_REQUIRES_READ or "The new owner must have read permission"
    • The intended team member or team members do not have read access to the object attempting to assign.
    • The record attempting to assign is in violation of an active duplicate rule configured in Salesforce.  Review Salesforce -> Setup -> Duplicate rules.
  • "Value does not exist or does not match filter criteria."
  • "System.LimitException: Apex CPU time limit exceeded" - 
    • The combination of the number of records attempting to assign and the custom automation that starts after a record update is exceeding the Salesforce governor limit on Apex CPU time.  The article on Apex CPU time limit exceeded provides suggestions and advice on how to resolve errors of this type. 

If these suggestions do not resolve the errors or they happen continually please contact NC Squared, granting login access to enable us to diagnose the issue.



How did we do?

Scheduler Restarted

Assignment Errors