Timer doesn't work when using manual task

After my 2 services has been completed and successfully created the user. I didn’t get a response back anymore. I’m not sure what I am missing but here is my model

I need to reach the timer boundary.

I’m using nest js, after user:create complete, do I need to trigger something?

 @ZeebeWorker('user:create')
  async createUser(@Payload() job: ZeebeJob<CreateUser>): Promise<void> {
    this.logger.debug(`Create user ${job.variables.emailAddress}`);
    this.logger.debug(job.variables);

    try {
      await job.complete({ user: job.variables });
    } catch (error) {
      this.logger.error(error);
      if (error instanceof Error) {
        await job.complete({ error: { message: error.message } });
      } else {
        await job.fail(JSON.stringify(error));
      }
    }

  
   // Didn't work
  @ZeebeWorker('email:send')
  async sendEmailReminder(@Payload() job: ZeebeJob): Promise<void> {
    this.logger.debug('Email send: Its working');

  }
}

I have no idea about none intermediate thrown event and manual task on how to do it programatically. Any idea would help TIA

BTW our process in this part, after user is created, it will send reminder to the user every after 2 days until he logs in

Hi @tabbi - I am a bit confused on which part of the process you are having issues with. Is your process always ending at Onboarding failed instead of reaching the Wait for Users first Login task? Or is that task not completing and you get stuck in a loop of invitation reminders every two days?

Hi, so far I managed to identify the issue and currently trying to find way how to solve. It reaches the wait for users first login. But the problem is, it doesn’t trigger the uninterrupted timer. Then I realized that its because I’m using createProcessInstanceWithResult and it has to wait for the whole process to complete before I get the result. When I changed the Manual task to Service or User task it works but the process cannot complete due to createProcessInstanceWithResult. So what I did is, I separate the waiting of user to a new process and call it separately. I’m not sure if that is the best practice. So far it works but maybe there’s better approach?

Hi @tabbi

For the engine, a manual task is handled as a pass-through activity, automatically continuing the process at the moment the process instance arrives.

So the boundary event won’t be trigger.