From af94c64f467a8a5d791c0622b64b43b0c7513770 Mon Sep 17 00:00:00 2001 From: sean-brydon <55134778+sean-brydon@users.noreply.github.com> Date: Thu, 24 Oct 2024 21:55:10 +0100 Subject: [PATCH] catch error when no users are found (#17308) --- .../getRoundRobinHostsToReasign.handler.ts | 30 +++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/packages/trpc/server/routers/viewer/teams/roundRobin/getRoundRobinHostsToReasign.handler.ts b/packages/trpc/server/routers/viewer/teams/roundRobin/getRoundRobinHostsToReasign.handler.ts index bb784b8ee6..96b87b9b8e 100644 --- a/packages/trpc/server/routers/viewer/teams/roundRobin/getRoundRobinHostsToReasign.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/roundRobin/getRoundRobinHostsToReasign.handler.ts @@ -2,6 +2,7 @@ import dayjs from "@calcom/dayjs"; import { ensureAvailableUsers } from "@calcom/features/bookings/lib/handleNewBooking/ensureAvailableUsers"; import { getEventTypesFromDB } from "@calcom/features/bookings/lib/handleNewBooking/getEventTypesFromDB"; import type { IsFixedAwareUser } from "@calcom/features/bookings/lib/handleNewBooking/types"; +import { ErrorCode } from "@calcom/lib/errorCodes"; import logger from "@calcom/lib/logger"; import type { PrismaClient } from "@calcom/prisma"; import { MembershipRole } from "@calcom/prisma/enums"; @@ -67,15 +68,26 @@ export const getRoundRobinHostsToReassign = async ({ ctx, input }: GetRoundRobin priority: host?.priority ?? 2, })); - const availableUsers = await ensureAvailableUsers( - { ...eventType, users: availableEventTypeUsers as IsFixedAwareUser[] }, - { - dateFrom: dayjs(booking.startTime).format(), - dateTo: dayjs(booking.endTime).format(), - timeZone: eventType.timeZone || "UTC", - }, - gettingRoundRobinHostsToReassignLogger - ); + let availableUsers: IsFixedAwareUser[] = []; + try { + availableUsers = await ensureAvailableUsers( + { ...eventType, users: availableEventTypeUsers as IsFixedAwareUser[] }, + { + dateFrom: dayjs(booking.startTime).format(), + dateTo: dayjs(booking.endTime).format(), + timeZone: eventType.timeZone || "UTC", + }, + gettingRoundRobinHostsToReassignLogger + ); + } catch (error) { + if (error instanceof Error && error.message === ErrorCode.NoAvailableUsersFound) { + availableUsers = []; + } else { + gettingRoundRobinHostsToReassignLogger.error(error); + // Log error and return empty array to avoid rethrowing the error + return []; + } + } const availableUserIds = new Set(availableUsers.map((u) => u.id));