diff --git a/pkg/rtc/participant.go b/pkg/rtc/participant.go index 1988052d9..a436098f3 100644 --- a/pkg/rtc/participant.go +++ b/pkg/rtc/participant.go @@ -282,7 +282,7 @@ type ParticipantImpl struct { // queued participant updates before join response is sent // guarded by updateLock queuedUpdates []*livekit.ParticipantInfo - // cache of recently sent updates, to ensuring ordering by version + // cache of recently sent updates, to ensure ordering by version // guarded by updateLock updateCache *lru.Cache[livekit.ParticipantID, participantUpdateInfo] updateLock utils.Mutex diff --git a/pkg/rtc/participant_signal.go b/pkg/rtc/participant_signal.go index 3fa388adc..adadc44ac 100644 --- a/pkg/rtc/participant_signal.go +++ b/pkg/rtc/participant_signal.go @@ -118,6 +118,10 @@ func (p *ParticipantImpl) SendParticipantUpdate(participantsToUpdate []*livekit. }) validUpdates = append(validUpdates, pi) } + + if pi.State == livekit.ParticipantInfo_DISCONNECTED { + p.updateCache.Remove(pID) + } } p.updateLock.Unlock()