diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/Tenant.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/Tenant.java index f4a005bbff..e0ad66274d 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/Tenant.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/Tenant.java @@ -10,6 +10,7 @@ import org.checkerframework.common.aliasing.qual.Unique; import org.springframework.data.annotation.Transient; import org.springframework.data.mongodb.core.mapping.Document; +import java.io.Serial; import java.io.Serializable; @Getter @@ -20,6 +21,11 @@ import java.io.Serializable; @FieldNameConstants public class Tenant extends BaseDomain implements Serializable { + // When changing tenant object, update the serialization version number to ensure that in a multi pod + // deployment, new pods only read the new tenant object and not the old one from redis cache. + @Serial + private static final long serialVersionUID = 1459916000401322518L; + @Unique String slug; String displayName; diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/TenantServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/TenantServiceCEImpl.java index d37b761f1a..4c4baaa2b2 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/TenantServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/TenantServiceCEImpl.java @@ -194,12 +194,14 @@ public class TenantServiceCEImpl extends BaseService { - if (tenant.getTenantConfiguration() == null) { - tenant.setTenantConfiguration(new TenantConfiguration()); - } - return tenant; - })) + .then(cacheableRepositoryHelper + .fetchDefaultTenant(tenantId) + .map(tenant -> { + if (tenant.getTenantConfiguration() == null) { + tenant.setTenantConfiguration(new TenantConfiguration()); + } + return tenant; + })) .name(FETCH_TENANT_CACHE_POST_DESERIALIZATION_ERROR_SPAN) .tap(Micrometer.observation(observationRegistry)) .flatMap(tenant -> repository