element-hq / element-hq/element-android

Issue in getLastAuthenticatedSession() after update matrix SDK to version 1.0.0

Open
#2,229 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Kotlin
Stars
3.7k
Forks
917
PR merge metrics
No merged PRs in 30d

Description

We have upgraded the matrix SDK version from v0.18 to v1.0.0 in the android app. After upgrading the matrix SDK version to v1.0.0 the app is getting crash due to IllegalArgumentException thrown by getLastAuthenticatedSession method. We have handled the crash by applying the try-catch block but when handling this case a new session is created. As a result the old messages are not being decrypted because the session has been changed. Please check the below detailed error message -

java.lang.IllegalArgumentException: Field already exists in 'IncomingRoomKeyRequestEntity': requestBodyAlgorithm
at io.realm.MutableRealmObjectSchema.checkFieldNameIsAvailable(MutableRealmObjectSchema.java:369)
at io.realm.MutableRealmObjectSchema.checkNewFieldName(MutableRealmObjectSchema.java:364)
at io.realm.MutableRealmObjectSchema.addField(MutableRealmObjectSchema.java:108)
at im.vector.matrix.android.internal.crypto.store.db.RealmCryptoStoreMigration.migrateTo2Legacy(RealmCryptoStoreMigration.kt:92)
at im.vector.matrix.android.internal.crypto.store.db.RealmCryptoStoreMigration.migrate(RealmCryptoStoreMigration.kt:64)
at io.realm.BaseRealm$6.onMigrationNeeded(BaseRealm.java:782)
at io.realm.internal.OsSharedRealm.runMigrationCallback(OsSharedRealm.java:533)
at io.realm.internal.OsSharedRealm.nativeGetSharedRealm(Native Method)
at io.realm.internal.OsSharedRealm.(OsSharedRealm.java:171)
at io.realm.internal.OsSharedRealm.getInstance(OsSharedRealm.java:241)
at io.realm.BaseRealm.(BaseRealm.java:136)
at io.realm.BaseRealm.(BaseRealm.java:103)
at io.realm.Realm.(Realm.java:163)
at io.realm.Realm.createInstance(Realm.java:499)
at io.realm.RealmCache.doCreateRealmOrGetFromCache(RealmCache.java:360)
at io.realm.RealmCache.createRealmOrGetFromCache(RealmCache.java:290)
at io.realm.Realm.getInstance(Realm.java:428)
at im.vector.matrix.android.internal.crypto.store.db.HelperKt.doRealmTransaction(Helper.kt:61)
at im.vector.matrix.android.internal.crypto.store.db.RealmCryptoStore.(RealmCryptoStore.kt:135)
at im.vector.matrix.android.internal.crypto.store.db.RealmCryptoStore_Factory.newInstance(RealmCryptoStore_Factory.java:43)
at im.vector.matrix.android.internal.crypto.store.db.RealmCryptoStore_Factory.get(RealmCryptoStore_Factory.java:31)
at im.vector.matrix.android.internal.crypto.store.db.RealmCryptoStore_Factory.get(RealmCryptoStore_Factory.java:10)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at im.vector.matrix.android.internal.crypto.DefaultCryptoService_Factory.get(DefaultCryptoService_Factory.java:185)
at im.vector.matrix.android.internal.crypto.DefaultCryptoService_Factory.get(DefaultCryptoService_Factory.java:34)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at dagger.internal.DelegateFactory.get(DelegateFactory.java:36)
at im.vector.matrix.android.internal.session.room.EventRelationsAggregationProcessor_Factory.get(EventRelationsAggregationProcessor_Factory.java:25)
at im.vector.matrix.android.internal.session.room.EventRelationsAggregationProcessor_Factory.get(EventRelationsAggregationProcessor_Factory.java:8)
at dagger.internal.SetFactory.get(SetFactory.java:126)
at dagger.internal.SetFactory.get(SetFactory.java:37)
at im.vector.matrix.android.internal.database.EventInsertLiveObserver_Factory.get(EventInsertLiveObserver_Factory.java:32)
at im.vector.matrix.android.internal.database.EventInsertLiveObserver_Factory.get(EventInsertLiveObserver_Factory.java:11)
at dagger.internal.SetFactory.get(SetFactory.java:126)
at dagger.internal.SetFactory.get(SetFactory.java:37)
at im.vector.matrix.android.internal.session.DefaultSession_Factory.get(DefaultSession_Factory.java:215)
at im.vector.matrix.android.internal.session.DefaultSession_Factory.get(DefaultSession_Factory.java:48)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at im.vector.matrix.android.internal.session.DaggerSessionComponent.session(DaggerSessionComponent.java:1593)
at im.vector.matrix.android.internal.SessionManager.getOrCreateSession(SessionManager.kt:42)
at im.vector.matrix.android.internal.auth.DefaultAuthenticationService.getLastAuthenticatedSession(DefaultAuthenticationService.kt:87)

Can you help with this above error to resolve?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.