diff --git a/web/setup.py b/web/setup.py
index 3f054fe03..828b68f11 100644
--- a/web/setup.py
+++ b/web/setup.py
@@ -181,18 +181,25 @@ def _validate_servers_data(data, is_admin):
             if attrib not in obj:
                 return ("'%s' attribute not found for server '%s'" %
                         (attrib, server))
+            return None
 
-        check_attrib("Name")
-        check_attrib("Group")
+        for attrib in ("Group", "Name"):
+            errmsg = check_attrib(attrib)
+            if errmsg:
+                return errmsg
 
         is_service_attrib_available = obj.get("Service", None) is not None
 
         if not is_service_attrib_available:
-            check_attrib("Port")
-            check_attrib("Username")
-
-        check_attrib("SSLMode")
-        check_attrib("MaintenanceDB")
+            for attrib in ("Port", "Username"):
+                errmsg = check_attrib(attrib)
+                if errmsg:
+                    return errmsg
+
+        for attrib in ("SSLMode", "MaintenanceDB"):
+            errmsg = check_attrib(attrib)
+            if errmsg:
+                return errmsg
 
         if "Host" not in obj and "HostAddr" not in obj and not \
                 is_service_attrib_available:
