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 855d58c..bb6bfcf 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
@@ -132,18 +132,18 @@
                 future.complete(ClusterMessagingProtocol.SERIALIZER.decode(response));
 
             } catch (IOException | InterruptedException | ExecutionException | TimeoutException e) {
-                if (message.subject().equals(ClusterMessagingProtocol.COPYCAT_SYNC) ||
-                        message.subject().equals(ClusterMessagingProtocol.COPYCAT_PING)) {
-                    log.warn("{} Request to {} failed. Will retry in {} ms",
-                             message.subject(), remoteNode, RETRY_INTERVAL_MILLIS);
-                    THREAD_POOL.schedule(
-                            this,
-                            RETRY_INTERVAL_MILLIS,
-                            TimeUnit.MILLISECONDS);
-                } else {
+//                if (message.subject().equals(ClusterMessagingProtocol.COPYCAT_SYNC) ||
+//                        message.subject().equals(ClusterMessagingProtocol.COPYCAT_PING)) {
+//                    log.warn("{} Request to {} failed. Will retry in {} ms",
+//                             message.subject(), remoteNode, RETRY_INTERVAL_MILLIS);
+//                    THREAD_POOL.schedule(
+//                            this,
+//                            RETRY_INTERVAL_MILLIS,
+//                            TimeUnit.MILLISECONDS);
+//                } else {
                     log.warn("RPCTask for {} failed.", request, e);
                     future.completeExceptionally(e);
-                }
+//                }
             } catch (Exception e) {
                 log.warn("RPCTask for {} terribly failed.", request, e);
                 future.completeExceptionally(e);
