diff --git a/NG-RO/osm_ng_ro/ns.py b/NG-RO/osm_ng_ro/ns.py
index 1b4e9eb..aa1040d 100644
--- a/NG-RO/osm_ng_ro/ns.py
+++ b/NG-RO/osm_ng_ro/ns.py
@@ -548,8 +548,12 @@
                 for iface_index, interface in enumerate(target_vdu["interfaces"]):
                     if interface.get("ns-vld-id"):
                         net_text = ns_preffix + ":vld." + interface["ns-vld-id"]
-                    else:
+                    elif interface.get("vnf-vld-id"):
                         net_text = vnf_preffix + ":vld." + interface["vnf-vld-id"]
+                    else:
+                        self.logger.error("Interface {} from vdu {} not connected to any vld".format(
+                            iface_index, target_vdu["vdu-name"]))
+                        continue   # interface not connected to any vld
                     extra_dict["depends_on"].append(net_text)
                     net_item = {x: v for x, v in interface.items() if x in
                                 ("name", "vpci", "port_security", "port_security_disable_strategy", "floating_ip")}
diff --git a/NG-RO/osm_ng_ro/ns_thread.py b/NG-RO/osm_ng_ro/ns_thread.py
index 013cae9..0ec8452 100644
--- a/NG-RO/osm_ng_ro/ns_thread.py
+++ b/NG-RO/osm_ng_ro/ns_thread.py
@@ -1222,6 +1222,7 @@
                 for task_index, task in enumerate(ro_task["tasks"]):
                     if not task:
                         continue  # task deleted
+                    task_depends = {}
                     target_update = None
                     if (task_action in ("DELETE", "EXEC") and task["status"] not in ("SCHEDULED", "BUILD")) or \
                             task["action"] != task_action or \
@@ -1231,7 +1232,6 @@
                     try:
                         db_vim_info_update = None
                         if task["status"] == "SCHEDULED":
-                            task_depends = {}
                             # check if tasks that this depends on have been completed
                             dependency_not_completed = False
                             for dependency_task_id in (task.get("depends_on") or ()):
