Uploaded image for project: 'Realm Java SDK'
  1. Realm Java SDK
  2. RJAVA-656

io.realm.exceptions.RealmError: Unrecoverable error. Key not found in io_realm_internal_Table.cpp line 570

      Goal

      Load data from Realm

      Actual Results

      RealmError

      io.realm.exceptions.RealmError: Unrecoverable error. Key not found in /Users/eduardo.lopez/git/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_Table.cpp line 570
             at io.realm.internal.Table.nativeGetRowPtr(Table.java)
             at io.realm.internal.UncheckedRow.getByRowKey(UncheckedRow.java:77)
             at io.realm.internal.Table.getUncheckedRow(Table.java:399)
             at io.realm.BaseRealm.get(BaseRealm.java:682)
             at io.realm.app_storage_viewhistory_RealmProfileActionRealmProxy.realmGet$member(app_storage_viewhistory_RealmProfileActionRealmProxy.java:105)
             at app.storage.viewhistory.RealmProfileAction.getMember(RealmProfileAction.java:8)
             at app.storage.viewhistory.ProfileActionDao.getProfilesList(ProfileActionDao.java:126)
             at app.screens.matches.viewmodel.MatchesHistoryViewModel$observeMatchesState$1.call(MatchesHistoryViewModel.java:77)
             at app.screens.matches.viewmodel.MatchesHistoryViewModel$observeMatchesState$1.call(MatchesHistoryViewModel.java:28)
             at io.reactivex.internal.operators.observable.ObservableFromCallable.subscribeActual(ObservableFromCallable.java:43)
             at io.reactivex.Observable.subscribe(Observable.java:12284)
             at io.reactivex.internal.operators.observable.ObservableCombineLatest$LatestCoordinator.subscribe(ObservableCombineLatest.java:117)
             at io.reactivex.internal.operators.observable.ObservableCombineLatest.subscribeActual(ObservableCombineLatest.java:71)
             at io.reactivex.Observable.subscribe(Observable.java:12284)
             at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeTask.run(ObservableSubscribeOn.java:96)
             at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
             at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
             at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
             at java.util.concurrent.FutureTask.run(FutureTask.java:266)
             at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
             at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
             at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
             at java.lang.Thread.run(Thread.java:919)
      

      Steps & Code to Reproduce

      This was all working fine until we upgraded to 7.0.0. We initially thought this was an issue with the Realm getting corrupted on upgrade, so released a new version with Realm 7.0.1. The issue persisted and we released a new version where we deleted the realm on application start. The realm was deleted with Realm.deleteRealm(RealmConfiguration), and in the event that it fails to delete the Realm we log an exception. We are seeing this exception for a couple of users, but much smaller numbers than the number of users hitting the above crash.
      We are also seeing the following error:

      io.realm.exceptions.RealmError: Unrecoverable error. Key not found in /Users/eduardo.lopez/git/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsObject.cpp line 309
             at io.realm.internal.OsObject.nativeCreateRowWithLongPrimaryKey(OsObject.java)
             at io.realm.internal.OsObject.createRowWithPrimaryKey(OsObject.java:236)
             at io.realm.app_storage_members_RealmMemberRealmProxy.insertOrUpdate(app_storage_members_RealmMemberRealmProxy.java:1157)
             at io.realm.DefaultRealmModuleMediator.insertOrUpdate(DefaultRealmModuleMediator.java:577)
             at io.realm.Realm.insertOrUpdate(Realm.java:1263)
             at app.storage.members.MemberDao$insertProfile$$inlined$use$lambda$1.execute(MemberDao.java:16)
             at io.realm.Realm.executeTransaction(Realm.java:1489)
             at app.storage.members.MemberDao.insertProfile(MemberDao.java:15)
             at app.managers.Manager.insertEntryIntoLocalProfileHistoryDB(Manager.java:227)
             at app.managers.Manager.updateDB(Manager.java:175)
             at app.managers.Manager.successfull(Manager.java:119)
             at app.syncers.Syncer.successful(Syncer.java:222)
             at app.syncers.Syncer.<init>(Syncer.java:24)
             at app.syncers.Syncer$send$1.invoke(Syncer.java:177)
             at app.syncers.Syncer$send$1.invoke(Syncer.java:24)
             at io.reactivex.rxkotlin.SubscribersKt$sam$io_reactivex_functions_Consumer$0.accept(SubscribersKt.java:2)
             at io.reactivex.internal.observers.ConsumerSingleObserver.onSuccess(ConsumerSingleObserver.java:62)
             at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.onSuccess(SingleSubscribeOn.java:68)
             at io.reactivex.internal.operators.observable.ObservableSingleSingle$SingleElementObserver.onComplete(ObservableSingleSingle.java:109)
             at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeOnObserver.onComplete(ObservableSubscribeOn.java:68)
             at retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onComplete(BodyObservable.java:70)
             at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:52)
             at io.reactivex.Observable.subscribe(Observable.java:12284)
             at retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:35)
             at io.reactivex.Observable.subscribe(Observable.java:12284)
             at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeTask.run(ObservableSubscribeOn.java:96)
             at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
             at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
             at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
             at java.util.concurrent.FutureTask.run(FutureTask.java:266)
             at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
             at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
             at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
             at java.lang.Thread.run(Thread.java:919)
      

      and

      io.realm.exceptions.RealmError: Unrecoverable error. Key already used in /Users/eduardo.lopez/git/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsObject.cpp line 309
             at io.realm.internal.OsObject.nativeCreateRowWithLongPrimaryKey(OsObject.java)
             at io.realm.internal.OsObject.createRowWithPrimaryKey(OsObject.java:236)
             at io.realm.app_storage_members_RealmMemberRealmProxy.insertOrUpdate(app_storage_members_RealmMemberRealmProxy.java:1157)
             at io.realm.DefaultRealmModuleMediator.insertOrUpdate(DefaultRealmModuleMediator.java:577)
             at io.realm.Realm.insertOrUpdate(Realm.java:1263)
             at app.storage.members.MemberDao$insertProfile$$inlined$use$lambda$1.execute(MemberDao.java:16)
             at io.realm.Realm.executeTransaction(Realm.java:1489)
             at app.storage.members.MemberDao.insertProfile(MemberDao.java:15)
      

      Version of Realm and tooling

      Realm version(s): 7.0.0 & 7.0.1
      Realm Sync feature enabled: No
      Android Studio version: 4.0.0
      Android Build Tools version: 29.0.3
      Gradle version: 6.5

            Assignee:
            Unassigned Unassigned
            Reporter:
            unitosyncbot Unito Sync Bot
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: