whichver cancel handler is null or not, completion should not be called when cancelled.