If the Blazor server app is hosted in Azure, Azure Signal/r is recommended over using Redis cache. Anyway blazor server requires a constant websocket connection. If lost the server has a couple minute timeout (~4 minutes, configurable) on the circuit, after which the circuit context is closed, and the client must reload.
Browsers are getting more aggressive in shutting down websockets (especially mobile, but desktop is following the trend). If the tab is not the active tab, the websocket may be closed. The same may happen if the browser is not the active application.
you can counteract the browser behavior, by setting a higher circuit timeout. This will of course use more server resources, as a tab close or navigation away would leave the circuit open longer on the server.