anchor.diff:      automation:item(),
       errors:error() | json_utils:json_map()
   ) ->
  -    error.
  +    ok.
   handle_exception(AtmWorkflowExecutionCtx, AtmTaskExecutionId, Item, #{<<"exception">> := Reason}) ->
       EnrichedExceptionLog = #{
           <<"severity">> => ?LOGGER_ERROR,
  
positive.code:     automation:item(),
      error | json_utils:json_map()
  ) ->
      ok | error | no_return().
  process_results(_AtmWorkflowExecutionCtx, AtmTaskExecutionId, _Item, error) ->
      update_items_failed_and_processed(AtmTaskExecutionId),
      error;
  
negative.code:     atm_workflow_execution_logger:task_append_logs(
          EnrichedExceptionLog, #{}, AtmWorkflowExecutionLogger
      ),
      update_items_failed_and_processed(AtmTaskExecutionId);
  
  handle_exception(AtmWorkflowExecutionCtx, AtmTaskExecutionId, Item, {error, _} = Error) ->
      handle_exception(AtmWorkflowExecutionCtx, AtmTaskExecutionId, Item, errors:to_json(Error)).
  