Skip to content

Commit 241a274

Browse files
committed
Catch errors on attempts to send futures
Also tweak some logger calls
1 parent bf36bd7 commit 241a274

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

src/matrixrtc/MatrixRTCSession.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -879,7 +879,7 @@ export class MatrixRTCSession extends TypedEventEmitter<MatrixRTCSessionEvent, M
879879
MEMBER_EVENT_CHECK_PERIOD,
880880
);
881881
} else {
882-
const res = await this.client._unstable_sendStateFuture(
882+
await this.client._unstable_sendStateFuture(
883883
this.room.roomId,
884884
{
885885
// TODO: choose a reasonable timeout
@@ -888,17 +888,20 @@ export class MatrixRTCSession extends TypedEventEmitter<MatrixRTCSessionEvent, M
888888
EventType.GroupCallMemberPrefix,
889889
{}, // leave event
890890
stateKey,
891-
);
892-
this.cancelFutureToken = res.cancel_token;
893-
this.scheduleRefreshFuture(res.refresh_token);
891+
).then(res => {
892+
this.cancelFutureToken = res.cancel_token;
893+
this.scheduleRefreshFuture(res.refresh_token);
894+
}).catch((e) => logger.error("Failed to send future:", e));
894895
}
895896
} else if (!legacy && this.cancelFutureToken !== undefined) {
896897
// TODO: remove this once the Synapse MSC4140 implementation cancels timeout futures on state change
897-
await this.client._unstable_useFutureToken(this.cancelFutureToken);
898+
await this.client.
899+
_unstable_useFutureToken(this.cancelFutureToken)
900+
.catch((e) => logger.error("Failed to cancel future:", e));
898901
}
899902
} catch (e) {
900903
const resendDelay = CALL_MEMBER_EVENT_RETRY_DELAY_MIN + Math.random() * 2000;
901-
logger.warn(`Failed to send call member event: retrying in ${resendDelay}`);
904+
logger.warn(`Failed to send call member event (retrying in ${resendDelay}): ${e}`);
902905
await new Promise((resolve) => setTimeout(resolve, resendDelay));
903906
await this.triggerCallMembershipEventUpdate();
904907
}
@@ -913,7 +916,7 @@ export class MatrixRTCSession extends TypedEventEmitter<MatrixRTCSessionEvent, M
913916
this.client
914917
._unstable_useFutureToken(refreshToken)
915918
.then(() => this.scheduleRefreshFuture(refreshToken))
916-
.catch((err) => logger.error("Failed to refresh future", err));
919+
.catch((e) => logger.error("Failed to refresh future", e));
917920
}
918921

919922
private stateEventsContainOngoingLegacySession(callMemberEvents: Map<string, MatrixEvent>): boolean {

0 commit comments

Comments
 (0)