diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/OperationManagerImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/OperationManagerImpl.java
index 1f5219ec158..721669ab3c5 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/OperationManagerImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/OperationManagerImpl.java
@@ -143,6 +143,9 @@ public class OperationManagerImpl implements OperationManager {
     public Operation getNextPendingOperation(DeviceIdentifier deviceId) throws OperationManagementException {
         try {
             Operation operation = operationDAO.getNextOperation(deviceId);
+            if (operation instanceof ProfileOperation){
+                   operation =  profileOperationDAO.getNextOperation(deviceId);
+            }
             return operation;
         } catch (OperationManagementDAOException e) {
             throw new OperationManagementException("Error occurred while retrieving next pending operation", e);
@@ -152,8 +155,8 @@ public class OperationManagerImpl implements OperationManager {
     @Override
     public void updateOperation(int operationId, Operation.Status operationStatus)
             throws OperationManagementException {
-        try {
 
+        try {
             Operation operation = operationDAO.getOperation(operationId);
             operation.setStatus(operationStatus);
             OperationManagementDAOFactory.beginTransaction();