Fixes #3078 - Trim number of resolved alias vias and always default to a join button in the room preview screen

This commit is contained in:
Stefan Ceriu
2024-07-24 14:17:51 +03:00
committed by Stefan Ceriu
parent 37786b8fad
commit f44c0765f8
6 changed files with 20 additions and 19 deletions
@@ -608,7 +608,14 @@ class ClientProxy: ClientProxyProtocol {
func resolveRoomAlias(_ alias: String) async -> Result<ResolvedRoomAlias, ClientProxyError> {
do {
return try await .success(client.resolveRoomAlias(roomAlias: alias))
let resolvedAlias = try await client.resolveRoomAlias(roomAlias: alias)
// Resolving aliases is done through the directory/room API which returns too many / all known
// vias, which in turn results in invalid join requests. Trim them to something manageable
// https://github.com/element-hq/synapse/issues/17298
let limitedAlias = ResolvedRoomAlias(roomId: resolvedAlias.roomId, servers: Array(resolvedAlias.servers.prefix(50)))
return .success(limitedAlias)
} catch {
MXLog.error("Failed resolving room alias: \(alias) with error: \(error)")
return .failure(.sdkError(error))