I was helping a client with developing an iOS app that uses almost all of the time their API, hence requires a working network connection. Unfortunately, mobile devices do not always have that. So we needed to deal with situations where the connection would be down. A lot has to do with smart software, for instance retry after x seconds without bothering the user, or detect when network is available again and then try again. And of course not an app should never crash or show inconsistent results! However there will always be cases when you need to tell the user something is wrong, hence error messages.
Our goals were:
- Be understandable for a nontechnical user
- If possible, explain how to fix the problem
- Be humble. It is not the user’s fault
- Be aware of the user’s state of mind
Bear in mind, a difference with a web site is that a user has very little control over what URL is called (no browser bar for user caused 404’s or DNS lookup errors). Another difference is that we control the client, so as a browser can detect connection problems.
HTTP status 404 (object not found)
Technical explanation: no resource found at url, very probably because of a programming error
Error title: Oops!
Error message: Sorry, we made a mistake and couldn’t find <object> for you
HTTP 401 Unauthorized or HTTP 403 Forbidden
App is trying to access a secured resource that require some kind of authentication. User entered incorrect credentials
Error title: Login failed
Error message: Check your username and password and try again.
HTTP status 500 (server error)
Technical explanation: server error, caused by a server programming error or network/hardware failure
Error title: Oops, sorry!
Error message: Unfortunately our server had a problem. Please try again later when we probably have fixed this.
Technical explanation: very probably the connection is that slow that the request timed out. Small chance it was actually the server that was slow
Error title: Connection is too slowww
Error message: Unfortunately the communication broke down. Please try again when you have a better connection.
No network connection
Technical explanation: user could have no cellphone reception, be on a bad wifi network, or turned on Airplane mode
Error title: No connection 🙁
Error message: We couldn’t reach our server. Are you in airplane mode? Try again when you have cell phone reception or wifi again.
No DNS entry for host
Technical explanation: probably hardcoded server name could not be resolved, might be due to a down or unreachable DNS server, very probably a network problem
Error title: Oops! Could not find server
Error message: We couldn’t find our server, probably because of a bad connection. Try again when you have a better connection.