From cc8254985b65565da94fd90eef598344f1d33eac Mon Sep 17 00:00:00 2001 From: Francis Cao Date: Fri, 14 Nov 2025 09:11:26 -0800 Subject: [PATCH] Increase resetWebsite timeout. fix retention bug returning decimal day_number in CH. Closes #3698 --- src/queries/prisma/website.ts | 45 ++++++++++++++----------- src/queries/sql/reports/getRetention.ts | 2 +- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/src/queries/prisma/website.ts b/src/queries/prisma/website.ts index 5f5404d5..cc5f2e6f 100644 --- a/src/queries/prisma/website.ts +++ b/src/queries/prisma/website.ts @@ -135,26 +135,31 @@ export async function resetWebsite(websiteId: string) { const { client, transaction } = prisma; const cloudMode = !!process.env.CLOUD_MODE; - return transaction([ - client.eventData.deleteMany({ - where: { websiteId }, - }), - client.sessionData.deleteMany({ - where: { websiteId }, - }), - client.websiteEvent.deleteMany({ - where: { websiteId }, - }), - client.session.deleteMany({ - where: { websiteId }, - }), - client.website.update({ - where: { id: websiteId }, - data: { - resetAt: new Date(), - }, - }), - ]).then(async data => { + return transaction( + [ + client.eventData.deleteMany({ + where: { websiteId }, + }), + client.sessionData.deleteMany({ + where: { websiteId }, + }), + client.websiteEvent.deleteMany({ + where: { websiteId }, + }), + client.session.deleteMany({ + where: { websiteId }, + }), + client.website.update({ + where: { id: websiteId }, + data: { + resetAt: new Date(), + }, + }), + ], + { + timeout: 30000, + }, + ).then(async data => { if (cloudMode) { await redis.client.set( `website:${websiteId}`, diff --git a/src/queries/sql/reports/getRetention.ts b/src/queries/sql/reports/getRetention.ts index 15984cd3..d99098c0 100644 --- a/src/queries/sql/reports/getRetention.ts +++ b/src/queries/sql/reports/getRetention.ts @@ -133,7 +133,7 @@ async function clickhouseQuery( user_activities AS ( select distinct website_event.session_id, - (${getDateSQL('created_at', unit, timezone)} - cohort_items.cohort_date) / 86400 as day_number + toInt32((${getDateSQL('created_at', unit, timezone)} - cohort_items.cohort_date) / 86400) as day_number from website_event join cohort_items on website_event.session_id = cohort_items.session_id