also check `status > 0` and reason != null? And perhaps that body is not null? (there's no semantic difference between an empty body and no body)