diff --git a/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/common/workflow/service/WorkflowProcessor.java b/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/common/workflow/service/WorkflowProcessor.java
index d33e7ae..70365b7 100644
--- a/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/common/workflow/service/WorkflowProcessor.java
+++ b/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/common/workflow/service/WorkflowProcessor.java
@@ -85,12 +85,14 @@
         Map<String, Object> inputVariables = new HashMap<>();
         @SuppressWarnings("unchecked")
         Map<String, Object> vMap = (Map<String, Object>) variableMap.get("variables");
-        for (Map.Entry<String, Object> entry : vMap.entrySet()) {
-            String vName = entry.getKey();
-            Object value = entry.getValue();
-            @SuppressWarnings("unchecked")
-            Map<String, Object> valueMap = (Map<String, Object>) value; // value, type
-            inputVariables.put(vName, valueMap.get("value"));
+        if (vMap != null) {
+            for (Map.Entry<String, Object> entry : vMap.entrySet()) {
+                String vName = entry.getKey();
+                Object value = entry.getValue();
+                @SuppressWarnings("unchecked")
+                Map<String, Object> valueMap = (Map<String, Object>) value; // value, type
+                inputVariables.put(vName, valueMap.get("value"));
+            }
         }
         return inputVariables;
     }
