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
@@ -48,7 +48,10 @@
 export default function reduceKeyserverStore(
   state: KeyserverStore,
   action: BaseAction,
-): KeyserverStore {
+): {
+  keyserverStore: KeyserverStore,
+  keyserverStoreOperations: $ReadOnlyArray<KeyserverStoreOperation>,
+} {
   if (action.type === addKeyserverActionType) {
     const replaceOperation: ReplaceKeyserverOperation = {
       type: 'replace_keyserver',
@@ -61,8 +64,13 @@
     };
 
     return {
-      ...state,
-      keyserverInfos: processStoreOps(state.keyserverInfos, [replaceOperation]),
+      keyserverStore: {
+        ...state,
+        keyserverInfos: processStoreOps(state.keyserverInfos, [
+          replaceOperation,
+        ]),
+      },
+      keyserverStoreOperations: [replaceOperation],
     };
   } else if (action.type === removeKeyserverActionType) {
     const removeOperation: RemoveKeyserverOperation = {
@@ -73,8 +81,13 @@
     };
 
     return {
-      ...state,
-      keyserverInfos: processStoreOps(state.keyserverInfos, [removeOperation]),
+      keyserverStore: {
+        ...state,
+        keyserverInfos: processStoreOps(state.keyserverInfos, [
+          removeOperation,
+        ]),
+      },
+      keyserverStoreOperations: [removeOperation],
     };
   } else if (action.type === resetUserStateActionType) {
     // this action is only dispatched on native
@@ -98,8 +111,14 @@
     }
 
     return {
-      ...state,
-      keyserverInfos: processStoreOps(state.keyserverInfos, replaceOperations),
+      keyserverStore: {
+        ...state,
+        keyserverInfos: processStoreOps(
+          state.keyserverInfos,
+          replaceOperations,
+        ),
+      },
+      keyserverStoreOperations: replaceOperations,
     };
   } else if (action.type === setNewSessionActionType) {
     const { keyserverID, sessionChange } = action.payload;
@@ -110,7 +129,10 @@
             `but keyserver ${keyserverID} is not in KeyserverStore!`,
         );
       }
-      return state;
+      return {
+        keyserverStore: state,
+        keyserverStoreOperations: [],
+      };
     }
     const operations: ReplaceKeyserverOperation[] = [];
     if (sessionChange.cookie !== undefined) {
@@ -141,8 +163,11 @@
       });
     }
     return {
-      ...state,
-      keyserverInfos: processStoreOps(state.keyserverInfos, operations),
+      keyserverStore: {
+        ...state,
+        keyserverInfos: processStoreOps(state.keyserverInfos, operations),
+      },
+      keyserverStoreOperations: operations,
     };
   } else if (
     action.type === logInActionTypes.success ||
@@ -166,8 +191,11 @@
       });
     }
     return {
-      ...state,
-      keyserverInfos: processStoreOps(state.keyserverInfos, operations),
+      keyserverStore: {
+        ...state,
+        keyserverInfos: processStoreOps(state.keyserverInfos, operations),
+      },
+      keyserverStoreOperations: operations,
     };
   } else if (action.type === fullStateSyncActionType) {
     const { keyserverID } = action.payload;
@@ -183,8 +211,11 @@
     };
 
     return {
-      ...state,
-      keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      keyserverStore: {
+        ...state,
+        keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      },
+      keyserverStoreOperations: [operation],
     };
   } else if (action.type === incrementalStateSyncActionType) {
     const { keyserverID } = action.payload;
@@ -211,8 +242,11 @@
     };
 
     return {
-      ...state,
-      keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      keyserverStore: {
+        ...state,
+        keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      },
+      keyserverStoreOperations: [operation],
     };
   } else if (action.type === processUpdatesActionType) {
     const { keyserverID } = action.payload;
@@ -231,8 +265,11 @@
       },
     };
     return {
-      ...state,
-      keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      keyserverStore: {
+        ...state,
+        keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      },
+      keyserverStoreOperations: [operation],
     };
   } else if (action.type === setURLPrefix) {
     const operation: ReplaceKeyserverOperation = {
@@ -246,8 +283,11 @@
       },
     };
     return {
-      ...state,
-      keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      keyserverStore: {
+        ...state,
+        keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      },
+      keyserverStoreOperations: [operation],
     };
   } else if (action.type === updateLastCommunicatedPlatformDetailsActionType) {
     const { keyserverID, platformDetails } = action.payload;
@@ -262,8 +302,11 @@
       },
     };
     return {
-      ...state,
-      keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      keyserverStore: {
+        ...state,
+        keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      },
+      keyserverStoreOperations: [operation],
     };
   } else if (action.type === keyserverRegisterActionTypes.success) {
     const operation: ReplaceKeyserverOperation = {
@@ -277,8 +320,11 @@
       },
     };
     return {
-      ...state,
-      keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      keyserverStore: {
+        ...state,
+        keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      },
+      keyserverStoreOperations: [operation],
     };
   } else if (action.type === updateConnectionStatusActionType) {
     const { keyserverID, status } = action.payload;
@@ -297,8 +343,11 @@
       },
     };
     return {
-      ...state,
-      keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      keyserverStore: {
+        ...state,
+        keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      },
+      keyserverStoreOperations: [operation],
     };
   } else if (action.type === unsupervisedBackgroundActionType) {
     const { keyserverID } = action.payload;
@@ -317,8 +366,11 @@
       },
     };
     return {
-      ...state,
-      keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      keyserverStore: {
+        ...state,
+        keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      },
+      keyserverStoreOperations: [operation],
     };
   } else if (action.type === queueActivityUpdatesActionType) {
     const { activityUpdates, keyserverID } = action.payload;
@@ -355,8 +407,11 @@
     };
 
     return {
-      ...state,
-      keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      keyserverStore: {
+        ...state,
+        keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      },
+      keyserverStoreOperations: [operation],
     };
   } else if (action.type === updateActivityActionTypes.success) {
     const { activityUpdates } = action.payload;
@@ -381,8 +436,11 @@
       });
     }
     return {
-      ...state,
-      keyserverInfos: processStoreOps(state.keyserverInfos, operations),
+      keyserverStore: {
+        ...state,
+        keyserverInfos: processStoreOps(state.keyserverInfos, operations),
+      },
+      keyserverStoreOperations: operations,
     };
   } else if (
     action.type === logOutActionTypes.success ||
@@ -410,8 +468,11 @@
     });
 
     return {
-      ...state,
-      keyserverInfos: processStoreOps(state.keyserverInfos, operations),
+      keyserverStore: {
+        ...state,
+        keyserverInfos: processStoreOps(state.keyserverInfos, operations),
+      },
+      keyserverStoreOperations: operations,
     };
   } else if (action.type === setLateResponseActionType) {
     const { messageID, isLate, keyserverID } = action.payload;
@@ -438,8 +499,11 @@
     };
 
     return {
-      ...state,
-      keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      keyserverStore: {
+        ...state,
+        keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      },
+      keyserverStoreOperations: [operation],
     };
   } else if (action.type === updateDisconnectedBarActionType) {
     const { keyserverID } = action.payload;
@@ -457,8 +521,11 @@
       },
     };
     return {
-      ...state,
-      keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      keyserverStore: {
+        ...state,
+        keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      },
+      keyserverStoreOperations: [operation],
     };
   } else if (action.type === setDeviceTokenActionTypes.success) {
     const { deviceTokens } = action.payload;
@@ -476,8 +543,11 @@
       });
     }
     return {
-      ...state,
-      keyserverInfos: processStoreOps(state.keyserverInfos, operations),
+      keyserverStore: {
+        ...state,
+        keyserverInfos: processStoreOps(state.keyserverInfos, operations),
+      },
+      keyserverStoreOperations: operations,
     };
   } else if (action.type === setConnectionIssueActionType) {
     const { connectionIssue, keyserverID } = action.payload;
@@ -495,10 +565,16 @@
       },
     };
     return {
-      ...state,
-      keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      keyserverStore: {
+        ...state,
+        keyserverInfos: processStoreOps(state.keyserverInfos, [operation]),
+      },
+      keyserverStoreOperations: [operation],
     };
   }
 
-  return state;
+  return {
+    keyserverStore: state,
+    keyserverStoreOperations: [],
+  };
 }
diff --git a/lib/reducers/master-reducer.js b/lib/reducers/master-reducer.js
--- a/lib/reducers/master-reducer.js
+++ b/lib/reducers/master-reducer.js
@@ -77,7 +77,7 @@
     reduceMessageStore(state.messageStore, action, threadInfos);
   let messageStore = reducedMessageStore;
 
-  let keyserverStore = reduceKeyserverStore(state.keyserverStore, action);
+  let { keyserverStore } = reduceKeyserverStore(state.keyserverStore, action);
 
   if (
     action.type !== incrementalStateSyncActionType &&