Skip to content

Commit f4a1365

Browse files
n3rdc4ptnCopilot
andauthored
Update internal/usage/tracking.go
Co-authored-by: Copilot <[email protected]>
1 parent 9ec9da0 commit f4a1365

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

internal/usage/tracking.go

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,24 @@ func (u *UsageTracker) DeletionEvent(ctx context.Context, project string, worksp
180180
mcpUsage.Spec.MCPDeletedAt = metav1.NewTime(time.Now().UTC())
181181
err = u.client.Update(ctx, &mcpUsage)
182182
if err != nil {
183-
return fmt.Errorf("error when setting deletion timestamp on MCPUsage element: %w", err)
183+
err = retry.RetryOnConflict(retry.DefaultRetry, func() error {
184+
// Re-fetch the latest version to avoid update conflicts
185+
err := u.client.Get(ctx, objectKey, &mcpUsage)
186+
if err != nil {
187+
return fmt.Errorf("error getting MCPUsage resource during retry: %w", err)
188+
}
189+
mcpUsage.Spec.MCPDeletedAt = metav1.NewTime(time.Now().UTC())
190+
err = u.client.Update(ctx, &mcpUsage)
191+
if err != nil {
192+
if k8serrors.IsConflict(err) {
193+
return err // trigger retry
194+
}
195+
return fmt.Errorf("error when setting deletion timestamp on MCPUsage element: %w", err)
196+
}
197+
return nil
198+
})
199+
if err != nil {
200+
return err
184201
}
185202

186203
return nil

0 commit comments

Comments
 (0)