anchor.diff:          openfaas_config = atm_openfaas_config:get(),
           executor = AtmTaskExecutor
       },
  -    case is_function_registered(InitiationCtx) of
  +
  +    % Ensure there is no function with generated name
  +    remove_function(AtmWorkflowExecutionCtx, AtmTaskExecutor),
  +    case await_function_removal(InitiationCtx, ?AWAIT_RETRIES) of
           true -> ok;
  -        false -> register_function(InitiationCtx)
  +        false -> throw(?ERROR_ATM_OPENFAAS_FUNCTION_REGISTRATION_FAILED)
       end,
  +
  +    register_function(InitiationCtx),
       await_function_readiness(InitiationCtx),
   
       #{
  
positive.code: -spec initiate(atm_task_executor:initiation_ctx(), record()) ->
      workflow_engine:task_spec() | no_return().
  initiate(AtmTaskExecutorInitiationCtx = #atm_task_executor_initiation_ctx{
      task_schema = AtmTaskSchema,
      lambda_revision = AtmLambdaRevision,
      uncorrelated_results = AtmTaskExecutionUncorrelatedResultNames
  
negative.code:             log_function_ready(InitiationCtx);
          not_ready ->
              assert_atm_workflow_execution_is_not_stopping(InitiationCtx),
              timer:sleep(timer:seconds(?AWAIT_INTERVAL_SEC)),
              await_function_readiness(InitiationCtx, RetriesLeft - 1)
      end.
  
  