diff --git a/native/navigation/navigation-utils.js b/native/navigation/navigation-utils.js
--- a/native/navigation/navigation-utils.js
+++ b/native/navigation/navigation-utils.js
@@ -9,6 +9,7 @@
 import invariant from 'invariant';
 
 import {
+  NUXTipOverlayBackdropRouteName,
   ComposeSubchannelRouteName,
   AppRouteName,
   threadRoutes,
@@ -167,6 +168,22 @@
   return childRoute;
 }
 
+// isShowingNUXTips assumes nav state is valid
+function isShowingNUXTips(state: PossiblyStaleNavigationState): boolean {
+  const [appRoute] = state.routes;
+  const appSubroutes = appRoute?.state?.routes;
+  if (!appSubroutes) {
+    return false;
+  }
+  for (const route of appSubroutes) {
+    if (route.name === NUXTipOverlayBackdropRouteName) {
+      return true;
+    }
+  }
+
+  return false;
+}
+
 export {
   getStateFromNavigatorRoute,
   getThreadIDFromParams,
@@ -176,4 +193,5 @@
   removeScreensFromStack,
   validNavState,
   getChildRouteFromNavigatorRoute,
+  isShowingNUXTips,
 };
diff --git a/native/root.react.js b/native/root.react.js
--- a/native/root.react.js
+++ b/native/root.react.js
@@ -78,7 +78,10 @@
   type NavContextType,
 } from './navigation/navigation-context.js';
 import NavigationHandler from './navigation/navigation-handler.react.js';
-import { validNavState } from './navigation/navigation-utils.js';
+import {
+  validNavState,
+  isShowingNUXTips,
+} from './navigation/navigation-utils.js';
 import OrientationHandler from './navigation/orientation-handler.react.js';
 import { navStateAsyncStorageKey } from './navigation/persistance.js';
 import RootNavigator from './navigation/root-navigator.react.js';
@@ -158,7 +161,7 @@
           );
           if (navStateString) {
             const savedState = JSON.parse(navStateString);
-            if (validNavState(savedState)) {
+            if (validNavState(savedState) && !isShowingNUXTips(savedState)) {
               loadedState = savedState;
             }
           }