diff --git a/core/store/dist/src/main/java/org/onosproject/store/cluster/messaging/impl/NettyMessagingManager.java b/core/store/dist/src/main/java/org/onosproject/store/cluster/messaging/impl/NettyMessagingManager.java
index e9b50c4..2e8682b 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/cluster/messaging/impl/NettyMessagingManager.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/cluster/messaging/impl/NettyMessagingManager.java
@@ -545,7 +545,7 @@
                     } else if (message.status() == Status.ERROR_HANDLER_EXCEPTION) {
                         callback.completeExceptionally(new MessagingException.RemoteHandlerFailure());
                     } else if (message.status() == Status.PROTOCOL_EXCEPTION) {
-                        callback.completeExceptionally(new MessagingException.ProcotolException());
+                        callback.completeExceptionally(new MessagingException.ProtocolException());
                     }
                 } else {
                     log.debug("Received a reply for message id:[{}]. "
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/EventuallyConsistentMapImpl.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/EventuallyConsistentMapImpl.java
index ffbb0c5..bba165f 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/EventuallyConsistentMapImpl.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/EventuallyConsistentMapImpl.java
@@ -588,7 +588,8 @@
                 peer)
                 .whenComplete((result, error) -> {
                     if (error != null) {
-                        log.debug("Failed to send anti-entropy advertisement to {}", peer, error);
+                        log.debug("Failed to send anti-entropy advertisement to {}: {}",
+                                peer, error.getMessage());
                     } else if (result == AntiEntropyResponse.PROCESSED) {
                         antiEntropyTimes.put(peer, adCreationTime);
                     }
@@ -603,7 +604,8 @@
                 peer)
                 .whenComplete((result, error) -> {
                     if (error != null) {
-                        log.debug("Failed to send update request to {}", peer, error);
+                        log.debug("Failed to send update request to {}: {}",
+                                peer, error.getMessage());
                     }
                 });
     }
