element-hq / element-hq/element-android
Issue in getLastAuthenticatedSession() after update matrix SDK to version 1.0.0
- 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
Assessment
This issue has not been assessed yet.