diff options
Diffstat (limited to 'src/state/session/reducer.ts')
-rw-r--r-- | src/state/session/reducer.ts | 9 |
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') { |