diff --git a/.changeset/catch-negotiate-on-media-sections-requirement.md b/.changeset/catch-negotiate-on-media-sections-requirement.md new file mode 100644 index 0000000000..8d0fc0a150 --- /dev/null +++ b/.changeset/catch-negotiate-on-media-sections-requirement.md @@ -0,0 +1,5 @@ +--- +'livekit-client': patch +--- + +Catch the rejection from `negotiate()` when the server requests media sections, so a failed renegotiation no longer surfaces as an unhandled promise rejection diff --git a/src/room/RTCEngine.ts b/src/room/RTCEngine.ts index fd0fc1fd61..e31db71aa3 100644 --- a/src/room/RTCEngine.ts +++ b/src/room/RTCEngine.ts @@ -755,7 +755,9 @@ export default class RTCEngine extends (EventEmitter as new () => TypedEventEmit this.client.onMediaSectionsRequirement = (requirement: MediaSectionsRequirement) => { this.addMediaSections(requirement.numAudios, requirement.numVideos); - this.negotiate(); + this.negotiate().catch((err) => { + this.log.error(err); + }); }; this.client.onPublishDataTrackResponse = (event: PublishDataTrackResponse) => {