anchor.diff:              NextIterationStep = get_next_iterator(Handler, LaneExecutionContext, Iterator, ExecutionId),
               FailureCountToCancel = maps:get(failure_count_to_cancel, LaneSpec, undefined),
               case update(ExecutionId, fun(State) ->
  -                finish_lane_preparation_internal(State, BoxesMap, LaneExecutionContext, NextIterationStep, FailureCountToCancel)
  +                finish_lane_preparation_internal(reset_state_fields_for_next_lane(State),
  +                    BoxesMap, LaneExecutionContext, NextIterationStep, FailureCountToCancel)
               end) of
                   {ok, #document{value = #workflow_execution_state{
                       execution_status = ?EXECUTION_CANCELLED(_), current_lane = CurrentLane,
  
positive.code:     ok.
  
  
  -spec handle_lane_preparation_failure(state(), workflow_engine:lane_id() | undefined,
      workflow_engine:preparation_mode()) -> {ok, state()} | ?WF_ERROR_UNKNOWN_LANE.
  handle_lane_preparation_failure(
  
negative.code:         [] ->
              % workflow_jobs require at least one parallel_boxes in lane
              ?error("No parallel boxes for lane ~p of execution id: ~p", [LaneSpec, ExecutionId]),
              {ok, _} = update(ExecutionId, fun(State) ->
                  handle_lane_preparation_failure(reset_state_fields_for_next_lane(State), undefined, ?PREPARE_CURRENT)
              end),
              ?WF_ERROR_PREPARATION_FAILED;
          _ ->
              BoxesMap = lists:foldl(fun({BoxIndex, BoxSpec}, BoxesAcc) ->
  