anchor.diff:      filter_out_not_failed_items_in_t1_fun = FilterOutNotFailedItemsFun,
       build_t1_exp_error_log_content_fun = BuildT1ExpErrorLogContentFun
   }) ->
  -    AtmLaneRunTestSpec = #atm_lane_run_execution_test_spec{
  -        process_task_result_for_item = #atm_step_mock_spec{
  -            after_step_exp_state_diff = fun(MockCallCtx) ->
  -                job_failure_expect_task_items_processed(
  -                    TestcaseId, FilterOutNotFailedItemsFun, MockCallCtx
  -                )
  -            end
  -        },
  -        handle_task_execution_ended = #atm_step_mock_spec{
  -            after_step_exp_state_diff = fun(MockCallCtx) ->
  -                job_failure_expect_task_execution_ended(
  -                    TestcaseId, BuildT1ExpErrorLogContentFun, MockCallCtx
  -                )
  -            end
  +    BuildAtmLaneRunTestSpecFun = fun({AtmLaneSelector, RunNum} = AtmLaneRunSelector, IsLastExpLaneRun) ->
  +        #atm_lane_run_execution_test_spec{
  +            selector = AtmLaneRunSelector,
  +            process_task_result_for_item = #atm_step_mock_spec{
  +                after_step_exp_state_diff = fun(MockCallCtx) ->
  +                    job_failure_expect_task_items_processed(
  +                        TestcaseId, FilterOutNotFailedItemsFun, MockCallCtx
  +                    )
  +                end
  +            },
  +            handle_task_execution_ended = #atm_step_mock_spec{
  +                after_step_exp_state_diff = fun(MockCallCtx) ->
  +                    job_failure_expect_task_execution_ended(
  +                        TestcaseId, BuildT1ExpErrorLogContentFun, MockCallCtx
  +                    )
  +                end
  +            },
  +            handle_lane_execution_ended = #atm_step_mock_spec{
  +                after_step_exp_state_diff = fun(AtmMockCallCtx = #atm_mock_call_ctx{
  +                    workflow_execution_exp_state = ExpState0
  +                }) ->
  +                    % Assert all items from prev lane run exception store were processed
  +                    check_iterated_items(TestcaseId, AtmLaneRunSelector, AtmMockCallCtx),
  +                    check_exception_store_content(TestcaseId, AtmLaneRunSelector, AtmMockCallCtx),
  +
  +                    ExpState1 = atm_workflow_execution_exp_state_builder:expect_lane_run_failed(
  +                        AtmLaneRunSelector, true, ExpState0
  +                    ),
  +                    {true, case IsLastExpLaneRun of
  +                        true ->
  +                            ExpState1;
  +                        false ->
  +                            atm_workflow_execution_exp_state_builder:expect_lane_run_automatic_retry_scheduled(
  +                                {AtmLaneSelector, RunNum + 1}, ExpState1
  +                            )
  +                    end}
  +                end
  +            }
           }
  -    },
  +    end,
   
       atm_workflow_execution_test_runner:run(#atm_workflow_execution_test_spec{
           provider = ?PROVIDER_SELECTOR,
  
positive.code: 
  
  %% @private
  -spec check_exception_store_content(
      term(),
      atm_lane_execution:lane_run_selector(),
      atm_workflow_execution_test_runner:mock_call_ctx()
  ) ->
      ok | no_return().
  check_exception_store_content(TestcaseId, AtmLaneRunSelector, AtmMockCallCtx) ->
      ?assertEqual(
          lists:sort(get_exp_exception_store_content(TestcaseId, AtmLaneRunSelector)),
          lists:sort(get_exception_store_content(AtmLaneRunSelector, AtmMockCallCtx))
      ).
  
  
  %% @private
  -spec get_exception_store_content(
      atm_lane_execution:lane_run_selector(),
      atm_workflow_execution_test_runner:mock_call_ctx()
  ) ->
      [automation:item()].
  get_exception_store_content(AtmLaneRunSelector, AtmMockCallCtx) ->
      #{<<"items">> := Items, <<"isLast">> := true} = atm_workflow_execution_test_runner:browse_store(
          exception_store, AtmLaneRunSelector, AtmMockCallCtx
      ),
      lists:map(fun(#{<<"value">> := Content}) -> Content end, Items).
  
  
  %% @private
  -spec job_failure_expect_t1_failed(
      atm_task_execution:id(),
      atm_workflow_execution_test_runner:exp_state()
  
negative.code:         incarnations = [#atm_workflow_execution_incarnation_test_spec{
              incarnation_num = 1,
              lane_runs = [
                  BuildAtmLaneRunTestSpecFun({1, 1}, false),
                  BuildAtmLaneRunTestSpecFun({1, 2}, false),
                  BuildAtmLaneRunTestSpecFun({1, 3}, true)
              ],
              handle_workflow_execution_ended = #atm_step_mock_spec{
                  after_step_exp_state_diff = fun(#atm_mock_call_ctx{workflow_execution_exp_state = ExpState0}) ->
  