always resolve on response, let consumers decide on error code