Using a dedicated exception to handle server unavailable so we don't have to check status codes more than once