diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocket.java b/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocket.java
index 96ebadb..0290857 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocket.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocket.java
@@ -229,12 +229,9 @@
     }
 
     @Override
-    public synchronized void sendMessage(String type, long sid, ObjectNode payload) {
+    public synchronized void sendMessage(String type, ObjectNode payload) {
         ObjectNode message = mapper.createObjectNode();
         message.put(EVENT, type);
-        if (sid > 0) {
-            message.put(SID, sid);
-        }
         message.set(PAYLOAD, payload != null ? payload : mapper.createObjectNode());
         sendMessage(message);
     }
@@ -305,7 +302,7 @@
         ObjectNode payload = mapper.createObjectNode();
         payload.set(CLUSTER_NODES, instances);
         payload.put(USER, userName);
-        sendMessage(BOOTSTRAP, 0, payload);
+        sendMessage(BOOTSTRAP, payload);
     }
 
 }
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocketServlet.java b/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocketServlet.java
index 0ca3b05..d0cbeec 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocketServlet.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocketServlet.java
@@ -94,7 +94,7 @@
      */
     static void sendToAll(String type, ObjectNode payload) {
         if (instance != null) {
-            instance.sockets.forEach(ws -> ws.sendMessage(type, 0, payload));
+            instance.sockets.forEach(ws -> ws.sendMessage(type, payload));
         }
     }
 
@@ -108,7 +108,7 @@
     static void sendToUser(String userName, String type, ObjectNode payload) {
         if (instance != null) {
             instance.sockets.stream().filter(ws -> userName.equals(ws.userName()))
-                    .forEach(ws -> ws.sendMessage(type, 0, payload));
+                    .forEach(ws -> ws.sendMessage(type, payload));
         }
     }
 
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/topo/UiTopoSession.java b/web/gui/src/main/java/org/onosproject/ui/impl/topo/UiTopoSession.java
index 79e262b..f13ebc5 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/topo/UiTopoSession.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/topo/UiTopoSession.java
@@ -139,7 +139,7 @@
         //   that are not relevant, and only send up events for objects that
         //   are currently being viewed by the user.
 
-        webSocket.sendMessage(TOPO2_UI_MODEL_EVENT, 0, payload);
+        webSocket.sendMessage(TOPO2_UI_MODEL_EVENT, payload);
     }
 
     /**
