anchor.diff:  
   %% @private
   -spec handle_currently_executed_lane_run_ended(atm_workflow_execution:record()) ->
  -    {ok, atm_workflow_execution:record()}.
  +    {ok, atm_workflow_execution:record()} | errors:error().
   handle_currently_executed_lane_run_ended(AtmWorkflowExecution1 = #atm_workflow_execution{
       lanes_count = AtmLanesCount,
       curr_lane_index = CurrAtmLaneIndex
  
positive.code:         ?FAILED_STATUS when AbortingReason == undefined ->
              % lane run can be automatically retried only if all items finished execution but
              % some of them failed (direct transition from ?ACTIVE_STATUS to ?FAILED_STATUS)
              case acquire_retry_permission(AtmWorkflowExecution2) of
                  {true, AtmWorkflowExecution3} ->
                      schedule_lane_run_retry(AtmExceptionStoreId, AtmWorkflowExecution3);
                  false ->
                      {ok, AtmWorkflowExecution2}
              end;
          ?FINISHED_STATUS when CurrAtmLaneIndex < AtmLanesCount ->
              schedule_next_lane_run(AtmWorkflowExecution2);
          _ ->
  
negative.code:     end,
  
      case atm_lane_execution:update(CurrLaneIndex, Diff, AtmWorkflowExecution) of
          {ok, NewAtmWorkflowExecution} ->
              schedule_current_lane_run_retry(AtmExceptionStoreId, NewAtmWorkflowExecution);
          {error, no_retries_left} ->
              {ok, AtmWorkflowExecution}
      end.
  
  
  %% @private
  -spec schedule_current_lane_run_retry(atm_store:id(), atm_workflow_execution:record()) ->
      {ok, atm_workflow_execution:record()} | errors:error().
  schedule_current_lane_run_retry(AtmExceptionStoreId, AtmWorkflowExecution = #atm_workflow_execution{
      curr_lane_index = CurrLaneIndex,
      curr_run_num = CurrRunNum
  }) ->
  