diff --git a/apps/workflow/api/src/main/java/org/onosproject/workflow/api/SystemWorkflowContext.java b/apps/workflow/api/src/main/java/org/onosproject/workflow/api/SystemWorkflowContext.java
index 4cc15bd..f371254 100644
--- a/apps/workflow/api/src/main/java/org/onosproject/workflow/api/SystemWorkflowContext.java
+++ b/apps/workflow/api/src/main/java/org/onosproject/workflow/api/SystemWorkflowContext.java
@@ -17,6 +17,8 @@
 
 import com.google.common.base.MoreObjects;
 
+import java.util.UUID;
+
 /**
  * WorkflowContext for system workflow.
  */
@@ -28,6 +30,11 @@
     private final long timestamp;
 
     /**
+     * UUID of this system workflow context.
+     */
+    private final String uuid;
+
+    /**
      * Distributor string for designating which onos node executes this workflow context with work partition.
      */
     private String distributor;
@@ -39,6 +46,7 @@
     public SystemWorkflowContext(Builder builder) {
         super(builder);
         timestamp = System.currentTimeMillis();
+        uuid = UUID.randomUUID().toString();
         //initial distributor(It can be changed)
         distributor = name();
     }
@@ -59,7 +67,7 @@
     @Override
     public String name() {
         return workflowId().toString()
-                + ":" + timestamp
+                + ":" + uuid
                 + "@" + workplaceName();
     }
 
diff --git a/apps/workflow/app/src/main/java/org/onosproject/workflow/impl/WorkFlowEngine.java b/apps/workflow/app/src/main/java/org/onosproject/workflow/impl/WorkFlowEngine.java
index 68c556e..d746985 100644
--- a/apps/workflow/app/src/main/java/org/onosproject/workflow/impl/WorkFlowEngine.java
+++ b/apps/workflow/app/src/main/java/org/onosproject/workflow/impl/WorkFlowEngine.java
@@ -78,6 +78,7 @@
 import static java.util.concurrent.Executors.newSingleThreadExecutor;
 import static java.util.concurrent.Executors.newSingleThreadScheduledExecutor;
 import static org.onlab.util.Tools.groupedThreads;
+import static org.onosproject.workflow.api.CheckCondition.check;
 import static org.onosproject.workflow.api.WorkflowAttribute.REMOVE_AFTER_COMPLETE;
 import static org.slf4j.LoggerFactory.getLogger;
 
@@ -199,6 +200,9 @@
                 log.trace("{} context: {}", context.name(), context);
             }
 
+            check(workplaceStore.getContext(context.name()) == null,
+                    "Duplicated workflow context(" + context.name() + ") assignment.");
+
         } catch (WorkflowException e) {
             log.error("Exception: ", e);
             context.setCause(e.getMessage());
