diff --git a/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/AddMemberCall.java b/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/AddMemberCall.java
index 42abfe7603e7fbf43c72d5916479994e9fe0f668..e76242d179518ab4c98e12864012875cf785e728 100644
--- a/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/AddMemberCall.java
+++ b/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/AddMemberCall.java
@@ -19,6 +19,7 @@ public class AddMemberCall extends BaseGmsCall {
 
         HttpRequest groupsRequest = newHttpRequest(endpoint)
                 .header("Accept", "text/plain")
+                .header("Content-Type", "application/x-www-form-urlencoded")
                 .POST(BodyPublishers.ofString("user_id=" + userId))
                 .build();
 
diff --git a/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/AddPermissionCall.java b/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/AddPermissionCall.java
index 99c5d8095179399df034be8c717befbf5daab431..42acad909f324d1c0ea255fca62c433c2b5c161a 100644
--- a/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/AddPermissionCall.java
+++ b/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/AddPermissionCall.java
@@ -24,6 +24,7 @@ public class AddPermissionCall extends BaseGmsCall {
 
         HttpRequest groupsRequest = newHttpRequest(endpoint)
                 .header("Accept", "text/plain")
+                .header("Content-Type", "application/x-www-form-urlencoded")
                 .POST(requestBody)
                 .build();
 
diff --git a/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/CreateGroupCall.java b/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/CreateGroupCall.java
index 9636232360c36160ae46568c6fb84edaa4ca3fce..348112359f3bbdbc1071590e858973ebb2b2452a 100644
--- a/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/CreateGroupCall.java
+++ b/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/CreateGroupCall.java
@@ -19,7 +19,7 @@ public class CreateGroupCall extends BaseGmsCall {
 
         return getClient().sendAsync(groupsRequest, HttpResponse.BodyHandlers.ofInputStream())
                 .thenApply(response -> {
-                    if (response.statusCode() == 200) {
+                    if (response.statusCode() == 201) {
                         return true;
                     }
                     logServerErrorInputStream(groupsRequest, response);
diff --git a/gms-client/gms-client-lib/src/test/java/it/inaf/ia2/gms/client/GmsClientTest.java b/gms-client/gms-client-lib/src/test/java/it/inaf/ia2/gms/client/GmsClientTest.java
index 63233fb8cdb96f72926dc772e34ada411574b135..54ce5b82212e534fc7ff1a6ba5a2125dd2a4da86 100644
--- a/gms-client/gms-client-lib/src/test/java/it/inaf/ia2/gms/client/GmsClientTest.java
+++ b/gms-client/gms-client-lib/src/test/java/it/inaf/ia2/gms/client/GmsClientTest.java
@@ -82,7 +82,7 @@ public class GmsClientTest {
     @Test
     public void testCreateGroup() {
 
-        CompletableFuture response = CompletableFuture.completedFuture(getMockedResponse(200));
+        CompletableFuture response = CompletableFuture.completedFuture(getMockedResponse(201));
 
         when(httpClient.sendAsync(any(), any())).thenReturn(response);
         client.createGroup("LBT.INAF", false);
diff --git a/gms/src/main/java/it/inaf/ia2/gms/controller/JWTWebServiceController.java b/gms/src/main/java/it/inaf/ia2/gms/controller/JWTWebServiceController.java
index 8985b3b7ec6ed246e3c1b071a0cd1a0b36fdd73f..4a7a2d6481af053085fe2914cadb16c42712c5d2 100644
--- a/gms/src/main/java/it/inaf/ia2/gms/controller/JWTWebServiceController.java
+++ b/gms/src/main/java/it/inaf/ia2/gms/controller/JWTWebServiceController.java
@@ -278,7 +278,7 @@ public class JWTWebServiceController {
         for (int i = 0; i < index + 1; i++) {
             String groupName = groupNames.get(i);
             group = groupsDAO.findGroupByParentAndName(parentPath, groupName)
-                    .orElseThrow(() -> new IllegalArgumentException("Unable to find group " + groupName));
+                    .orElseThrow(() -> new BadRequestException("Unable to find group " + groupName));
             parentPath = group.getPath();
         }
         if (group == null) {