fail early on non-HTTP/2xx codes