Classifier Errors

The Distribution Classifier will attempt to classify all new records, but sometimes this can fail due to validation or other errors. If that happens the classification will continue to be attempted each time the Classifier runs. When the Distribution Engine Health Checker runs it will look for records that have failed a number of times in a row and send an email with the details of those records that are failing. The same information can also be seen from the Classifier logs pages.

Here are some of the common potential issues that would prevent record updates and resources on how to resolve them:

  • 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, if not check for long running jobs in Salesforce -> Setup -> Apex Jobs.
    • The record attempting to be classified is in violation of a custom validation rule.  This error is typically accompanied by a custom error message related to the validation rule. In order to resolve the issue the record would need to be made valid or deleted.  It is also possible to exclude the user the ClassifierQueueable job is running under from the validation rule, if appropriate.
    • The record attempting to assign is in violation of an active duplicate rule configured in Salesforce.  Review Salesforce -> Setup -> Duplicate rules.
  • "Operation not valid for this user type"
  • "System.LimitException: Apex CPU time limit exceeded" - 
    • The combination of the number of records being classified 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. 

Errors due to Salesforce limits when updating a record can cause the Distribution Classifier queueable job to fail.  If at all possible the Distribution Engine Running user should be excluded from custom automation and unnecessary validation rules to prevent failures.  The following articles give examples of how to exclude the running user for Triggers, Workflows, and Process Builder.

If the ClassifierQueueable job has aborted, the Distribution Engine Health Checker will restart it the next time it runs.  The job can also be restarted from the 'Distribution Classifier' tab.

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?

Assignment Errors

Apex CPU time limit exceeded