During some recent testing, we noticed a SignalR problem which occurred in inactive tabs when using Chromium-based browsers, such as Chrome and Edge. Even once we understood the problem, we were unable to reliably replicate the random logouts, but the nature of the SignalR problems makes it likely that the issues are related.
When a tab is inactive, Chromium extends all intervals and timeouts to at least one minute. Since, by default, SignalR is configured to disconnect after 30 seconds of inactivity, inactive tabs would drop the connection, then reconnect a minute later. Any processes relying on the SignalR connection would fail if they tried to communicate during this minute long disconnect. This includes the process which updates the authentication token held by the client, which in turn could trigger an apparently random logout.
To correct this, we adjusted our SignalR configuration and keep-alive pings to take into account the delay imposed by Chromium browsers. After making these changes, we have not seen any indication of SignalR issues. We included these fixes in the build 7852, released on July 1.