diff --git a/lib/actions/user-actions.js b/lib/actions/user-actions.js
--- a/lib/actions/user-actions.js
+++ b/lib/actions/user-actions.js
@@ -11,7 +11,6 @@
 import { IdentityClientContext } from '../shared/identity-client-context.js';
 import threadWatcher from '../shared/thread-watcher.js';
 import type {
-  LogOutResult,
   LogInInfo,
   LogInResult,
   RegisterResult,
@@ -24,6 +23,7 @@
   KeyserverAuthInfo,
   KeyserverAuthRequest,
   ClientLogInResponse,
+  KeyserverLogOutResult,
 } from '../types/account-types.js';
 import type {
   UpdateUserAvatarRequest,
@@ -72,6 +72,11 @@
   anonymous: true,
 };
 
+export type KeyserverLogOutInput = {
+  +preRequestUserState: PreRequestUserState,
+  +keyserverIDs?: $ReadOnlyArray<string>,
+};
+
 const logOutActionTypes = Object.freeze({
   started: 'LOG_OUT_STARTED',
   success: 'LOG_OUT_SUCCESS',
@@ -81,10 +86,12 @@
   (
     callKeyserverEndpoint: CallKeyserverEndpoint,
     allKeyserverIDs: $ReadOnlyArray<string>,
-  ): ((input: PreRequestUserState) => Promise<LogOutResult>) =>
-  async preRequestUserState => {
+  ): ((input: KeyserverLogOutInput) => Promise<KeyserverLogOutResult>) =>
+  async input => {
+    const { preRequestUserState } = input;
+    const keyserverIDs = input.keyserverIDs ?? allKeyserverIDs;
     const requests: { [string]: {} } = {};
-    for (const keyserverID of allKeyserverIDs) {
+    for (const keyserverID of keyserverIDs) {
       requests[keyserverID] = {};
     }
 
@@ -99,15 +106,18 @@
       ]);
     } catch {}
     const currentUserInfo = response ? loggedOutUserInfo : null;
-    return { currentUserInfo, preRequestUserState };
+    return { currentUserInfo, preRequestUserState, keyserverIDs };
   };
 
-function useLogOut(): () => Promise<LogOutResult> {
+function useLogOut(): (
+  keyserverIDs?: $ReadOnlyArray<string>,
+) => Promise<KeyserverLogOutResult> {
   const preRequestUserState = useSelector(preRequestUserStateSelector);
   const callKeyserverLogOut = useKeyserverCall(logOut);
 
   return React.useCallback(
-    () => callKeyserverLogOut(preRequestUserState),
+    (keyserverIDs?: $ReadOnlyArray<string>) =>
+      callKeyserverLogOut({ preRequestUserState, keyserverIDs }),
     [callKeyserverLogOut, preRequestUserState],
   );
 }
@@ -147,21 +157,34 @@
   (
     callKeyserverEndpoint: CallKeyserverEndpoint,
     allKeyserverIDs: $ReadOnlyArray<string>,
-  ): ((input: PreRequestUserState) => Promise<LogOutResult>) =>
-  async preRequestUserState => {
+  ): ((input: KeyserverLogOutInput) => Promise<KeyserverLogOutResult>) =>
+  async input => {
+    const { preRequestUserState } = input;
+    const keyserverIDs = input.keyserverIDs ?? allKeyserverIDs;
     const requests: { [string]: {} } = {};
-    for (const keyserverID of allKeyserverIDs) {
+    for (const keyserverID of keyserverIDs) {
       requests[keyserverID] = {};
     }
 
     await callKeyserverEndpoint('delete_account', requests);
-    return { currentUserInfo: loggedOutUserInfo, preRequestUserState };
+    return {
+      currentUserInfo: loggedOutUserInfo,
+      preRequestUserState,
+      keyserverIDs,
+    };
   };
 
 function useDeleteKeyserverAccount(): (
-  input: PreRequestUserState,
-) => Promise<LogOutResult> {
-  return useKeyserverCall(deleteKeyserverAccount);
+  keyserverIDs?: $ReadOnlyArray<string>,
+) => Promise<KeyserverLogOutResult> {
+  const preRequestUserState = useSelector(preRequestUserStateSelector);
+  const callKeyserverDeleteAccount = useKeyserverCall(deleteKeyserverAccount);
+
+  return React.useCallback(
+    (keyserverIDs?: $ReadOnlyArray<string>) =>
+      callKeyserverDeleteAccount({ preRequestUserState, keyserverIDs }),
+    [callKeyserverDeleteAccount, preRequestUserState],
+  );
 }
 
 const deleteIdentityAccountActionTypes = Object.freeze({
diff --git a/lib/types/account-types.js b/lib/types/account-types.js
--- a/lib/types/account-types.js
+++ b/lib/types/account-types.js
@@ -38,6 +38,11 @@
   +preRequestUserState: PreRequestUserState,
 };
 
+export type KeyserverLogOutResult = $ReadOnly<{
+  ...LogOutResult,
+  +keyserverIDs: $ReadOnlyArray<string>,
+}>;
+
 export type LogOutResponse = {
   +currentUserInfo: LoggedOutUserInfo,
 };
diff --git a/lib/types/redux-types.js b/lib/types/redux-types.js
--- a/lib/types/redux-types.js
+++ b/lib/types/redux-types.js
@@ -2,6 +2,7 @@
 
 import type {
   LogOutResult,
+  KeyserverLogOutResult,
   LogInStartingPayload,
   LogInResult,
   RegisterResult,
@@ -196,7 +197,7 @@
     }
   | {
       +type: 'LOG_OUT_SUCCESS',
-      +payload: LogOutResult,
+      +payload: KeyserverLogOutResult,
       +loadingInfo: LoadingInfo,
     }
   | {
@@ -228,7 +229,7 @@
     }
   | {
       +type: 'DELETE_KEYSERVER_ACCOUNT_SUCCESS',
-      +payload: LogOutResult,
+      +payload: KeyserverLogOutResult,
       +loadingInfo: LoadingInfo,
     }
   | {
diff --git a/native/crash.react.js b/native/crash.react.js
--- a/native/crash.react.js
+++ b/native/crash.react.js
@@ -19,10 +19,8 @@
   sendReport,
 } from 'lib/actions/report-actions.js';
 import { logOutActionTypes, useLogOut } from 'lib/actions/user-actions.js';
-import { preRequestUserStateSelector } from 'lib/selectors/account-selectors.js';
-import type { LogOutResult } from 'lib/types/account-types.js';
+import type { KeyserverLogOutResult } from 'lib/types/account-types.js';
 import { type ErrorData, reportTypes } from 'lib/types/report-types.js';
-import type { PreRequestUserState } from 'lib/types/session-types.js';
 import { actionLogger } from 'lib/utils/action-logger.js';
 import {
   useDispatchActionPromise,
@@ -42,7 +40,6 @@
 import ConnectedStatusBar from './connected-status-bar.react.js';
 import { commCoreModule } from './native-modules.js';
 import { persistConfig, codeVersion } from './redux/persist.js';
-import { useSelector } from './redux/redux-utils.js';
 import { wipeAndExit } from './utils/crash-utils.js';
 
 const errorTitles = ['Oh no!!', 'Womp womp womp...'];
@@ -52,12 +49,10 @@
 };
 type Props = {
   ...BaseProps,
-  // Redux state
-  +preRequestUserState: PreRequestUserState,
   // Redux dispatch functions
   +dispatchActionPromise: DispatchActionPromise,
   // async functions that hit server APIs
-  +logOut: (preRequestUserState: PreRequestUserState) => Promise<LogOutResult>,
+  +logOut: () => Promise<KeyserverLogOutResult>,
   +crashReportingEnabled: boolean,
 };
 type State = {
@@ -200,7 +195,7 @@
 
   async logOutAndExit() {
     try {
-      await this.props.logOut(this.props.preRequestUserState);
+      await this.props.logOut();
     } catch (e) {}
     await wipeAndExit();
   }
@@ -284,15 +279,12 @@
 
 const ConnectedCrash: React.ComponentType<BaseProps> = React.memo<BaseProps>(
   function ConnectedCrash(props: BaseProps) {
-    const preRequestUserState = useSelector(preRequestUserStateSelector);
-
     const dispatchActionPromise = useDispatchActionPromise();
     const callLogOut = useLogOut();
     const crashReportingEnabled = useIsReportEnabled('crashReports');
     return (
       <Crash
         {...props}
-        preRequestUserState={preRequestUserState}
         dispatchActionPromise={dispatchActionPromise}
         logOut={callLogOut}
         crashReportingEnabled={crashReportingEnabled}
diff --git a/native/profile/delete-account.react.js b/native/profile/delete-account.react.js
--- a/native/profile/delete-account.react.js
+++ b/native/profile/delete-account.react.js
@@ -10,7 +10,6 @@
   useDeleteIdentityAccount,
   useDeleteKeyserverAccount,
 } from 'lib/actions/user-actions.js';
-import { preRequestUserStateSelector } from 'lib/selectors/account-selectors.js';
 import {
   createLoadingStatusSelector,
   combineLoadingStatuses,
@@ -45,7 +44,6 @@
       keyserverLoadingStatus,
       identityLoadingStatus,
     );
-    const preRequestUserState = useSelector(preRequestUserStateSelector);
 
     const styles = useStyles(unboundStyles);
 
@@ -69,7 +67,7 @@
     const deleteKeyserverAction = React.useCallback(async () => {
       try {
         await deleteNativeCredentialsFor();
-        return await callDeleteKeyserverAccount(preRequestUserState);
+        return await callDeleteKeyserverAccount();
       } catch (e) {
         Alert.alert(
           'Unknown error deleting keyserver account',
@@ -81,7 +79,7 @@
         );
         throw e;
       }
-    }, [callDeleteKeyserverAccount, preRequestUserState]);
+    }, [callDeleteKeyserverAccount]);
 
     const deleteIdentityAction = React.useCallback(async () => {
       try {
diff --git a/native/profile/profile-screen.react.js b/native/profile/profile-screen.react.js
--- a/native/profile/profile-screen.react.js
+++ b/native/profile/profile-screen.react.js
@@ -7,7 +7,7 @@
 import { useStringForUser } from 'lib/hooks/ens-cache.js';
 import { createLoadingStatusSelector } from 'lib/selectors/loading-selectors.js';
 import { accountHasPassword } from 'lib/shared/account-utils.js';
-import type { LogOutResult } from 'lib/types/account-types.js';
+import type { KeyserverLogOutResult } from 'lib/types/account-types.js';
 import { type CurrentUserInfo } from 'lib/types/user-types.js';
 import {
   useDispatchActionPromise,
@@ -152,7 +152,7 @@
   +colors: Colors,
   +styles: $ReadOnly<typeof unboundStyles>,
   +dispatchActionPromise: DispatchActionPromise,
-  +logOut: () => Promise<LogOutResult>,
+  +logOut: () => Promise<KeyserverLogOutResult>,
   +staffCanSee: boolean,
   +stringForUser: ?string,
   +isAccountWithPassword: boolean,
diff --git a/web/settings/account-delete-modal.react.js b/web/settings/account-delete-modal.react.js
--- a/web/settings/account-delete-modal.react.js
+++ b/web/settings/account-delete-modal.react.js
@@ -10,7 +10,6 @@
 } from 'lib/actions/user-actions.js';
 import { useModalContext } from 'lib/components/modal-provider.react.js';
 import SWMansionIcon from 'lib/components/SWMansionIcon.react.js';
-import { preRequestUserStateSelector } from 'lib/selectors/account-selectors.js';
 import { createLoadingStatusSelector } from 'lib/selectors/loading-selectors.js';
 import { useDispatchActionPromise } from 'lib/utils/redux-promise-utils.js';
 import { usingCommServicesAccessToken } from 'lib/utils/services-utils.js';
@@ -29,7 +28,6 @@
 
 const AccountDeleteModal: React.ComponentType<{}> = React.memo<{}>(
   function AccountDeleteModal(): React.Node {
-    const preRequestUserState = useSelector(preRequestUserStateSelector);
     const isDeleteKeyserverAccountLoading = useSelector(
       state => deleteKeyserverAccountLoadingStatusSelector(state) === 'loading',
     );
@@ -69,7 +67,7 @@
     const deleteKeyserverAction = React.useCallback(async () => {
       try {
         setKeyserverErrorMessage('');
-        const response = await callDeleteKeyserverAccount(preRequestUserState);
+        const response = await callDeleteKeyserverAccount();
         // This check ensures that we don't call `popModal()` twice
         if (!usingCommServicesAccessToken) {
           popModal();
@@ -81,7 +79,7 @@
         );
         throw e;
       }
-    }, [callDeleteKeyserverAccount, preRequestUserState, popModal]);
+    }, [callDeleteKeyserverAccount, popModal]);
 
     const deleteIdentityAction = React.useCallback(async () => {
       try {