From 4fe354b85a99995223a83ce8b13677d263f2d915 Mon Sep 17 00:00:00 2001 From: KM Koushik Date: Sun, 26 Oct 2025 07:52:44 +1100 Subject: [PATCH] Fix free limits and email notifications for inactive users (#283) Co-authored-by: Claude --- apps/web/src/server/service/limit-service.ts | 5 +++-- apps/web/src/server/service/team-service.ts | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/apps/web/src/server/service/limit-service.ts b/apps/web/src/server/service/limit-service.ts index abaa1a9..c9c7462 100644 --- a/apps/web/src/server/service/limit-service.ts +++ b/apps/web/src/server/service/limit-service.ts @@ -136,10 +136,11 @@ export class LimitService { ); const dailyUsage = usage.day.reduce((acc, curr) => acc + curr.sent, 0); + const activePlan = getActivePlan(team); const dailyLimit = - team.plan !== "FREE" + activePlan !== "FREE" ? team.dailyEmailLimit - : PLAN_LIMITS[team.plan].emailsPerDay; + : PLAN_LIMITS.FREE.emailsPerDay; logger.info( { dailyUsage, dailyLimit, team }, diff --git a/apps/web/src/server/service/team-service.ts b/apps/web/src/server/service/team-service.ts index 596ce51..64fb09d 100644 --- a/apps/web/src/server/service/team-service.ts +++ b/apps/web/src/server/service/team-service.ts @@ -400,7 +400,8 @@ export class TeamService { } const team = await TeamService.getTeamCached(teamId); - const isPaidPlan = team.plan !== "FREE"; + // Only consider it a paid plan if the subscription is active + const isPaidPlan = team.isActive && team.plan !== "FREE"; const html = await getLimitReachedEmail(teamId, limit, reason); @@ -501,7 +502,8 @@ export class TeamService { } const team = await TeamService.getTeamCached(teamId); - const isPaidPlan = team.plan !== "FREE"; + // Only consider it a paid plan if the subscription is active + const isPaidPlan = team.isActive && team.plan !== "FREE"; const period = reason === LimitReason.EMAIL_FREE_PLAN_MONTHLY_LIMIT_REACHED