diff --git a/core/platform-common/src/main/java/org/sunbird/exception/ResponseCode.java b/core/platform-common/src/main/java/org/sunbird/exception/ResponseCode.java
index f2ec17cc0c9b7fac882ad23520b08187f81ab5ac..109d8a450b85e58fb1262698476c9569fa6f5b8e 100644
--- a/core/platform-common/src/main/java/org/sunbird/exception/ResponseCode.java
+++ b/core/platform-common/src/main/java/org/sunbird/exception/ResponseCode.java
@@ -61,6 +61,7 @@ public enum ResponseCode {
       ResponseMessage.Key.ERROR_ATTRIBUTE_CONFLICT,
       ResponseMessage.Message.ERROR_ATTRIBUTE_CONFLICT),
   rolesRequired(ResponseMessage.Key.ROLES_MISSING, ResponseMessage.Message.ROLES_MISSING),
+  profileUserTypesRequired(ResponseMessage.Key.PROFILE_USER_TYPES_MISSING, ResponseMessage.Message.PROFILE_USER_TYPES_MISSING),
   emptyRolesProvided(
       ResponseMessage.Key.EMPTY_ROLES_PROVIDED, ResponseMessage.Message.EMPTY_ROLES_PROVIDED),
   contentTypeRequiredError(
diff --git a/core/platform-common/src/main/java/org/sunbird/exception/ResponseMessage.java b/core/platform-common/src/main/java/org/sunbird/exception/ResponseMessage.java
index 18ec57606811074e63d7595dbd0a0a8b8ce595d3..a7a970ad42214673ed4c7771aa0d9385c6b414b0 100644
--- a/core/platform-common/src/main/java/org/sunbird/exception/ResponseMessage.java
+++ b/core/platform-common/src/main/java/org/sunbird/exception/ResponseMessage.java
@@ -47,6 +47,7 @@ public interface ResponseMessage {
     String DATA_TYPE_ERROR = "Data type of {0} should be {1}.";
     String ERROR_ATTRIBUTE_CONFLICT = "Either pass attribute {0} or {1} but not both.";
     String ROLES_MISSING = "user role is required.";
+    String PROFILE_USER_TYPES_MISSING = "User type is required.";
     String EMPTY_ROLES_PROVIDED = "Roles cannot be empty.";
     String CHANNEL_REG_FAILED = "Channel Registration failed.";
     String SLUG_IS_NOT_UNIQUE =
@@ -215,6 +216,7 @@ public interface ResponseMessage {
     String DATA_TYPE_ERROR = "DATA_TYPE_ERROR";
     String ERROR_ATTRIBUTE_CONFLICT = "ERROR_ATTRIBUTE_CONFLICT";
     String ROLES_MISSING = "ROLES_REQUIRED_ERROR";
+    String PROFILE_USER_TYPES_MISSING = "PROFILE_USER_TYPES_REQUIRED_ERROR";
     String EMPTY_ROLES_PROVIDED = "EMPTY_ROLES_PROVIDED";
     String CONTENT_TYPE_ERROR = "CONTENT_TYPE_ERROR";
     String INVALID_PROPERTY_ERROR = "INVALID_PROPERTY_ERROR";
diff --git a/service/src/main/java/org/sunbird/actor/user/validator/UserRequestValidator.java b/service/src/main/java/org/sunbird/actor/user/validator/UserRequestValidator.java
index 96b8e38cfd74f0322f77583d71dbf755aeed910a..8f55f88f4fa85a53e501821ed4e5d4098a04c741 100644
--- a/service/src/main/java/org/sunbird/actor/user/validator/UserRequestValidator.java
+++ b/service/src/main/java/org/sunbird/actor/user/validator/UserRequestValidator.java
@@ -12,6 +12,7 @@ import org.sunbird.exception.ResponseCode;
 import org.sunbird.exception.ResponseMessage;
 import org.sunbird.keys.JsonKey;
 import org.sunbird.logging.LoggerUtil;
+import org.sunbird.operations.ActorOperations;
 import org.sunbird.request.Request;
 import org.sunbird.request.RequestContext;
 import org.sunbird.util.DataCacheHandler;
@@ -430,12 +431,25 @@ public class UserRequestValidator extends BaseRequestValidator {
             ERROR_CODE);
       }
     }
+    if (userRequest
+            .getOperation()
+            .equalsIgnoreCase(ActorOperations.UPDATE_USER.getValue()) || userRequest
+            .getOperation()
+            .equalsIgnoreCase(ActorOperations.UPDATE_USER_V2.getValue())) {
+      if (userRequest.getRequest().containsKey(JsonKey.PROFILE_USERTYPES)){
+        ProjectCommonException.throwClientErrorException(ResponseCode.invalidParameter,JsonKey.PROFILE_USERTYPES);
+      }
+    }else{
+      if (userRequest.getRequest().containsKey(JsonKey.PROFILE_USERTYPE)){
+        ProjectCommonException.throwClientErrorException(ResponseCode.invalidParameter,JsonKey.PROFILE_USERTYPE);
+      }
+    }
     if (userRequest.getRequest().containsKey(JsonKey.PROFILE_USERTYPES)
             && null != userRequest.getRequest().get(JsonKey.PROFILE_USERTYPES)) {
       if (userRequest.getRequest().get(JsonKey.PROFILE_USERTYPES) instanceof List){
         List profileusertypes = (List) userRequest.getRequest().get(JsonKey.PROFILE_USERTYPES);
         if (CollectionUtils.isEmpty(profileusertypes)) {
-          ProjectCommonException.throwClientErrorException(ResponseCode.rolesRequired);
+          ProjectCommonException.throwClientErrorException(ResponseCode.profileUserTypesRequired);
         }else {
           try {
             List<Map<String, String>> profUserTypeList =
diff --git a/service/src/main/java/org/sunbird/service/user/UserProfileReadService.java b/service/src/main/java/org/sunbird/service/user/UserProfileReadService.java
index 8b72f2eae2c9de3806d41daa81a02ec07cc02ba5..5b45c469119639c6feb2b9fd2ac45d810e89d3bc 100644
--- a/service/src/main/java/org/sunbird/service/user/UserProfileReadService.java
+++ b/service/src/main/java/org/sunbird/service/user/UserProfileReadService.java
@@ -77,6 +77,8 @@ public class UserProfileReadService {
             || readVersion.equalsIgnoreCase(ActorOperations.GET_USER_PROFILE_V5.getValue()))) {
       Util.getOrgDefaultValue().keySet().forEach(rootOrg::remove);
       Util.getUserDefaultValue().keySet().forEach(result::remove);
+    }else{
+      result.putAll(Util.getUserDefaultValue());
     }
     result.put(JsonKey.ROOT_ORG, rootOrg);
     Map<String, List<String>> userOrgRoles = null;
diff --git a/service/src/test/java/org/sunbird/actor/user/validator/UserRequestValidatorTest.java b/service/src/test/java/org/sunbird/actor/user/validator/UserRequestValidatorTest.java
index 6eb7af3cb09e30081c82f20706ab164c82364791..ac93d887fbf692ddb76a13dd0c0e0d4510a00916 100644
--- a/service/src/test/java/org/sunbird/actor/user/validator/UserRequestValidatorTest.java
+++ b/service/src/test/java/org/sunbird/actor/user/validator/UserRequestValidatorTest.java
@@ -16,6 +16,7 @@ import org.sunbird.exception.ProjectCommonException;
 import org.sunbird.exception.ResponseCode;
 import org.sunbird.exception.ResponseMessage;
 import org.sunbird.keys.JsonKey;
+import org.sunbird.operations.ActorOperations;
 import org.sunbird.request.Request;
 import org.sunbird.request.RequestContext;
 import org.sunbird.validator.RequestValidator;
@@ -375,6 +376,7 @@ public class UserRequestValidatorTest {
     Map<String, Object> requestObj = request.getRequest();
     requestObj.remove(JsonKey.USERNAME);
     requestObj.put(JsonKey.USER_ID, "userId");
+    request.setOperation(ActorOperations.UPDATE_USER.getValue());
 
     List<String> roles = new ArrayList<String>();
     roles.add("PUBLIC");
@@ -400,6 +402,7 @@ public class UserRequestValidatorTest {
     Map<String, Object> requestObj = request.getRequest();
     requestObj.remove(JsonKey.USERNAME);
     requestObj.put(JsonKey.USER_ID, "userId");
+    request.setOperation(ActorOperations.UPDATE_USER_V3.getValue());
 
     List<Map<String, String>> usertypes = new ArrayList();
     Map<String, String> typemap = new HashMap<>();
@@ -430,6 +433,7 @@ public class UserRequestValidatorTest {
     Map<String, Object> requestObj = request.getRequest();
     requestObj.remove(JsonKey.USERNAME);
     requestObj.put(JsonKey.USER_ID, "userId");
+    request.setOperation(ActorOperations.UPDATE_USER_V2.getValue());
 
     List<Map<String, String>> usertypes = new ArrayList();
     Map<String, String> typemap = new HashMap<>();
@@ -460,6 +464,7 @@ public class UserRequestValidatorTest {
     Map<String, Object> requestObj = request.getRequest();
     requestObj.remove(JsonKey.USERNAME);
     requestObj.put(JsonKey.USER_ID, "userId");
+    request.setOperation(ActorOperations.UPDATE_USER.getValue());
 
     List usertypes = new ArrayList();
     usertypes.add("teacher");