properly return upgrade result value