diff --git a/xos/tosca/resources/port.py b/xos/tosca/resources/port.py
index a4dc974..435ba0f 100644
--- a/xos/tosca/resources/port.py
+++ b/xos/tosca/resources/port.py
@@ -15,21 +15,23 @@
 
     def get_existing_objs(self):
         # Port objects have no name, their unique key is (sliver, network)
-        args = self.get_xos_args()
-        sliver = args['sliver']
-        network = args['network']
+        args = self.get_xos_args(throw_exception=False)
+        sliver = args.get('sliver',None)
+        network = args.get('network',None)
+        if (not sliver) or (not network):
+            return []
         return self.xos_model.objects.filter(**{'sliver': sliver, 'network': network})
 
-    def get_xos_args(self):
+    def get_xos_args(self, throw_exception=True):
         args = {}
 
         sliver_name = self.get_requirement("tosca.relationships.network.BindsTo")
         if sliver_name:
-            args["sliver"] = self.get_xos_object(Sliver, name=sliver_name)
+            args["sliver"] = self.get_xos_object(Sliver, throw_exception, name=sliver_name)
 
         net_name = self.get_requirement("tosca.relationships.network.LinksTo")
         if net_name:
-            args["network"] = self.get_xos_object(Network, name=net_name)
+            args["network"] = self.get_xos_object(Network, throw_exception, name=net_name)
 
         return args
 
