only update cached etag if everything went well