about summary refs log tree commit diff
path: root/src/state/session/reducer.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/state/session/reducer.ts')
-rw-r--r--src/state/session/reducer.ts9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/state/session/reducer.ts b/src/state/session/reducer.ts
index 775a6d038..7f3080935 100644
--- a/src/state/session/reducer.ts
+++ b/src/state/session/reducer.ts
@@ -68,8 +68,13 @@ export function reducer(state: State, action: Action): State {
   switch (action.type) {
     case 'received-agent-event': {
       const {agent, accountDid, refreshedAccount, sessionEvent} = action
-      if (agent !== state.currentAgentState.agent) {
-        // Only consider events from the active agent.
+      if (
+        refreshedAccount === undefined &&
+        agent !== state.currentAgentState.agent
+      ) {
+        // If the session got cleared out (e.g. due to expiry or network error) but
+        // this account isn't the active one, don't clear it out at this time.
+        // This way, if the problem is transient, it'll work on next resume.
         return state
       }
       if (sessionEvent === 'network-error') {