diff --git a/lib/reducers/keyserver-reducer.js b/lib/reducers/keyserver-reducer.js
--- a/lib/reducers/keyserver-reducer.js
+++ b/lib/reducers/keyserver-reducer.js
@@ -177,16 +177,21 @@
     };
   } else if (action.type === fullStateSyncActionType) {
     const { keyserverID } = action.payload;
-    return {
-      ...state,
-      keyserverInfos: {
-        ...state.keyserverInfos,
-        [keyserverID]: {
+    const operation: ReplaceKeyserverOperation = {
+      type: 'replace_keyserver',
+      payload: {
+        id: keyserverID,
+        keyserverInfo: {
           ...state.keyserverInfos[keyserverID],
           updatesCurrentAsOf: action.payload.updatesCurrentAsOf,
         },
       },
     };
+
+    return {
+      ...state,
+      keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+    };
   } else if (action.type === incrementalStateSyncActionType) {
     const { keyserverID } = action.payload;
     let { deviceToken } = state.keyserverInfos[keyserverID];
@@ -199,17 +204,22 @@
         break;
       }
     }
-    return {
-      ...state,
-      keyserverInfos: {
-        ...state.keyserverInfos,
-        [keyserverID]: {
+    const operation: ReplaceKeyserverOperation = {
+      type: 'replace_keyserver',
+      payload: {
+        id: keyserverID,
+        keyserverInfo: {
           ...state.keyserverInfos[keyserverID],
           updatesCurrentAsOf: action.payload.updatesResult.currentAsOf,
           deviceToken,
         },
       },
     };
+
+    return {
+      ...state,
+      keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+    };
   } else if (action.type === processUpdatesActionType) {
     const { keyserverID } = action.payload;
     const updatesCurrentAsOf = Math.max(