diff --git a/core/store/dist/src/main/java/org/onosproject/store/impl/EventuallyConsistentMapImpl.java b/core/store/dist/src/main/java/org/onosproject/store/impl/EventuallyConsistentMapImpl.java
index b011517..19786f8 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/impl/EventuallyConsistentMapImpl.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/impl/EventuallyConsistentMapImpl.java
@@ -366,26 +366,14 @@
     }
 
     private void notifyPeers(InternalPutEvent event) {
-        try {
-            log.debug("sending put {}", event);
-            broadcastMessage(updateMessageSubject, event);
-        } catch (IOException e) {
-            // TODO this won't happen; remove from API
-            log.debug("IOException broadcasting update", e);
-        }
+        broadcastMessage(updateMessageSubject, event);
     }
 
     private void notifyPeers(InternalRemoveEvent event) {
-        try {
-            broadcastMessage(removeMessageSubject, event);
-        } catch (IOException e) {
-            // TODO this won't happen; remove from API
-            log.debug("IOException broadcasting update", e);
-        }
+        broadcastMessage(removeMessageSubject, event);
     }
 
-    private void broadcastMessage(MessageSubject subject, Object event) throws
-            IOException {
+    private void broadcastMessage(MessageSubject subject, Object event) {
         ClusterMessage message = new ClusterMessage(
                 clusterService.getLocalNode().id(),
                 subject,
