diff --git a/src/main/java/org/openepics/names/rest/controller/GlobalControllerExceptionHandler.java b/src/main/java/org/openepics/names/rest/controller/GlobalControllerExceptionHandler.java
index 2e36231f6ed5d3d0b6a36950d89c5352c57df98b..33014208615a15ccf592d23b16ff4c72401fc3c9 100644
--- a/src/main/java/org/openepics/names/rest/controller/GlobalControllerExceptionHandler.java
+++ b/src/main/java/org/openepics/names/rest/controller/GlobalControllerExceptionHandler.java
@@ -29,6 +29,7 @@ import org.openepics.names.service.exception.DataNotFoundException;
 import org.openepics.names.service.exception.DataNotValidException;
 import org.openepics.names.service.exception.InputNotAvailableException;
 import org.openepics.names.service.exception.InputNotCorrectException;
+import org.openepics.names.service.exception.InputNotEmptyException;
 import org.openepics.names.service.exception.InputNotValidException;
 import org.openepics.names.service.exception.ServiceException;
 import org.openepics.names.util.TextUtil;
@@ -72,7 +73,10 @@ public class GlobalControllerExceptionHandler extends ResponseEntityExceptionHan
             response.setField(StringUtils.trimToEmpty(se.getField()));
             resultStatus = HttpStatus.BAD_REQUEST;
 
-            if (ex instanceof InputNotAvailableException || ex instanceof InputNotCorrectException || ex instanceof InputNotValidException) {
+            if (ex instanceof InputNotAvailableException
+                    || ex instanceof InputNotCorrectException
+                    || ex instanceof InputNotEmptyException
+                    || ex instanceof InputNotValidException) {
                 resultStatus = HttpStatus.UNPROCESSABLE_ENTITY;
             }
 
diff --git a/src/main/java/org/openepics/names/service/exception/InputNotEmptyException.java b/src/main/java/org/openepics/names/service/exception/InputNotEmptyException.java
new file mode 100644
index 0000000000000000000000000000000000000000..f27e96a835209fd2290f93eba56ca4c885550c64
--- /dev/null
+++ b/src/main/java/org/openepics/names/service/exception/InputNotEmptyException.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2022 European Spallation Source ERIC.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+package org.openepics.names.service.exception;
+
+/**
+ * Exception class to assist in handling of service layer exceptions.
+ *
+ * @author Lars Johansson
+ */
+public class InputNotEmptyException extends ServiceException {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 8537254593583337762L;
+
+    /**
+     * Public constructor.
+     *
+     * @param message message
+     * @param details details
+     * @param field field
+     */
+    public InputNotEmptyException(String message, String details, String field) {
+        super(message, details, field, null);
+    }
+
+}
diff --git a/src/main/java/org/openepics/names/util/ExceptionUtil.java b/src/main/java/org/openepics/names/util/ExceptionUtil.java
index 050ecc000e0faf4501d1e892d29c5f6368185e2d..4f4122e6cb9e4c0910e201e7ac27b136e7ec3dcf 100644
--- a/src/main/java/org/openepics/names/util/ExceptionUtil.java
+++ b/src/main/java/org/openepics/names/util/ExceptionUtil.java
@@ -27,6 +27,7 @@ import org.openepics.names.service.exception.DataNotFoundException;
 import org.openepics.names.service.exception.DataNotValidException;
 import org.openepics.names.service.exception.InputNotAvailableException;
 import org.openepics.names.service.exception.InputNotCorrectException;
+import org.openepics.names.service.exception.InputNotEmptyException;
 import org.openepics.names.service.exception.InputNotValidException;
 
 /**
@@ -170,6 +171,24 @@ public class ExceptionUtil {
         }
     }
 
+    /**
+     * Create input not empty exception.
+     * Intended for communication inside server.
+     * Note that message is automatically generated if message is <tt>null</tt> and field <tt>not null</tt>.
+     *
+     * @param message message
+     * @param details details
+     * @param field field
+     * @return input not empty exception
+     */
+    public static InputNotEmptyException createInputNotEmptyException(String message, String details, String field) {
+        if (message == null && field != null) {
+            return new InputNotEmptyException(TextUtil.VALUE_IS_NOT_EMPTY, details, field);
+        } else {
+            return new InputNotEmptyException(message, details, field);
+        }
+    }
+
     /**
      * Create input not valid exception.
      * Intended for communication inside server.
@@ -326,6 +345,25 @@ public class ExceptionUtil {
         }
     }
 
+    /**
+     * Validate condition and throw input not empty exception if condition not <tt>true</tt>.
+     * Note that message is automatically generated if message is <tt>null</tt> and field <tt>not null</tt>.
+     *
+     * @param condition condition
+     * @param message message
+     * @param details details
+     * @param field field
+     */
+    public static void validateConditionInputNotEmptyException(boolean condition, String message, String details, String field) {
+        if (!condition) {
+            if (message == null && field != null) {
+                throw ExceptionUtil.createInputNotEmptyException(TextUtil.VALUE_IS_NOT_EMPTY, details, field);
+            } else {
+                throw ExceptionUtil.createInputNotEmptyException(message, details, field);
+            }
+        }
+    }
+
     /**
      * Validate condition and throw input not valid exception if condition not <tt>true</tt>.
      * Note that message is automatically generated if message is <tt>null</tt> and field <tt>not null</tt>.
diff --git a/src/main/java/org/openepics/names/util/TextUtil.java b/src/main/java/org/openepics/names/util/TextUtil.java
index a432e7312cb8159c51bd121a51b84b8f4faf959e..3701117c2ab036beee3c153f9ef9b5db69e4f7b4 100644
--- a/src/main/java/org/openepics/names/util/TextUtil.java
+++ b/src/main/java/org/openepics/names/util/TextUtil.java
@@ -25,6 +25,10 @@ package org.openepics.names.util;
  */
 public class TextUtil {
 
+    // application
+
+    public static final String NAMING                          = "Naming";
+
     // field
     //     name, structure
     //         name also field
@@ -75,6 +79,7 @@ public class TextUtil {
 
     public static final String VALUE_IS_NOT_AVAILABLE          = "value is not available";
     public static final String VALUE_IS_NOT_CORRECT            = "value is not correct";
+    public static final String VALUE_IS_NOT_EMPTY              = "value is not empty";
     public static final String VALUE_IS_NOT_VALID              = "value is not valid";
     public static final String VALUES_ARE_NOT_CORRECT          = "values are not correct";
 
diff --git a/src/main/java/org/openepics/names/util/ValidateUtil.java b/src/main/java/org/openepics/names/util/ValidateUtil.java
index 80f980d6f71a2207bd24cc025c7b5dc43f780af9..90303136b9e1e6b97378434fed767644a2c4f7b9 100644
--- a/src/main/java/org/openepics/names/util/ValidateUtil.java
+++ b/src/main/java/org/openepics/names/util/ValidateUtil.java
@@ -293,9 +293,9 @@ public class ValidateUtil {
      */
     private static void validateNameElementInput(NameElementCommand nameElement, NameChoice nameChoice) {
         // attributes
-        //     uuid
-        //     parentsystemstructure
-        //     parentdevicestructure
+        //     uuid                            - required if not create, required empty if create
+        //     parentsystemstructure (uuid)
+        //     parentdevicestructure (uuid)
         //     index
         //     description
         //     comment
@@ -304,8 +304,13 @@ public class ValidateUtil {
             return;
         }
 
-        if (!NameChoice.CREATE.equals(nameChoice)) {
-            validateInputUuid(nameElement.getUuid() !=  null ? nameElement.getUuid().toString() : null);
+        if (NameChoice.CREATE.equals(nameChoice)) {
+            ExceptionUtil.validateConditionInputNotEmptyException(nameElement.getUuid() == null,
+                    TextUtil.VALUE_IS_NOT_EMPTY,
+                    nameElement.getUuid() != null ? nameElement.getUuid().toString() : null,
+                    TextUtil.UUID);
+        } else {
+            validateInputUuid(nameElement.getUuid() != null ? nameElement.getUuid().toString() : null);
         }
 
         if (!NameChoice.DELETE.equals(nameChoice)) {
@@ -729,18 +734,25 @@ public class ValidateUtil {
      */
     private static void validateStructureElementInput(StructureElementCommand structureElement, EssNamingConvention namingConvention, StructureChoice structureChoice) {
         // check structure element input
-        //     parent uuid            - also validate data, parent uuid available if type is system, subsystem, device group, device type
-        //     name                   - required
-        //     mnemonic               - required except for device group
-        //     description            - required
-        //     comment                - required
+        //     uuid             - required if not create, required empty if create
+        //     type             - required
+        //     parent (uuid)    - also validate data, parent uuid available if type is system, subsystem, device group, device type
+        //     name             - required
+        //     mnemonic         - required except for device group
+        //     description      - required
+        //     comment          - required
 
         if (structureElement == null || structureChoice == null) {
             return;
         }
 
-        if (!StructureChoice.CREATE.equals(structureChoice)) {
-            validateInputUuid(structureElement.getUuid() !=  null ? structureElement.getUuid().toString() : null);
+        if (StructureChoice.CREATE.equals(structureChoice)) {
+            ExceptionUtil.validateConditionInputNotEmptyException(structureElement.getUuid() == null,
+                    TextUtil.VALUE_IS_NOT_EMPTY,
+                    structureElement.getUuid() != null ? structureElement.getUuid().toString() : null,
+                    TextUtil.UUID);
+        } else {
+            validateInputUuid(structureElement.getUuid() != null ? structureElement.getUuid().toString() : null);
         }
 
         validateInputType(structureElement.getType());
diff --git a/src/test/java/org/openepics/names/docker/ITUtilNameElement.java b/src/test/java/org/openepics/names/docker/ITUtilNameElement.java
index a00c03705932021e90a6ba709c39cce43d946210..a22664a221487bce803c4bb9516a743f839816f8 100644
--- a/src/test/java/org/openepics/names/docker/ITUtilNameElement.java
+++ b/src/test/java/org/openepics/names/docker/ITUtilNameElement.java
@@ -206,6 +206,8 @@ public class ITUtilNameElement {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_NAMES + queryString);
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageNameElements = mapper.readValue(response[1], ResponsePageNameElements.class);
+
+            // expected number of items in list
             if (expectedLessThanOrEqual >= 0) {
                 assertTrue(responsePageNameElements.getListSize() <= expectedLessThanOrEqual);
             }
diff --git a/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java b/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java
index c3c204b222556cb35f20b588f1a9f1515aa9427f..35e3770b71c30d135673285aea2060fa8d8505fb 100644
--- a/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java
@@ -321,12 +321,17 @@ class StructuresDeviceGroupIT {
 
             // create
             ITUtilStructureElement.assertCreate(structureElement);
+            UUID uuid = structureElement.getUuid();
 
             ITUtilStructureElement.assertExists         (Type.DEVICEGROUP, "Di", Boolean.TRUE);
             ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "Di", Boolean.FALSE);
 
-            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE,  Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE,  Boolean.FALSE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.TRUE);
+            structureElement.setUuid(null);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE,  Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
+            structureElement.setUuid(uuid);
 
             // approve
             ITUtilStructureElement.assertApprove(structureElement);
@@ -334,6 +339,9 @@ class StructuresDeviceGroupIT {
             ITUtilStructureElement.assertExists         (Type.DEVICEGROUP, "Di", Boolean.TRUE);
             ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "Di", Boolean.FALSE);
 
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE,  Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
+            structureElement.setUuid(null);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE,  Boolean.TRUE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
         } catch (Exception e) {
@@ -371,12 +379,17 @@ class StructuresDeviceGroupIT {
 
             // create
             ITUtilStructureElement.assertCreate(structureElement);
+            UUID uuid = structureElement.getUuid();
 
             ITUtilStructureElement.assertExists         (Type.DEVICEGROUP, "Di", Boolean.TRUE);
             ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "Di", Boolean.FALSE);
 
-            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
+            structureElement.setUuid(null);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
+            structureElement.setUuid(uuid);
 
             // cancel
             ITUtilStructureElement.assertCancel(structureElement);
@@ -384,6 +397,9 @@ class StructuresDeviceGroupIT {
             ITUtilStructureElement.assertExists         (Type.DEVICEGROUP, "Di", Boolean.TRUE);
             ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "Di", Boolean.FALSE);
 
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
+            structureElement.setUuid(null);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
@@ -421,12 +437,17 @@ class StructuresDeviceGroupIT {
 
             // create
             ITUtilStructureElement.assertCreate(structureElement);
+            UUID uuid = structureElement.getUuid();
 
             ITUtilStructureElement.assertExists         (Type.DEVICEGROUP, "Di", Boolean.TRUE);
             ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "Di", Boolean.FALSE);
 
-            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
+            structureElement.setUuid(null);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
+            structureElement.setUuid(uuid);
 
             // reject
             ITUtilStructureElement.assertReject(structureElement);
@@ -434,6 +455,9 @@ class StructuresDeviceGroupIT {
             ITUtilStructureElement.assertExists         (Type.DEVICEGROUP, "Di", Boolean.TRUE);
             ITUtilStructureElement.assertIsValidToCreate(Type.DEVICEGROUP, "Di", Boolean.FALSE);
 
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
+            structureElement.setUuid(null);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
diff --git a/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java b/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java
index e12710bd26cde3d002c62550f4072a506c2f3e1f..91656fef6dce418f8f9da434f232f804f222e736 100644
--- a/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java
@@ -383,12 +383,17 @@ class StructuresDeviceTypeIT {
 
             // create
             ITUtilStructureElement.assertCreate(structureElement);
+            UUID uuid = structureElement.getUuid();
 
             ITUtilStructureElement.assertExists         (Type.DEVICETYPE, "Di-Cc", Boolean.FALSE);
             ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-Cc", Boolean.TRUE);
 
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
+            structureElement.setUuid(null);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
+            structureElement.setUuid(uuid);
 
             // cancel
             ITUtilStructureElement.assertCancel(structureElement);
@@ -396,6 +401,9 @@ class StructuresDeviceTypeIT {
             ITUtilStructureElement.assertExists         (Type.DEVICETYPE, "Di-Cc", Boolean.FALSE);
             ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-Cc", Boolean.TRUE);
 
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
+            structureElement.setUuid(null);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
@@ -433,12 +441,17 @@ class StructuresDeviceTypeIT {
 
             // create
             ITUtilStructureElement.assertCreate(structureElement);
+            UUID uuid = structureElement.getUuid();
 
             ITUtilStructureElement.assertExists         (Type.DEVICETYPE, "Di-Cr", Boolean.FALSE);
             ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-Cr", Boolean.TRUE);
 
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
+            structureElement.setUuid(null);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
+            structureElement.setUuid(uuid);
 
             // reject
             ITUtilStructureElement.assertReject(structureElement);
@@ -446,6 +459,9 @@ class StructuresDeviceTypeIT {
             ITUtilStructureElement.assertExists         (Type.DEVICETYPE, "Di-Cr", Boolean.FALSE);
             ITUtilStructureElement.assertIsValidToCreate(Type.DEVICETYPE, "Di-Cr", Boolean.TRUE);
 
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
+            structureElement.setUuid(null);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
diff --git a/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java b/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java
index b92dac7e45b9c02481c81e216a09d2a39e68c1ca..06b7e1b999a4766b8931ad9f888f9aa9156d5e63 100644
--- a/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java
@@ -339,12 +339,17 @@ class StructuresDisciplineIT {
 
             // create
             ITUtilStructureElement.assertCreate(structureElement);
+            UUID uuid = structureElement.getUuid();
 
             ITUtilStructureElement.assertExists         (Type.DISCIPLINE, "Cc", Boolean.FALSE);
             ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "Cc", Boolean.TRUE);
 
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
+            structureElement.setUuid(null);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
+            structureElement.setUuid(uuid);
 
             // cancel
             ITUtilStructureElement.assertCancel(structureElement);
@@ -352,6 +357,9 @@ class StructuresDisciplineIT {
             ITUtilStructureElement.assertExists         (Type.DISCIPLINE, "Cc", Boolean.FALSE);
             ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "Cc", Boolean.TRUE);
 
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
+            structureElement.setUuid(null);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
@@ -389,12 +397,17 @@ class StructuresDisciplineIT {
 
             // create
             ITUtilStructureElement.assertCreate(structureElement);
+            UUID uuid = structureElement.getUuid();
 
             ITUtilStructureElement.assertExists         (Type.DISCIPLINE, "Cr", Boolean.FALSE);
             ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "Cr", Boolean.TRUE);
 
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
+            structureElement.setUuid(null);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
+            structureElement.setUuid(uuid);
 
             // reject
             ITUtilStructureElement.assertReject(structureElement);
@@ -402,6 +415,9 @@ class StructuresDisciplineIT {
             ITUtilStructureElement.assertExists         (Type.DISCIPLINE, "Cr", Boolean.FALSE);
             ITUtilStructureElement.assertIsValidToCreate(Type.DISCIPLINE, "Cr", Boolean.TRUE);
 
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
+            structureElement.setUuid(null);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
diff --git a/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java b/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java
index 8a0aaab98b63e49a23e7ca782ec5d022d28ed807..d64bdfbe5270a48ad7a49fd9a5a617d699b70a8d 100644
--- a/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java
@@ -385,12 +385,17 @@ class StructuresSubsystemIT {
 
             // create
             ITUtilStructureElement.assertCreate(structureElement);
+            UUID uuid = structureElement.getUuid();
 
             ITUtilStructureElement.assertExists         (Type.SUBSYSTEM, "Sys-Cc", Boolean.FALSE);
             ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-Cc", Boolean.TRUE);
 
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
+            structureElement.setUuid(null);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
+            structureElement.setUuid(uuid);
 
             // cancel
             ITUtilStructureElement.assertCancel(structureElement);
@@ -398,6 +403,9 @@ class StructuresSubsystemIT {
             ITUtilStructureElement.assertExists         (Type.SUBSYSTEM, "Sys-Cc", Boolean.FALSE);
             ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-Cc", Boolean.TRUE);
 
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
+            structureElement.setUuid(null);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
@@ -435,12 +443,17 @@ class StructuresSubsystemIT {
 
             // create
             ITUtilStructureElement.assertCreate(structureElement);
+            UUID uuid = structureElement.getUuid();
 
             ITUtilStructureElement.assertExists         (Type.SUBSYSTEM, "Sys-Cr", Boolean.FALSE);
             ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-Cr", Boolean.TRUE);
 
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
+            structureElement.setUuid(null);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
+            structureElement.setUuid(uuid);
 
             // reject
             ITUtilStructureElement.assertReject(structureElement);
@@ -448,6 +461,9 @@ class StructuresSubsystemIT {
             ITUtilStructureElement.assertExists         (Type.SUBSYSTEM, "Sys-Cr", Boolean.FALSE);
             ITUtilStructureElement.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-Cr", Boolean.TRUE);
 
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
+            structureElement.setUuid(null);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
diff --git a/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java b/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java
index 049779557d421fe23b4f448dab7b83496dc220b5..303c98419a392c2fd9d08c48e895bafe9ca06940 100644
--- a/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java
@@ -381,12 +381,17 @@ class StructuresSystemGroupIT {
 
             // create
             ITUtilStructureElement.assertCreate(structureElement);
+            UUID uuid = structureElement.getUuid();
 
             ITUtilStructureElement.assertExists         (Type.SYSTEMGROUP, "Cc", Boolean.FALSE);
             ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "Cc", Boolean.TRUE);
 
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
+            structureElement.setUuid(null);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
+            structureElement.setUuid(uuid);
 
             // cancel
             ITUtilStructureElement.assertCancel(structureElement);
@@ -394,6 +399,9 @@ class StructuresSystemGroupIT {
             ITUtilStructureElement.assertExists         (Type.SYSTEMGROUP, "Cc", Boolean.FALSE);
             ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "Cc", Boolean.TRUE);
 
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
+            structureElement.setUuid(null);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
@@ -431,12 +439,17 @@ class StructuresSystemGroupIT {
 
             // create
             ITUtilStructureElement.assertCreate(structureElement);
+            UUID uuid = structureElement.getUuid();
 
             ITUtilStructureElement.assertExists         (Type.SYSTEMGROUP, "Cr", Boolean.FALSE);
             ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "Cr", Boolean.TRUE);
 
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
+            structureElement.setUuid(null);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
+            structureElement.setUuid(uuid);
 
             // reject
             ITUtilStructureElement.assertReject(structureElement);
@@ -444,6 +457,9 @@ class StructuresSystemGroupIT {
             ITUtilStructureElement.assertExists         (Type.SYSTEMGROUP, "Cr", Boolean.FALSE);
             ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEMGROUP, "Cr", Boolean.TRUE);
 
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
+            structureElement.setUuid(null);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
diff --git a/src/test/java/org/openepics/names/docker/StructuresSystemIT.java b/src/test/java/org/openepics/names/docker/StructuresSystemIT.java
index 3701d1c9cf488541e1c87c4283b95d840c132bc6..0d566b3737ad1939f0c9cd8ab427decad408abdc 100644
--- a/src/test/java/org/openepics/names/docker/StructuresSystemIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresSystemIT.java
@@ -368,12 +368,17 @@ class StructuresSystemIT {
 
             // create
             ITUtilStructureElement.assertCreate(structureElement);
+            UUID uuid = structureElement.getUuid();
 
             ITUtilStructureElement.assertExists         (Type.SYSTEM, "Cc", Boolean.FALSE);
             ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "Cc", Boolean.TRUE);
 
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
+            structureElement.setUuid(null);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
+            structureElement.setUuid(uuid);
 
             // cancel
             ITUtilStructureElement.assertCancel(structureElement);
@@ -381,6 +386,9 @@ class StructuresSystemIT {
             ITUtilStructureElement.assertExists         (Type.SYSTEM, "Cc", Boolean.FALSE);
             ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "Cc", Boolean.TRUE);
 
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
+            structureElement.setUuid(null);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
@@ -418,12 +426,17 @@ class StructuresSystemIT {
 
             // create
             ITUtilStructureElement.assertCreate(structureElement);
+            UUID uuid = structureElement.getUuid();
 
             ITUtilStructureElement.assertExists         (Type.SYSTEM, "Cr", Boolean.FALSE);
             ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "Cr", Boolean.TRUE);
 
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
+            structureElement.setUuid(null);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
+            structureElement.setUuid(uuid);
 
             // reject
             ITUtilStructureElement.assertReject(structureElement);
@@ -431,6 +444,9 @@ class StructuresSystemIT {
             ITUtilStructureElement.assertExists         (Type.SYSTEM, "Cr", Boolean.FALSE);
             ITUtilStructureElement.assertIsValidToCreate(Type.SYSTEM, "Cr", Boolean.TRUE);
 
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
+            structureElement.setUuid(null);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
             ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {