anchor.diff:      },
       Logger = atm_workflow_execution_ctx:get_logger(AtmWorkflowExecutionCtx),
       atm_workflow_execution_logger:workflow_warning(LogContent, Logger).
  +
  +
  +%% @private
  +-spec await_function_removal(initiation_ctx(), non_neg_integer()) -> boolean().
  +await_function_removal(_InitiationCtx, 0) ->
  +    false;
  +
  +await_function_removal(InitiationCtx, RetriesLeft) ->
  +    case is_function_registered(InitiationCtx) of
  +        true ->
  +            assert_atm_workflow_execution_is_not_stopping(InitiationCtx),
  +            timer:sleep(timer:seconds(?AWAIT_INTERVAL_SEC)),
  +            await_function_removal(InitiationCtx, RetriesLeft - 1);
  +        false ->
  +            true
  +    end.
  
positive.code:         openfaas_config = atm_openfaas_config:get(),
          executor = AtmTaskExecutor
      },
      case is_function_registered(InitiationCtx) of
          true -> ok;
          false -> register_function(InitiationCtx)
      end,
      await_function_readiness(InitiationCtx),
  
      #{
  
negative.code: -spec initiate(atm_task_executor:initiation_ctx(), record()) ->
      workflow_engine:task_spec() | no_return().
  initiate(AtmTaskExecutorInitiationCtx = #atm_task_executor_initiation_ctx{
      workflow_execution_ctx = AtmWorkflowExecutionCtx,
      task_schema = AtmTaskSchema,
      lambda_revision = AtmLambdaRevision,
      uncorrelated_results = AtmTaskExecutionUncorrelatedResultNames
  