From 9cfc74a74f9cf2d9729d3d94b63729145e7adbd6 Mon Sep 17 00:00:00 2001 From: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com> Date: Thu, 17 Jul 2025 16:33:56 +0200 Subject: [PATCH] fix: don't schedule reminder from the past (#22353) * only schedule future reminders * use new Date() instead Co-authored-by: Alex van Andel * use new Date() instead Co-authored-by: Alex van Andel * use new Date() instead Co-authored-by: Alex van Andel --------- Co-authored-by: CarinaWolli Co-authored-by: Alex van Andel --- .../ee/workflows/api/scheduleSMSReminders.ts | 1 + .../ee/workflows/api/scheduleWhatsappReminders.ts | 14 ++++---------- .../ee/workflows/lib/getWorkflowReminders.ts | 4 ++++ 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/packages/features/ee/workflows/api/scheduleSMSReminders.ts b/packages/features/ee/workflows/api/scheduleSMSReminders.ts index 6851509490..feb6a69ae4 100644 --- a/packages/features/ee/workflows/api/scheduleSMSReminders.ts +++ b/packages/features/ee/workflows/api/scheduleSMSReminders.ts @@ -35,6 +35,7 @@ export async function handler(req: NextRequest) { method: WorkflowMethods.SMS, scheduled: false, scheduledDate: { + gte: new Date(), lte: dayjs().add(2, "hour").toISOString(), }, retryCount: { diff --git a/packages/features/ee/workflows/api/scheduleWhatsappReminders.ts b/packages/features/ee/workflows/api/scheduleWhatsappReminders.ts index 7ff20e842b..f3083e20a0 100644 --- a/packages/features/ee/workflows/api/scheduleWhatsappReminders.ts +++ b/packages/features/ee/workflows/api/scheduleWhatsappReminders.ts @@ -24,24 +24,18 @@ export async function handler(req: NextRequest) { return NextResponse.json({ message: "Not authenticated" }, { status: 401 }); } - //delete all scheduled whatsapp reminders where scheduled date is past current date - await prisma.workflowReminder.deleteMany({ - where: { - method: WorkflowMethods.WHATSAPP, - scheduledDate: { - lte: dayjs().toISOString(), - }, - }, - }); - //find all unscheduled WHATSAPP reminders const unscheduledReminders = (await prisma.workflowReminder.findMany({ where: { method: WorkflowMethods.WHATSAPP, scheduled: false, scheduledDate: { + gte: new Date(), lte: dayjs().add(2, "hour").toISOString(), }, + retryCount: { + lt: 3, // Don't continue retrying if it's already failed 3 times + }, }, select, })) as PartialWorkflowReminder[]; diff --git a/packages/features/ee/workflows/lib/getWorkflowReminders.ts b/packages/features/ee/workflows/lib/getWorkflowReminders.ts index 162bd1cabf..ca246583a3 100644 --- a/packages/features/ee/workflows/lib/getWorkflowReminders.ts +++ b/packages/features/ee/workflows/lib/getWorkflowReminders.ts @@ -206,8 +206,12 @@ export async function getAllUnscheduledReminders(): Promise