[R2] object will be release twice, since we always call the completion block with a cancel