Merge upstream/livekit into branch

This commit is contained in:
Ryan Emmick
2026-06-11 22:11:21 -05:00
191 changed files with 13413 additions and 4649 deletions

View File

@@ -260,7 +260,10 @@ describe("Start connection states", () => {
await deferredSFU.promise;
return {
status: 500,
body: "Internal Server Error",
body: {
errcode: "M_LOOKUP_FAILED",
error: "Failed to look up user info from homeserver",
},
};
});
@@ -282,7 +285,7 @@ describe("Start connection states", () => {
capturedState.cause instanceof Error
) {
expect(capturedState.cause.message).toContain(
"SFU Config fetch failed with status code 500",
"Failed to look up user info from homeserver",
);
expect(connection.transport.livekit_alias).toEqual(
livekitFocus.livekit_alias,

View File

@@ -12,8 +12,9 @@ import {
} from "@livekit/components-core";
import {
ConnectionError,
type Room as LivekitRoom,
ConnectionErrorReason,
type RemoteParticipant,
type Room as LivekitRoom,
} from "livekit-client";
import { type LivekitTransportConfig } from "matrix-js-sdk/lib/matrixrtc";
import { BehaviorSubject, map } from "rxjs";
@@ -30,6 +31,8 @@ import { type ObservableScope } from "../../ObservableScope.ts";
import {
ElementCallError,
InsufficientCapacityError,
LivekitConnectionError,
PeerConnectionTimeoutError,
SFURoomCreationRestrictedError,
UnknownCallError,
} from "../../../utils/errors.ts";
@@ -248,6 +251,13 @@ export class Connection {
// In the first case there will not be a 404, so we are in the second case.
throw new SFURoomCreationRestrictedError();
}
if (e.reason === ConnectionErrorReason.Timeout) {
// Unabled to establish peer connection within the timeout
throw new PeerConnectionTimeoutError();
}
throw new LivekitConnectionError(e);
}
throw e;
}