@@ -180,6 +180,18 @@ func (d *Daemon) RunOnce(ctx context.Context) error {
180180 return err
181181 }
182182 } else {
183+ // Remove old mappings to old entitlement first
184+ existingGuilds , err := d .db .LegacyPremiumEntitlementGuilds .ListForUser (ctx , tx , userId )
185+ if err != nil {
186+ d .logger .Error ("Failed to list existing guilds" , zap .Uint64 ("user_id" , userId ), zap .Error (err ))
187+ return err
188+ }
189+
190+ if err := d .db .LegacyPremiumEntitlementGuilds .DeleteByEntitlement (ctx , tx , existingEntitlement .Id ); err != nil {
191+ d .logger .Error ("Failed to remove legacy premium entitlement guilds" , zap .Uint64 ("user_id" , userId ), zap .Stringer ("existing_entitlement_id" , existingEntitlement .Id ), zap .Error (err ))
192+ return err
193+ }
194+
183195 // Transfer over guild mapping if necessary
184196 newSkuMaxServers , hasLimit , err := d .db .MultiServerSkus .GetPermittedServerCount (ctx , tx , skuId )
185197 if err != nil {
@@ -188,12 +200,6 @@ func (d *Daemon) RunOnce(ctx context.Context) error {
188200 }
189201
190202 if hasLimit {
191- existingGuilds , err := d .db .LegacyPremiumEntitlementGuilds .ListForUser (ctx , tx , userId )
192- if err != nil {
193- d .logger .Error ("Failed to list existing guilds" , zap .Uint64 ("user_id" , userId ), zap .Error (err ))
194- return err
195- }
196-
197203 if len (existingGuilds ) > newSkuMaxServers {
198204 existingGuilds = existingGuilds [:newSkuMaxServers ]
199205 }
@@ -211,12 +217,6 @@ func (d *Daemon) RunOnce(ctx context.Context) error {
211217 }
212218 }
213219 }
214-
215- // Remove old mappings to old entitlement
216- if err := d .db .LegacyPremiumEntitlementGuilds .DeleteByEntitlement (ctx , tx , existingEntitlement .Id ); err != nil {
217- d .logger .Error ("Failed to remove legacy premium entitlement guilds" , zap .Uint64 ("user_id" , userId ), zap .Stringer ("existing_entitlement_id" , existingEntitlement .Id ), zap .Error (err ))
218- return err
219- }
220220 }
221221
222222 if err := d .db .Entitlements .DeleteById (ctx , tx , existingEntitlement .Id ); err != nil {
0 commit comments