diff --git a/pkg/rtc/subscriptionmanager.go b/pkg/rtc/subscriptionmanager.go index 78ce71c6b..eb00a15c9 100644 --- a/pkg/rtc/subscriptionmanager.go +++ b/pkg/rtc/subscriptionmanager.go @@ -18,6 +18,7 @@ package rtc import ( "context" + "errors" "sync" "time" @@ -503,8 +504,8 @@ func (m *SubscriptionManager) subscribe(s *trackSubscription) error { } subTrack, err := track.AddSubscriber(m.params.Participant) - if err != nil && err != errAlreadySubscribed { - // ignore already subscribed error + if err != nil && !errors.Is(err, errAlreadySubscribed) && !errors.Is(err, ErrTrackNotAttached) && !errors.Is(err, ErrNoReceiver) { + // ignore errors: already subscribed OR waiting for track resolve m.params.Logger.Warnw("add subscriber failed", err, "trackID", trackID) return err } diff --git a/pkg/rtc/transportmanager.go b/pkg/rtc/transportmanager.go index 21591f3c2..489f834e7 100644 --- a/pkg/rtc/transportmanager.go +++ b/pkg/rtc/transportmanager.go @@ -305,7 +305,7 @@ func (t *TransportManager) RemoveSubscribedTrack(subTrack types.SubscribedTrack) } func (t *TransportManager) OnDataMessage(f func(kind livekit.DataPacket_Kind, data []byte)) { - // upstream data is always comes in via publisher peer connection irrespective of which is primary + // upstream data always comes in via publisher peer connection irrespective of which is primary t.publisher.OnDataPacket(f) }