diff --git a/src/app/instances/ns-primitive/NSPrimitiveComponent.ts b/src/app/instances/ns-primitive/NSPrimitiveComponent.ts
index cf60b57..5ddb197 100644
--- a/src/app/instances/ns-primitive/NSPrimitiveComponent.ts
+++ b/src/app/instances/ns-primitive/NSPrimitiveComponent.ts
@@ -155,11 +155,7 @@
      */
     public ngOnInit(): void {
         /** Setting up initial value for NSD */
-        this.dataService.currentMessage.subscribe((event: NSData): void => {
-            if (event.identifier !== undefined || event.identifier !== '' || event.identifier !== null) {
-                this.nsdId = event.identifier;
-            }
-        });
+        this.nsdId = this.params.nsID;
         this.getMemberVnfIndex();
         this.initializeForm();
     }
@@ -379,8 +375,8 @@
                                     this.kduList = [];
                                     this.vduList = [];
                                     this.primitiveList = [];
-                                    df['vdu-profile'].forEach((vduProfile: VDUPROFILE): void => {
-                                        day12Operation.forEach((element: VDUCONFIG): void => {
+                                    df['vdu-profile']?.forEach((vduProfile: VDUPROFILE): void => {
+                                        day12Operation?.forEach((element: VDUCONFIG): void => {
                                             if (element.id === vduProfile.id) {
                                                 const vduDataObj: VDUPROFILE = this.generateVDUData(element);
                                                 this.vduList.push(vduDataObj);
@@ -394,8 +390,8 @@
                                     this.vduList = [];
                                     this.primitiveList = [];
                                     if (!isNullOrUndefined(vnfInstances.kdu)) {
-                                        vnfInstances.kdu.forEach((kduData: KDUPRIMITIVELEVEL): void => {
-                                            day12Operation.forEach((element: VDUCONFIG): void => {
+                                        vnfInstances.kdu?.forEach((kduData: KDUPRIMITIVELEVEL): void => {
+                                            day12Operation?.forEach((element: VDUCONFIG): void => {
                                                 if (element.id === kduData.name) {
                                                     const kduDataObj: KDUPRIMITIVELEVEL = this.generateKDUData(kduData, element);
                                                     this.kduList.push(kduDataObj);
diff --git a/src/app/utilities/ns-instances-action/NSInstancesActionComponent.ts b/src/app/utilities/ns-instances-action/NSInstancesActionComponent.ts
index 74f1518..8ae776f 100644
--- a/src/app/utilities/ns-instances-action/NSInstancesActionComponent.ts
+++ b/src/app/utilities/ns-instances-action/NSInstancesActionComponent.ts
@@ -198,7 +198,8 @@
       memberIndex: this.value.memberIndex,
       nsConfig: this.value.nsConfig,
       name: this.value.NsdName,
-      id: this.value.constituent
+      id: this.value.constituent,
+      nsID: this.instanceID
     };
   }
 
