Skip to content

Commit a762179

Browse files
authored
Merge pull request #7699 from vector-im/bugfix/hughns/qr-device-race
2 parents be7b49b + 7bbd91f commit a762179

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

changelog.d/7699.bugfix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix E2EE set up failure whilst signing in using QR code

matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/rendezvous/Rendezvous.kt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@ import org.matrix.android.sdk.api.session.crypto.crosssigning.KEYBACKUP_SECRET_S
3535
import org.matrix.android.sdk.api.session.crypto.crosssigning.MASTER_KEY_SSSS_NAME
3636
import org.matrix.android.sdk.api.session.crypto.crosssigning.SELF_SIGNING_KEY_SSSS_NAME
3737
import org.matrix.android.sdk.api.session.crypto.crosssigning.USER_SIGNING_KEY_SSSS_NAME
38+
import org.matrix.android.sdk.api.session.crypto.model.CryptoDeviceInfo
39+
import org.matrix.android.sdk.api.session.crypto.model.MXUsersDevicesMap
3840
import org.matrix.android.sdk.api.util.MatrixJsonParser
41+
import org.matrix.android.sdk.api.util.awaitCallback
3942
import timber.log.Timber
4043

4144
/**
@@ -147,6 +150,14 @@ class Rendezvous(
147150
val deviceKey = crypto.getMyDevice().fingerprint()
148151
send(Payload(PayloadType.PROGRESS, outcome = Outcome.SUCCESS, deviceId = deviceId, deviceKey = deviceKey))
149152

153+
try {
154+
// explicitly download keys for ourself rather than racing with initial sync which might not complete in time
155+
awaitCallback<MXUsersDevicesMap<CryptoDeviceInfo>> { crypto.downloadKeys(listOf(userId), false, it) }
156+
} catch (e: Throwable) {
157+
// log as warning and continue as initial sync might still complete
158+
Timber.tag(TAG).w(e, "Failed to download keys for self")
159+
}
160+
150161
// await confirmation of verification
151162
val verificationResponse = receive()
152163
if (verificationResponse?.outcome == Outcome.VERIFIED) {

0 commit comments

Comments
 (0)