anchor.diff:              ok
       end,
   
  -    Restart =
  -        try
  -            consider_switching_compat_mode(),
  -            false
  -        catch exit:normal ->
  -                true
  -        end,
  -
  -    maybe_start_upgrade_to_dcp(Restart);
  +    case ConsiderUpgrade of
  +        true ->
  +            Restart =
  +                try
  +                    consider_switching_compat_mode(),
  +                    false
  +                catch exit:normal ->
  +                        true
  +                end,
  +
  +            maybe_start_upgrade_to_dcp(Restart);
  +        false ->
  +            ?log_debug("Skipping post-rebalance upgrade for rebalance ~p", [State]),
  +            {next_state, idle, #idle_state{}}
  +    end;
   
   handle_info({'EXIT', Pid, Reason}, upgrading_to_dcp,
               #dcp_upgrade_state{upgrader = Pid,
  
positive.code:                         progress=dict:new(),
                          keep_nodes=ns_node_disco:nodes_wanted(),
                          eject_nodes=[],
                          failed_nodes=[]}};
  idle(stop_rebalance, _From, State) ->
      ns_janitor:stop_rebalance_status(
        fun () ->
  
negative.code:             #rebalancing_state{rebalancer=Pid,
                                 keep_nodes=KeepNodes,
                                 eject_nodes=EjectNodes,
                                 failed_nodes=FailedNodes,
                                 consider_post_rebalance_upgrade = ConsiderUpgrade} = State) ->
      Status = case Reason of
                   graceful_failover_done ->
                       none;
  