io.realm.exceptions.RealmFileException: Unable to open a realm at path
Caused by: io.realm.exceptions.RealmFileException: Unable to open a realm at path '/data/data/com.zcla.bankaccesscontrol/files/log_info.realm': Invalid top array (ref, [0], [1], [2]): 12432, 24, 4320, 24576 Path:. (Invalid top array (ref, [0], [1], [2]): 12432, 24, 4320, 24576 Path: /data/data/com.zcla.bankaccesscontrol/files/log_info.realm) (/data/data/com.zcla.bankaccesscontrol/files/log_info.realm) in /Users/cm/Realm/realm-java-release/realm/realm-library/src/main/cpp/io_realm_internal_OsSharedRealm.cpp line 101 Kind: ACCESS_ERROR.
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.internal.OsSharedRealm.getInstance(OsSharedRealm.java:231)
at io.realm.RealmCache.doCreateRealmOrGetFromCache(RealmCache.java:318)
at io.realm.RealmCache.createRealmOrGetFromCache(RealmCache.java:284)
at io.realm.Realm.getInstance(Realm.java:428)
at com.zcla.bankaccesscontrol.helper.RealmHelper.getLogRealm(RealmHelper.java:101)
at com.zcla.bankaccesscontrol.global.GlobalActivity.initData(GlobalActivity.java:107)
at com.zcla.bankaccesscontrol.activity.ScreensaverActivity.initData(ScreensaverActivity.java:56)
at com.unengchen.basesdk.view.BaseActivity.onCreate(BaseActivity.java:34)
at android.app.Activity.performCreate(Activity.java:7036)
at android.app.Activity.performCreate(Activity.java:7027)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
public Realm getLogRealm() {
mLogRealmConfig = new RealmConfiguration.Builder()
.name(LOG_DATABASE_NAME)
.schemaVersion(3)
.modules(new LogRealmModule())
.migration(new LogRealmMigration())
.build();
return Realm.getInstance(mLogRealmConfig);
}
Realm version(s): 5.14.0
Realm Sync feature enabled: No
Android Studio version: 3.4
Android Build Tools version: 28
Gradle version: 3.4.1
Which Android version and device(s): 8.0
It sounds like this is either not a correct Realm file or that it has been corrupted in some way.
My app is self-startup, and this error is likely to occur every time the power is off and restarted.
If I turn on ADB mode, this error will occur, and if I turn it off, it won't happen.
@unengchen Could you please answer each of the questions 1-4 above?
Also, are you using encryption?
@bmunkholm
1、I have no move or copy the file,I just use Realm.getInstance() to get my realm object
2、it happen in my production
3、when the power is off and restarted in adb mode(adb connect my device),my app is self-startup then realm.getInstance(),the error occur。but close ADB MODE,the error do not occur。
4、Yes,and I have no encryption
Ok, so it doesn't seem to happen for your users in production, but only for you when you debug using ADB.
Did you really copy/paste the exception correctly? It seems there is some duplication in the text in the first 5 lines after "Actual results".
Are you sure you have write access to the file at that location?
The AS(android studio) show the exception, I copy/paste it directly。
I am sure that I have access to write ,And I do not write or update my realm object , I just get data from realm to show 。
I received a crash report from 1 user who tried to open my app 3 times in a row and got the same crash whenever Realm.getDefaultInstance was called when first starting the app.
He's working on Android 7.0 and Xperia L1.
I cannot reproduce this. The file is encrypted and I do not manually move/copy realm files. But note the size of the array is 0. What could be the problem?
Here's the log:
Fatal Exception: io.realm.exceptions.RealmFileException
Unable to open a realm at path '/data/data/.../files/484': Invalid top array (ref: 11680, size: 0) Exception backtrace: <backtrace not supported on this platform>
@RJFares We are currently investigating a corruption bug when using encrypted files. This may be related.
@unengchen It would help us if you can make a github repository with a complete application and step by step instructions on how to reproduce the issue.
@bmunkholm you can write a demo(self-startup), call realm.getInstance when app starts。debug demo using ADB(must use ADB to connect device, like that adb connect 192.168.1.22:5555) ,and the power off and restarted. the exception will occur likely.
The similar crash here. And it happened on production release.
Caused by io.realm.exceptions.RealmFileException: Unable to open a realm at path '/data/data/mobi.mangatoon.comics.aphone/files/default.realm': Invalid top array (ref: 38970648, size: 0) Path:. (Invalid top array (ref: 38970648, size: 0) Path: /data/data/mobi.mangatoon.comics.aphone/files/default.realm) (/data/data/mobi.mangatoon.comics.aphone/files/default.realm) in /Users/cm/Realm/realm-java-release/realm/realm-library/src/main/cpp/io_realm_internal_OsSharedRealm.cpp line 101
at io.realm.internal.OsSharedRealm.nativeGetSharedRealm(OsSharedRealm.java)
at io.realm.internal.OsSharedRealm.<init>(OsSharedRealm.java:171)
at io.realm.internal.OsSharedRealm.getInstance(OsSharedRealm.java:241)
at io.realm.internal.OsSharedRealm.getInstance(OsSharedRealm.java:231)
at io.realm.RealmCache.doCreateRealmOrGetFromCache(RealmCache.java:332)
at io.realm.RealmCache.createRealmOrGetFromCache(RealmCache.java:285)
at io.realm.Realm.getDefaultInstance(Realm.java:407)
Realm version(s): 5.15.1
Realm Sync feature enabled: Yes
Android Studio version: 3.5
Android Build Tools version: 28
Gradle version: 3.3.1
Android Device: Android 8.1.0、8.0、7.0、7.1.2
vivo 1724、samsung Galaxy Note9
People, you need to specify if you're using encryption or not.
@Zhuinden I do not use encryption
@hzy00 you can make a github repository with a complete application and step by step instructions on how to reproduce the issue.
We got same errors on production (we use encryption):
Caused by io.realm.exceptions.RealmFileException: Unable to open a realm at path '/data/data/<package_id>/files/encrypted.realm': Invalid mnemonic. top_ref[0]: 4B170, top_ref[1]: 6235653763633438, mnemonic: 35 65 0 61, fmt[0]: 9, fmt[1]: 51, flags: 32. (Invalid mnemonic. top_ref[0]: 4B170, top_ref[1]: 6235653763633438, mnemonic: 35 65 0 61, fmt[0]: 9, fmt[1]: 51, flags: 32) (/data/data/<package_id>/files/encrypted.realm) in /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsSharedRealm.cpp line 101
at io.realm.internal.OsSharedRealm.nativeGetSharedRealm(OsSharedRealm.java)
at io.realm.internal.OsSharedRealm.<init> + 49(OsSharedRealm.java:49)
at io.realm.internal.OsSharedRealm.getInstance + 13(OsSharedRealm.java:13)
at io.realm.internal.OsSharedRealm.getInstance + 5(OsSharedRealm.java:5)
at io.realm.RealmCache.b + 69(RealmCache.java:69)
at io.realm.RealmCache.a + 9(RealmCache.java:9)
at io.realm.Realm.b + 4(Realm.java:4)
other NDA code
@OlegNovosad what is the Realm version?
@OlegNovosad what is the Realm version?
6.0.2
i have same issue
if use Realm Java 6.0.2, i cant even build. The error show in android studio's logcat
if switch to 7.0.0-beta (latest), app might work but the realm file seems corrupted and cant be open by realm studio with same message "unable to open ... Invalid top array (ref: 2848, size: 11)"
Just had the same issue on Realm 6.1.0.
Fatal Exception: io.realm.exceptions.RealmFileException: Unable to open a realm at path '/data/data/<package_name>/files/database.realm': Invalid top array (ref: 20025432, size: 4)
Exception backtrace:
<backtrace not supported on this platform> Path:Exception backtrace:
<backtrace not supported on this platform>. (Invalid top array (ref: 20025432, size: 4)
Exception backtrace:
<backtrace not supported on this platform> Path: /data/data/<package_name>/files/database.realm
Exception backtrace:
<backtrace not supported on this platform>) (/data/data/<package_name>/files/database.realm) in /Users/cm/Realm/realm-java-release/realm/realm-library/src/main/cpp/io_realm_internal_OsSharedRealm.cpp line 101
at io.realm.internal.OsSharedRealm.nativeGetSharedRealm(OsSharedRealm.java)
at io.realm.internal.OsSharedRealm.<init>(OsSharedRealm.java:8)
at io.realm.internal.OsSharedRealm.getInstance(OsSharedRealm.java:12)
at io.realm.internal.OsSharedRealm.getInstance(OsSharedRealm.java:5)
at io.realm.RealmCache.doCreateRealmOrGetFromCache(RealmCache.java:11)
at io.realm.RealmCache.createRealmOrGetFromCache(RealmCache.java:2)
at io.realm.Realm.getInstance(Realm.java:4)
at <package_name>.realm.core.RealmHandler.useRealm(RealmHandler.java:2)
at <package_name>.realm.core.RealmHandler.a(RealmHandler.java:7)
at <package_name>.realm.core.RealmHandler.useRealm$default(RealmHandler.java:35)
at <package_name>.initializer.main.InitializerMain$initialize$1.invokeSuspend(InitializerMain.java:35)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.a(BaseContinuationImpl.java:5)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.java:2)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.os.HandlerThread.run(HandlerThread.java:67)
any update? i had the same issue too on Realm v7.0.0
The issue is with the realm studio version. It should work after upgrade the realm studio version. uninstall the old version of realm studio from your machine and install the other version from https://studio-releases.realm.io/
The issue is with the realm studio version. It should work after upgrade the realm studio version.
emm. how to upgrade the realm studio version?
The same issue happened with me on an iOS device in production and iOS simulator in debug mode.
Fatal error: 'try!' expression unexpectedly raised an error: Error Domain=io.realm Code=2 "Unable to open a realm at path '/Users/raj/Library/Developer/CoreSimulator/Devices/3B94EE68-69CA-40CA-9A0C-4401A3616B29/data/Containers/Data/Application/C298DC59-1776-41E9-B780-0D1607C8F874/Documents/default.realm': Invalid top array (ref: 46928, size: 11)
also happens to me in Realm 5.4.7
crash_info_entry_0
Fatal error: 'try!' expression unexpectedly raised an error: Error Domain=io.realm Code=2 "Unable to open a realm at path '': Invalid top array size (ref: 93672, size: 0) Exception backtrace: 0 Realm 0x0000000103bb0604 _ZNK5realm9SlabAlloc6verifyEv + 140 1 Realm 0x0000000103bd4ed8 _ZN5realm5Group18validate_top_arrayERKNS_5ArrayERKNS_9SlabAllocE + 1188 2 Realm 0x0000000103bd1488 _ZN5realm5Group6attachEmbb + 208 3 Realm 0x0000000103be18f0 _ZN5realm11TransactionC2ENSt3__110shared_ptrINS_2DBEEEPNS_9SlabAllocERNS3_12ReadLockInfoENS3_13TransactStageE + 332 4 Realm 0x0000000103bdd960 _ZN5realm2DB10start_readENS_9VersionIDE + 132 5 Realm 0x0000000103bdba44 _ZN5realm2DB7do_openERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEbbNS_9DBOptionsE + 3812 6 Realm 0x0000000103bde1fc _ZN5r
in production to some of the users
Please specify Realm-Java version when making these reports