diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/DistributedInstancePortStore.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/DistributedInstancePortStore.java
index e9d2b2f..f48bdc3 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/DistributedInstancePortStore.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/DistributedInstancePortStore.java
@@ -50,6 +50,7 @@
 import static org.onosproject.openstacknetworking.api.InstancePort.State.INACTIVE;
 import static org.onosproject.openstacknetworking.api.InstancePort.State.MIGRATED;
 import static org.onosproject.openstacknetworking.api.InstancePort.State.MIGRATING;
+import static org.onosproject.openstacknetworking.api.InstancePort.State.REMOVE_PENDING;
 import static org.onosproject.openstacknetworking.api.InstancePortEvent.Type.OPENSTACK_INSTANCE_MIGRATION_ENDED;
 import static org.onosproject.openstacknetworking.api.InstancePortEvent.Type.OPENSTACK_INSTANCE_MIGRATION_STARTED;
 import static org.onosproject.openstacknetworking.api.InstancePortEvent.Type.OPENSTACK_INSTANCE_PORT_DETECTED;
@@ -224,6 +225,11 @@
                 return;
             }
 
+            // we do not trigger instance port update for pending state transition
+            if (newState == REMOVE_PENDING) {
+                return;
+            }
+
             notifyDelegate(new InstancePortEvent(
                     OPENSTACK_INSTANCE_PORT_UPDATED,
                     event.newValue().value()));
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/DistributedOpenstackRouterStore.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/DistributedOpenstackRouterStore.java
index bea2a00..d16647c 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/DistributedOpenstackRouterStore.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/DistributedOpenstackRouterStore.java
@@ -321,7 +321,8 @@
         }
     }
 
-    private class OpenstackRouterInterfaceMapListener implements MapEventListener<String, RouterInterface> {
+    private class OpenstackRouterInterfaceMapListener
+                        implements MapEventListener<String, RouterInterface> {
 
         @Override
         public void event(MapEvent<String, RouterInterface> event) {
@@ -360,7 +361,8 @@
         }
     }
 
-    private class OpenstackFloatingIpMapListener implements MapEventListener<String, NetFloatingIP> {
+    private class OpenstackFloatingIpMapListener
+                            implements MapEventListener<String, NetFloatingIP> {
 
         @Override
         public void event(MapEvent<String, NetFloatingIP> event) {
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/InstancePortManager.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/InstancePortManager.java
index 476db2b..8d346a9 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/InstancePortManager.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/InstancePortManager.java
@@ -331,6 +331,16 @@
                     }
                     break;
                 case HOST_REMOVED:
+
+                    // in case the instance port cannot be found in the store,
+                    // this indicates that the instance port was removed due to
+                    // the removal of openstack port; in some cases, openstack
+                    // port removal message arrives before ovs port removal message
+                    if (instancePortStore.instancePort(instPort.portId()) == null) {
+                        log.debug("instance port was removed before ovs port removal");
+                        break;
+                    }
+
                     // we will remove instance port from persistent store,
                     // only if we receive port removal signal from neutron.
                     // by default, we update the instance port state to INACTIVE
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingFloatingIpHandler.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingFloatingIpHandler.java
index 6c3ef24..8a59d36 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingFloatingIpHandler.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingFloatingIpHandler.java
@@ -569,23 +569,31 @@
                 case OPENSTACK_FLOATING_IP_ASSOCIATED:
                     eventExecutor.execute(() -> {
                         NetFloatingIP osFip = event.floatingIp();
-                        associateFloatingIp(osFip);
-                        log.info("Associated floating IP {}:{}",
-                                osFip.getFloatingIpAddress(), osFip.getFixedIpAddress());
+                        if (instancePortService.instancePort(osFip.getPortId()) != null) {
+                            associateFloatingIp(osFip);
+                            log.info("Associated floating IP {}:{}",
+                                    osFip.getFloatingIpAddress(),
+                                    osFip.getFixedIpAddress());
+                        }
                     });
                     break;
                 case OPENSTACK_FLOATING_IP_DISASSOCIATED:
                     eventExecutor.execute(() -> {
                         NetFloatingIP osFip = event.floatingIp();
-                        disassociateFloatingIp(osFip, event.portId());
-                        log.info("Disassociated floating IP {}:{}",
-                                osFip.getFloatingIpAddress(), osFip.getFixedIpAddress());
+                        if (instancePortService.instancePort(event.portId()) != null) {
+                            disassociateFloatingIp(osFip, event.portId());
+                            log.info("Disassociated floating IP {}:{}",
+                                    osFip.getFloatingIpAddress(),
+                                    osFip.getFixedIpAddress());
+                        }
                     });
                     break;
                 case OPENSTACK_FLOATING_IP_CREATED:
                     eventExecutor.execute(() -> {
                         NetFloatingIP osFip = event.floatingIp();
-                        if (!Strings.isNullOrEmpty(osFip.getPortId())) {
+                        String portId = osFip.getPortId();
+                        if (!Strings.isNullOrEmpty(portId) &&
+                                instancePortService.instancePort(portId) != null) {
                             associateFloatingIp(event.floatingIp());
                         }
                         log.info("Created floating IP {}", osFip.getFloatingIpAddress());
@@ -594,11 +602,13 @@
                 case OPENSTACK_FLOATING_IP_REMOVED:
                     eventExecutor.execute(() -> {
                         NetFloatingIP osFip = event.floatingIp();
+                        String portId = osFip.getPortId();
                         if (!Strings.isNullOrEmpty(osFip.getPortId())) {
                             // in case the floating IP is not associated with any port due to
                             // port removal, we simply do not execute floating IP disassociation
-                            if (osNetworkService.port(osFip.getPortId()) != null) {
-                                disassociateFloatingIp(osFip, osFip.getPortId());
+                            if (osNetworkService.port(portId) != null &&
+                                    instancePortService.instancePort(portId) != null) {
+                                disassociateFloatingIp(osFip, portId);
                             }
 
                             // since we skip floating IP disassociation, we need to
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSecurityGroupHandler.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSecurityGroupHandler.java
index 01711e9..55f9c45 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSecurityGroupHandler.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSecurityGroupHandler.java
@@ -835,7 +835,7 @@
                         try {
                             if (useSecurityGroup) {
                                 initializeConnTrackTable(osNode.intgBridge(), true);
-                                log.warn("SG table initialization : {} is done",
+                                log.info("SG table initialization : {} is done",
                                                             osNode.intgBridge());
                             }
                         } catch (IllegalArgumentException e) {
