From c7bd59876e22605480b35a64256bfe078cc0fb89 Mon Sep 17 00:00:00 2001 From: Carlos Monastyrski Date: Fri, 17 Oct 2025 11:35:55 -0300 Subject: [PATCH 1/3] On Cloud instances, update the number of seats if there is any discrepancy when the plan is fetched --- backend/src/ee/services/license/license-service.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/backend/src/ee/services/license/license-service.ts b/backend/src/ee/services/license/license-service.ts index c2e67908f..57863d76f 100644 --- a/backend/src/ee/services/license/license-service.ts +++ b/backend/src/ee/services/license/license-service.ts @@ -214,6 +214,13 @@ export const licenseServiceFactory = ({ const identityUsed = await licenseDAL.countOrgUsersAndIdentities(orgId); currentPlan.identitiesUsed = identityUsed; + if (currentPlan.identityLimit !== null && currentPlan.identityLimit !== identityUsed) { + await licenseServerCloudApi.request.patch(`/api/license-server/v1/customers/${org.customerId}/cloud-plan`, { + quantity: membersUsed, + quantityIdentities: identityUsed + }); + } + await keyStore.setItemWithExpiry( FEATURE_CACHE_KEY(org.id), LICENSE_SERVER_CLOUD_PLAN_TTL, From 1bc9906d08ddb25da6367a843ff3102251474909 Mon Sep 17 00:00:00 2001 From: Carlos Monastyrski Date: Fri, 17 Oct 2025 11:41:11 -0300 Subject: [PATCH 2/3] Address greptile comment --- .../src/ee/services/license/license-service.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/backend/src/ee/services/license/license-service.ts b/backend/src/ee/services/license/license-service.ts index 57863d76f..7530f8831 100644 --- a/backend/src/ee/services/license/license-service.ts +++ b/backend/src/ee/services/license/license-service.ts @@ -215,10 +215,17 @@ export const licenseServiceFactory = ({ currentPlan.identitiesUsed = identityUsed; if (currentPlan.identityLimit !== null && currentPlan.identityLimit !== identityUsed) { - await licenseServerCloudApi.request.patch(`/api/license-server/v1/customers/${org.customerId}/cloud-plan`, { - quantity: membersUsed, - quantityIdentities: identityUsed - }); + try { + await licenseServerCloudApi.request.patch(`/api/license-server/v1/customers/${org.customerId}/cloud-plan`, { + quantity: membersUsed, + quantityIdentities: identityUsed + }); + } catch (error) { + logger.error( + error, + `Update seats used: encountered an error when updating plan for customer [customerId=${org.customerId}]` + ); + } } await keyStore.setItemWithExpiry( From 0c0108a1b6c2548da29e22cd6680ae169e74d89f Mon Sep 17 00:00:00 2001 From: Carlos Monastyrski Date: Fri, 17 Oct 2025 18:20:15 -0300 Subject: [PATCH 3/3] Small nit on getPlan identity limit check --- backend/src/ee/services/license/license-service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/ee/services/license/license-service.ts b/backend/src/ee/services/license/license-service.ts index 7530f8831..fba9d0cca 100644 --- a/backend/src/ee/services/license/license-service.ts +++ b/backend/src/ee/services/license/license-service.ts @@ -214,7 +214,7 @@ export const licenseServiceFactory = ({ const identityUsed = await licenseDAL.countOrgUsersAndIdentities(orgId); currentPlan.identitiesUsed = identityUsed; - if (currentPlan.identityLimit !== null && currentPlan.identityLimit !== identityUsed) { + if (currentPlan.identityLimit && currentPlan.identityLimit !== identityUsed) { try { await licenseServerCloudApi.request.patch(`/api/license-server/v1/customers/${org.customerId}/cloud-plan`, { quantity: membersUsed,