From db1a804696abc7d563779b53dbf0d55e3aa6892f Mon Sep 17 00:00:00 2001 From: Raja Subramanian Date: Sun, 8 Mar 2026 08:34:53 +0530 Subject: [PATCH] defensive check for peer connection instance (#4350) --- pkg/rtc/transportmanager.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkg/rtc/transportmanager.go b/pkg/rtc/transportmanager.go index bc5307668..300a46f1f 100644 --- a/pkg/rtc/transportmanager.go +++ b/pkg/rtc/transportmanager.go @@ -542,9 +542,17 @@ func (t *TransportManager) HandleAnswer(answer webrtc.SessionDescription, answer func (t *TransportManager) AddICECandidate(candidate webrtc.ICECandidateInit, target livekit.SignalTarget) { switch target { case livekit.SignalTarget_PUBLISHER: - t.publisher.AddICECandidate(candidate) + if t.publisher != nil { + t.publisher.AddICECandidate(candidate) + } else { + t.params.Logger.Warnw("ice candidate for publisher, but no peer connection", nil, "candidate", candidate) + } case livekit.SignalTarget_SUBSCRIBER: - t.subscriber.AddICECandidate(candidate) + if t.subscriber != nil { + t.subscriber.AddICECandidate(candidate) + } else { + t.params.Logger.Warnw("ice candidate for subscriber, but no peer connection", nil, "candidate", candidate) + } default: err := errors.New("unknown signal target") t.params.Logger.Errorw("ice candidate for unknown signal target", err, "target", target)