diff --git a/core/store/dist/src/main/java/org/onlab/onos/store/service/impl/ClusterMessagingProtocolClient.java b/core/store/dist/src/main/java/org/onlab/onos/store/service/impl/ClusterMessagingProtocolClient.java
index 61ec467..23c34b2 100644
--- a/core/store/dist/src/main/java/org/onlab/onos/store/service/impl/ClusterMessagingProtocolClient.java
+++ b/core/store/dist/src/main/java/org/onlab/onos/store/service/impl/ClusterMessagingProtocolClient.java
@@ -1,6 +1,8 @@
 package org.onlab.onos.store.service.impl;
 
+import static com.google.common.base.Verify.verifyNotNull;
 import static org.slf4j.LoggerFactory.getLogger;
+import static org.onlab.onos.store.service.impl.ClusterMessagingProtocol.SERIALIZER;
 
 import java.io.IOException;
 import java.util.concurrent.CompletableFuture;
@@ -122,7 +124,7 @@
                     new ClusterMessage(
                             localNode.id(),
                             messageType(request),
-                            ClusterMessagingProtocol.SERIALIZER.encode(request));
+                            verifyNotNull(SERIALIZER.encode(request)));
             this.future = future;
         }
 
@@ -132,7 +134,7 @@
                 byte[] response = clusterCommunicator
                     .sendAndReceive(message, remoteNode.id())
                     .get(RETRY_INTERVAL_MILLIS, TimeUnit.MILLISECONDS);
-                future.complete(ClusterMessagingProtocol.SERIALIZER.decode(response));
+                future.complete(verifyNotNull(SERIALIZER.decode(response)));
 
             } catch (IOException | InterruptedException | ExecutionException | TimeoutException e) {
                 log.warn("RPCTask for {} failed.", request, e);
