the http client uses EIO to detect connection errors specifically. if we
map normal http errors to EIO, we incorrectly mark their endpoint as
failed and route requests to other endpoints (if any exist)
default to ERR_INTERNAL_ERROR (500 InternalError) instead