diff --git a/server/core_leaderboard.go b/server/core_leaderboard.go index 7fc2514322b549fc74a54a29bae59456cd84fe22..cd32e966f7671e9c348fb531525b59b448521492 100644 --- a/server/core_leaderboard.go +++ b/server/core_leaderboard.go @@ -628,12 +628,17 @@ func getLeaderboardRecordsHaystack(ctx context.Context, logger *zap.Logger, db * records := append(firstRecords, ownerRecord) records = append(records, secondRecords...) - start := len(records) - int(limit) - if start < 0 { + numRecords := len(records) + start := numRecords - int(limit) + if len(firstRecords) < limit/2 { start = 0 } + end := start + int(limit) + if end > numRecords { + end = numRecords + } - records = records[start:] + records = records[start:end] rankCache.Fill(leaderboardId, expiryTime.Unix(), records) return records, nil