diff --git a/src/backend/services/metering/MeteringService.test.ts b/src/backend/services/metering/MeteringService.test.ts index eadf9d134..a9dfb1cc0 100644 --- a/src/backend/services/metering/MeteringService.test.ts +++ b/src/backend/services/metering/MeteringService.test.ts @@ -395,6 +395,8 @@ describe('MeteringService', () => { expect.stringContaining('usage exceeded'), expect.stringContaining('exceeded their usage allowance'), expect.objectContaining({ totalUsage: expect.any(Number) }), + // Non-paging severity — records and de-dupes but doesn't page on-call. + 'warning', ); alarmSpy.mockRestore(); }); diff --git a/src/backend/services/metering/MeteringService.ts b/src/backend/services/metering/MeteringService.ts index f08a4fdfc..07e0972f4 100644 --- a/src/backend/services/metering/MeteringService.ts +++ b/src/backend/services/metering/MeteringService.ts @@ -184,7 +184,7 @@ export class MeteringService extends PuterService { PERIOD_ESCAPE, ); const appId = actor.app?.uid || GLOBAL_APP_KEY; - const userId = actor.user.uuid; + const userId = actor.user.uuid!; const pathAndAmountMap = { total: totalCost, [`${escapedUsageType}.units`]: usageAmount, @@ -360,7 +360,7 @@ export class MeteringService extends PuterService { } const appId = actor.app?.uid || GLOBAL_APP_KEY; - const userId = actor.user.uuid; + const userId = actor.user.uuid!; const actorUsageKey = `${METRICS_PREFIX}:actor:${userId}:${currentMonth}`; const actorUsagesPromise = this.stores.kv @@ -933,6 +933,8 @@ export class MeteringService extends PuterService { totalUsage: actorUsages.total, monthUsageAllowance: actorSubscription.monthUsageAllowance, }, + // Expected-but-worth-tracking signal — record/de-dupe it but don't page on-call. + 'warning', ); }