diff --git a/impl/src/main/java/org/opencord/olt/impl/Olt.java b/impl/src/main/java/org/opencord/olt/impl/Olt.java
index 747a0b4..af3eed8 100644
--- a/impl/src/main/java/org/opencord/olt/impl/Olt.java
+++ b/impl/src/main/java/org/opencord/olt/impl/Olt.java
@@ -852,8 +852,12 @@
                 }
             } else {
                 if (oltDeviceService.isNniPort(device, port.number())) {
-                    // NOTE this may need to be handled on DEVICE_REMOVE as we don't disable the NNI
-                    oltFlowService.handleNniFlows(device, port, OltFlowService.FlowOperation.REMOVE);
+                    // NOTE the NNI is only disabled if the OLT shuts down (reboot or failure).
+                    // In that case the flows are purged anyway, so there's no need to deal with them,
+                    // it would actually be counter-productive as the openflow connection is severed and they won't
+                    // be correctly processed
+                    log.debug("NNI port went down, " +
+                            "ignoring event as flows will be removed in the generic device cleanup");
                 } else {
                     post(new AccessDeviceEvent(AccessDeviceEvent.Type.UNI_REMOVED, device.id(), port));
                     // NOTE we are assuming that if a subscriber has default eapol
diff --git a/impl/src/main/java/org/opencord/olt/impl/OltFlowService.java b/impl/src/main/java/org/opencord/olt/impl/OltFlowService.java
index f798e25..f1ef425 100644
--- a/impl/src/main/java/org/opencord/olt/impl/OltFlowService.java
+++ b/impl/src/main/java/org/opencord/olt/impl/OltFlowService.java
@@ -659,11 +659,7 @@
     @Override
     public void purgeDeviceFlows(DeviceId deviceId) {
         log.debug("Purging flows on device {}", deviceId);
-        try {
-            flowRuleService.purgeFlowRules(deviceId);
-        } catch (Exception e) {
-            log.error("Cannot purge flow rules", e);
-        }
+        flowRuleService.purgeFlowRules(deviceId);
 
         // removing the status from the cpStatus map
         if (log.isTraceEnabled()) {
@@ -678,8 +674,6 @@
                     cpStatus.remove(entry.getKey());
                 }
             }
-        } catch (Exception e) {
-            log.error("Cannot wipe out cpStatus", e);
         } finally {
             cpStatusWriteLock.unlock();
         }
@@ -697,8 +691,6 @@
                     provisionedSubscribers.remove(entry.getKey());
                 }
             }
-        } catch (Exception e) {
-            log.error("Cannot wipe out subscribers", e);
         } finally {
             provisionedSubscribersWriteLock.unlock();
         }
diff --git a/impl/src/test/java/org/opencord/olt/impl/OltDeviceListenerTest.java b/impl/src/test/java/org/opencord/olt/impl/OltDeviceListenerTest.java
index f8229da..0d5204f 100644
--- a/impl/src/test/java/org/opencord/olt/impl/OltDeviceListenerTest.java
+++ b/impl/src/test/java/org/opencord/olt/impl/OltDeviceListenerTest.java
@@ -50,6 +50,7 @@
 import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
@@ -149,8 +150,9 @@
         DeviceEvent nniDisabledEvent = new DeviceEvent(DeviceEvent.Type.PORT_UPDATED, testDevice, disabledNniPort);
         oltDeviceListener.event(nniDisabledEvent);
 
+        // when the NNI goes down we ignore the event
         assert olt.eventsQueues.isEmpty();
-        verify(olt.oltFlowService, times(1))
+        verify(olt.oltFlowService, never())
                 .handleNniFlows(testDevice, disabledNniPort, OltFlowService.FlowOperation.REMOVE);
 
         // when we disable the device we receive a PORT_REMOVED event with status ENABLED
