diff --git a/internal/services/sync/service.go b/internal/services/sync/service.go index d8b58f1..9c9d3cf 100644 --- a/internal/services/sync/service.go +++ b/internal/services/sync/service.go @@ -894,6 +894,16 @@ func (s *Service) SyncPricelistsIfNeeded() error { if !needSync { slog.Debug("pricelists are up to date, no sync needed") + // Clear stale "failed" status: if NeedSync confirmed all active server pricelists + // are present locally, any lingering failure flag is outdated. + if strings.EqualFold(s.localDB.GetLastPricelistSyncStatus(), "failed") { + now := time.Now() + if err := s.localDB.SetPricelistSyncResult("success", "", now); err != nil { + slog.Warn("failed to clear stale pricelist sync failure flag", "error", err) + } else { + s.localDB.SetLastSyncTime(now) + } + } return nil }