Skip to content

Commit 3bd1db7

Browse files
bryfoxlukasIO
andauthored
Avoid uncaught errors related to send/disconnect races (#1674)
Co-authored-by: lukasIO <[email protected]>
1 parent 2ba207f commit 3bd1db7

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

.changeset/giant-ligers-flow.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"livekit-client": patch
3+
---
4+
5+
Avoid uncaught errors related to send/disconnect races

src/room/RTCEngine.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,9 @@ export default class RTCEngine extends (EventEmitter as new () => TypedEventEmit
267267

268268
// create offer
269269
if (!this.subscriberPrimary || joinResponse.fastPublish) {
270-
this.negotiate();
270+
this.negotiate().catch((err) => {
271+
log.error(err, this.logContext);
272+
});
271273
}
272274

273275
this.registerOnLineListener();
@@ -1338,7 +1340,9 @@ export default class RTCEngine extends (EventEmitter as new () => TypedEventEmit
13381340
}
13391341
if (needNegotiation) {
13401342
// start negotiation
1341-
this.negotiate();
1343+
this.negotiate().catch((err) => {
1344+
log.error(err, this.logContext);
1345+
});
13421346
}
13431347

13441348
const targetChannel = this.dataChannelForKind(kind, subscriber);

src/room/data-stream/incoming/IncomingDataStreamManager.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,9 @@ export default class IncomingDataStreamManager {
124124

125125
let streamController: ReadableStreamDefaultController<DataStream_Chunk>;
126126
const outOfBandFailureRejectingFuture = new Future<never>();
127+
outOfBandFailureRejectingFuture.promise.catch((err) => {
128+
this.log.error(err);
129+
});
127130

128131
const info: ByteStreamInfo = {
129132
id: streamHeader.streamId,
@@ -178,6 +181,10 @@ export default class IncomingDataStreamManager {
178181

179182
let streamController: ReadableStreamDefaultController<DataStream_Chunk>;
180183
const outOfBandFailureRejectingFuture = new Future<never>();
184+
outOfBandFailureRejectingFuture.promise.catch((err) => {
185+
this.log.error(err);
186+
});
187+
181188
const info: TextStreamInfo = {
182189
id: streamHeader.streamId,
183190
mimeType: streamHeader.mimeType,

0 commit comments

Comments
 (0)