“ENTITY_IS_LOCKED” error while updating record using flow or manually

INTRODUCTION

This error can take place while updating the record manually or using automation. This simply tells the record is locked due to pending approval process or due to being a direct child of a master record. There are two scenario when this takes place.

  • When a record is locked due to pending approval process.
  • When a record is detail record of a master (child record due to master-detail relationship) and master record is locked.

A lock icon is shown on the record and except admin or approver, no one can update the record.

KNOW RECORD IS LOCKED USING CODE

if you want to know record is locked or not using code then you can use below code:


You could create an “In Approval Process?” checkbox and set it to true in the Initial Submission Actions and then set it to false in the Final Approval, Rejection, and Recall Actions of approval processes.

SF has added isLocked method in System.Approval class from Spring 16 (Api level 36). So it is now possible to check if the record is locked or unlocked using Apex.

Additionally, SF has also added the ability to lock/unlock the record using Apex code. Please refer to same document. Basically, the code would look like

Approval.isLocked(singlerecordId);
     or
Approval.isLocked(List<Id> recordIds);

MANAGE IT USING CODE

Unlock the record as below:

Approval.unlock(singlerecordId);
OR
Approval.unlock(List<Id> recordIds);

Lock the record as below:

Approval.lock(singlerecordId);
OR
Approval.lock(List<Id> recordIds);

Please reach out if you are looking for experts who can setup and architect the Salesforce org to avoid such issue.