diff --git a/native/chat/message-list-container.react.js b/native/chat/message-list-container.react.js
--- a/native/chat/message-list-container.react.js
+++ b/native/chat/message-list-container.react.js
@@ -1,5 +1,6 @@
 // @flow
 
+import { useNavigationState } from '@react-navigation/native';
 import invariant from 'invariant';
 import * as React from 'react';
 import { View } from 'react-native';
@@ -29,6 +30,7 @@
   type OverlayContextType,
 } from '../navigation/overlay-context';
 import type { NavigationRoute } from '../navigation/route-names';
+import { ThreadSettingsRouteName } from '../navigation/route-names';
 import { useSelector } from '../redux/redux-utils';
 import { type Colors, useColors, useStyles } from '../themes/colors';
 import type { ChatMessageItemWithHeight } from '../types/chat-types';
@@ -262,14 +264,34 @@
       'threadInfo must be specified in messageListContainer',
     );
 
+    const { setParams } = props.navigation;
+    const navigationStack = useNavigationState(state => state.routes);
+    React.useEffect(() => {
+      const lastRoute = navigationStack[navigationStack.length - 1];
+      if (lastRoute?.name === ThreadSettingsRouteName) {
+        setBaseThreadInfo(threadInfo);
+        if (isSearching) {
+          setParams({
+            searching: false,
+          });
+        }
+      }
+    }, [isSearching, navigationStack, setParams, threadInfo]);
+
     const inputState = React.useContext(InputStateContext);
     invariant(inputState, 'inputState should be set in MessageListContainer');
     const hideSearch = React.useCallback(() => {
-      setBaseThreadInfo(threadInfo);
-      props.navigation.setParams({
-        searching: false,
+      const currentThreadInfo = existingThreadInfoFinder({
+        searching: true,
+        userInfoInputArray: userInfoInputArray,
       });
-    }, [props.navigation, threadInfo]);
+      invariant(
+        currentThreadInfo,
+        'currentThreadInfo must be specified in messageListContainer',
+      );
+      setBaseThreadInfo(currentThreadInfo);
+      setParams({ searching: false, threadInfo: currentThreadInfo });
+    }, [existingThreadInfoFinder, setParams, userInfoInputArray]);
     React.useEffect(() => {
       if (!isSearching) {
         return;
@@ -278,7 +300,6 @@
       return () => inputState.unregisterSendCallback(hideSearch);
     }, [hideSearch, inputState, isSearching]);
 
-    const { setParams } = props.navigation;
     React.useEffect(() => {
       setParams({ threadInfo });
     }, [setParams, threadInfo]);