An Error will be returned if something goes wrong with an HTTP request.
A BadRequest means that the provide request was not valid for some reason.
error message
A NetworkError means that there is a problem with the network.
A Timeout means that it took too long to get a response.