diff --git a/packages/trpc/server/routers/loggedInViewer/deleteCredential.handler.ts b/packages/trpc/server/routers/loggedInViewer/deleteCredential.handler.ts index 2e4760083c..5f2a62c84c 100644 --- a/packages/trpc/server/routers/loggedInViewer/deleteCredential.handler.ts +++ b/packages/trpc/server/routers/loggedInViewer/deleteCredential.handler.ts @@ -11,6 +11,7 @@ import { getTranslation } from "@calcom/lib/server/i18n"; import { bookingMinimalSelect, prisma } from "@calcom/prisma"; import { AppCategories, BookingStatus } from "@calcom/prisma/enums"; import { credentialForCalendarServiceSelect } from "@calcom/prisma/selects/credential"; +import { userMetadata } from "@calcom/prisma/zod-utils"; import { EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils"; import type { TrpcSessionUser } from "@calcom/trpc/server/trpc"; @@ -339,6 +340,23 @@ export const deleteCredentialHandler = async ({ ctx, input }: DeleteCredentialOp }); } + let metadata = userMetadata.parse(user.metadata); + + if (credential.app?.slug === metadata?.defaultConferencingApp?.appSlug) { + metadata = { + ...metadata, + defaultConferencingApp: undefined, + }; + await prisma.user.update({ + where: { + id: user.id, + }, + data: { + metadata, + }, + }); + } + // Backwards compatibility. Selected calendars cascade on delete when deleting a credential // If it's a calendar remove it from the SelectedCalendars if (credential.app?.categories.includes(AppCategories.calendar)) {