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
@@ -21,6 +21,10 @@
   resetUserStateActionType,
 } from '../actions/user-actions.js';
 import { setNewSessionActionType } from '../keyserver-conn/keyserver-conn-types.js';
+import {
+  keyserverStoreOpsHandlers,
+  type ReplaceKeyserverOperation,
+} from '../ops/keyserver-store-ops.js';
 import { queueActivityUpdatesActionType } from '../types/activity-types.js';
 import type { KeyserverInfos, KeyserverStore } from '../types/keyserver-types';
 import type { BaseAction } from '../types/redux-types.js';
@@ -38,20 +42,27 @@
 import { setURLPrefix } from '../utils/url-utils.js';
 import { ashoatKeyserverID } from '../utils/validation-utils.js';
 
+const { processStoreOperations: processStoreOps } = keyserverStoreOpsHandlers;
+
 export default function reduceKeyserverStore(
   state: KeyserverStore,
   action: BaseAction,
 ): KeyserverStore {
   if (action.type === addKeyserverActionType) {
-    return {
-      ...state,
-      keyserverInfos: {
-        ...state.keyserverInfos,
-        [action.payload.keyserverAdminUserID]: {
+    const replaceOperation: ReplaceKeyserverOperation = {
+      type: 'replace_keyserver',
+      payload: {
+        id: action.payload.keyserverAdminUserID,
+        keyserverInfo: {
           ...action.payload.newKeyserverInfo,
         },
       },
     };
+
+    return {
+      ...state,
+      keyserverInfos: processStoreOps(state.keyserverInfos, [replaceOperation]),
+    };
   } else if (action.type === removeKeyserverActionType) {
     const { [action.payload.keyserverAdminUserID]: _, ...rest } =
       state.keyserverInfos;