From 09a9457021c2baac37c5ce73b9429269c183eaa2 Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 17 Feb 2026 21:23:35 -0800 Subject: [PATCH] Fix transaction issue --- server/lib/billing/usageService.ts | 16 ++++++++-------- server/routers/gerbil/receiveBandwidth.ts | 1 - 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/server/lib/billing/usageService.ts b/server/lib/billing/usageService.ts index a7786c76..d7299284 100644 --- a/server/lib/billing/usageService.ts +++ b/server/lib/billing/usageService.ts @@ -46,8 +46,6 @@ export class UsageService { return null; } - let orgIdToUse = await this.getBillingOrg(orgId, transaction); - // Truncate value to 11 decimal places value = this.truncateValue(value); @@ -59,6 +57,7 @@ export class UsageService { try { let usage; if (transaction) { + const orgIdToUse = await this.getBillingOrg(orgId, transaction); usage = await this.internalAddUsage( orgIdToUse, featureId, @@ -67,6 +66,7 @@ export class UsageService { ); } else { await db.transaction(async (trx) => { + const orgIdToUse = await this.getBillingOrg(orgId, trx); usage = await this.internalAddUsage( orgIdToUse, featureId, @@ -92,7 +92,7 @@ export class UsageService { const delay = baseDelay + jitter; logger.warn( - `Deadlock detected for ${orgIdToUse}/${featureId}, retrying attempt ${attempt}/${maxRetries} after ${delay.toFixed(0)}ms` + `Deadlock detected for ${orgId}/${featureId}, retrying attempt ${attempt}/${maxRetries} after ${delay.toFixed(0)}ms` ); await new Promise((resolve) => setTimeout(resolve, delay)); @@ -100,7 +100,7 @@ export class UsageService { } logger.error( - `Failed to add usage for ${orgIdToUse}/${featureId} after ${attempt} attempts:`, + `Failed to add usage for ${orgId}/${featureId} after ${attempt} attempts:`, error ); break; @@ -169,7 +169,7 @@ export class UsageService { return; } - let orgIdToUse = await this.getBillingOrg(orgId); + const orgIdToUse = await this.getBillingOrg(orgId); try { // Truncate value to 11 decimal places if provided @@ -227,7 +227,7 @@ export class UsageService { orgId: string, featureId: FeatureId ): Promise { - let orgIdToUse = await this.getBillingOrg(orgId); + const orgIdToUse = await this.getBillingOrg(orgId); const cacheKey = `customer_${orgIdToUse}_${featureId}`; const cached = cache.get(cacheKey); @@ -274,7 +274,7 @@ export class UsageService { return null; } - let orgIdToUse = await this.getBillingOrg(orgId, trx); + const orgIdToUse = await this.getBillingOrg(orgId, trx); const usageId = `${orgIdToUse}-${featureId}`; @@ -382,7 +382,7 @@ export class UsageService { return false; } - let orgIdToUse = await this.getBillingOrg(orgId, trx); + const orgIdToUse = await this.getBillingOrg(orgId, trx); // This method should check the current usage against the limits set for the organization // and kick out all of the sites on the org diff --git a/server/routers/gerbil/receiveBandwidth.ts b/server/routers/gerbil/receiveBandwidth.ts index 937fa271..dbd687a1 100644 --- a/server/routers/gerbil/receiveBandwidth.ts +++ b/server/routers/gerbil/receiveBandwidth.ts @@ -197,7 +197,6 @@ export async function updateSiteBandwidth( usageService .checkLimitSet( orgId, - FeatureId.EGRESS_DATA_MB, bandwidthUsage )