There are many ways how a program or website can detect that the device has no connection. But it's a common practice to timeout a connection after a while, even if it is working (just slow). This leads to frustrated users who have to keep pressing the reload button manually and wastes time loading the same thing over and over on an already slow connection.

So why is this still so common? Wouldn't it be better to just keep trying (optionally showing a warning to the user after a certain while, but not stopping completely)?

  • Could you provide some examples? I know not of any sites that behave that way.
    – Izhaki
    May 14, 2018 at 23:09
  • Almost everything: YouTube when posting a comment takes long, Chrome for loading websites, the public transport app I use, I think even the ping command in terminals does it (but I'm not sure). May 15, 2018 at 7:19
  • I'd guess that most bad UX patterns are still in use because UX isn't valued in many businesses. May 15, 2018 at 12:52

1 Answer 1


This is a somewhat technical answer, and one that hardly relates to UX.

Programmatically, when you open a connection you either specify a timeout or take the default. Connections have timeouts for many reasons: Software wise, processes can hang forever without exiting, consuming memory and CPU. The same applies on the hardware level - a server that is down would eventually block many routers around the world if all wait for the connection to be established.

Note that browsers have their own connection timeouts. So sometimes these timeouts have nothing to do with the application itself, but with lower-level software/hardware.

Yet, I think what you experience is simply developers taking the 'default' handling - if the connection times out, just show an error. The alternative is entering a re-connect loop. There are some challenges in timeout recovery because your app enters an 'inconsistent' state as far as 'normal' flow is concerned. You have to introduce buffers, some meaningful feedback to the user, and so forth - so it is a bit of extra effort that is also easier or harder to achieve depending on the app architecture.

My experience is different than yours - a lot of apps or sites handle timeout pretty well. Chrome for example will keep pinging the servers until connection is re-establish and reload all the tabs. TODOist, Spotify, Google Docs etc all handle timeouts pretty well. Maybe I'm just lucky.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.