Skip to content

[Bug]: v5.4.0 beta Crash on StartUp (java.lang.IllegalStateException) #6314

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
chrisdebian opened this issue May 19, 2025 · 13 comments · May be fixed by #6319
Open

[Bug]: v5.4.0 beta Crash on StartUp (java.lang.IllegalStateException) #6314

chrisdebian opened this issue May 19, 2025 · 13 comments · May be fixed by #6319
Assignees
Labels

Comments

@chrisdebian
Copy link

Summary

I submitted this by email, when the app crashed, but adding here for clarity.

The app tried to open, but crashed immediately, triggering the bug report via email.

I installed version 5.3.0~5b5aeead8 and this behaves as expected.

`USER_COMMENT=Opening the app
APP_VERSION_CODE=1051
APP_VERSION_NAME=5.4.0
ANDROID_VERSION=15
PHONE_MODEL=Pixel 6
STACK_TRACE=java.lang.RuntimeException: Unable to start activity ComponentInfo{fr.free.nrw.commons/fr.free.nrw.commons.contributions.MainActivity}: java.lang.IllegalStateException: Room cannot verify the data integrity. Looks like you've changed schema but forgot to update the version number. You can simply fix this by increasing the version number. Expected identity hash: acf149ff10775684ee87f489f28e0bd3, found: cf6130bbb8de1adab9a76ddd7e57633c
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4206)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4393)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:222)
at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:133)
at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:103)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:80)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2773)
at android.os.Handler.dispatchMessage(Handler.java:109)
at android.os.Looper.loopOnce(Looper.java:232)
at android.os.Looper.loop(Looper.java:317)
at android.app.ActivityThread.main(ActivityThread.java:8934)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:591)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
Caused by: java.lang.IllegalStateException: Room cannot verify the data integrity. Looks like you've changed schema but forgot to update the version number. You can simply fix this by increasing the version number. Expected identity hash: acf149ff10775684ee87f489f28e0bd3, found: cf6130bbb8de1adab9a76ddd7e57633c
at androidx.room.RoomOpenHelper.checkIdentity(RoomOpenHelper.kt:146)
at androidx.room.RoomOpenHelper.onOpen(RoomOpenHelper.kt:127)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.onOpen(FrameworkSQLiteOpenHelper.kt:287)
at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:426)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:316)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableOrReadableDatabase(FrameworkSQLiteOpenHelper.kt:232)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.innerGetDatabase(FrameworkSQLiteOpenHelper.kt:190)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getSupportDatabase(FrameworkSQLiteOpenHelper.kt:151)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.kt:104)
at androidx.room.RoomDatabase.inTransaction(RoomDatabase.kt:632)
at androidx.room.RoomDatabase.assertNotSuspendingTransaction(RoomDatabase.kt:451)
at androidx.room.RoomDatabase.query(RoomDatabase.kt:480)
at androidx.room.util.DBUtil.query(DBUtil.kt:75)
at fr.free.nrw.commons.contributions.ContributionDao_Impl$7.call(ContributionDao_Impl.java:1585)
at fr.free.nrw.commons.contributions.ContributionDao_Impl$7.call(ContributionDao_Impl.java:1581)
at androidx.room.RxRoom$5.subscribe(RxRoom.java:227)
at io.reactivex.internal.operators.single.SingleCreate.subscribeActual(SingleCreate.java:39)
at io.reactivex.Single.subscribe(Single.java:3603)
at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
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:264)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:307)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
at java.lang.Thread.run(Thread.java:1012)

IS_SILENT=false
USER_CRASH_DATE=2025-05-19T13:02:38.086+01:00
REPORT_ID=bb3c6bd1-6643-4dae-8692-0ee320b4d4bb
USER_EMAIL=
`

Steps to reproduce

Open app in Android, using the stock app icon.

Expected behaviour

The app should open and allow further actions to take place.

Actual behaviour

App briefly opened, then crashed.

Device name

Pixel 6

Android version

15

Commons app version

5.4.0

Device logs

USER_COMMENT=Opening the app
APP_VERSION_CODE=1051
APP_VERSION_NAME=5.4.0
ANDROID_VERSION=15
PHONE_MODEL=Pixel 6
STACK_TRACE=java.lang.RuntimeException: Unable to start activity ComponentInfo{fr.free.nrw.commons/fr.free.nrw.commons.contributions.MainActivity}: java.lang.IllegalStateException: Room cannot verify the data integrity. Looks like you've changed schema but forgot to update the version number. You can simply fix this by increasing the version number. Expected identity hash: acf149ff10775684ee87f489f28e0bd3, found: cf6130bbb8de1adab9a76ddd7e57633c
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4206)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4393)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:222)
at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:133)
at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:103)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:80)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2773)
at android.os.Handler.dispatchMessage(Handler.java:109)
at android.os.Looper.loopOnce(Looper.java:232)
at android.os.Looper.loop(Looper.java:317)
at android.app.ActivityThread.main(ActivityThread.java:8934)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:591)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
Caused by: java.lang.IllegalStateException: Room cannot verify the data integrity. Looks like you've changed schema but forgot to update the version number. You can simply fix this by increasing the version number. Expected identity hash: acf149ff10775684ee87f489f28e0bd3, found: cf6130bbb8de1adab9a76ddd7e57633c
at androidx.room.RoomOpenHelper.checkIdentity(RoomOpenHelper.kt:146)
at androidx.room.RoomOpenHelper.onOpen(RoomOpenHelper.kt:127)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.onOpen(FrameworkSQLiteOpenHelper.kt:287)
at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:426)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:316)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableOrReadableDatabase(FrameworkSQLiteOpenHelper.kt:232)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.innerGetDatabase(FrameworkSQLiteOpenHelper.kt:190)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getSupportDatabase(FrameworkSQLiteOpenHelper.kt:151)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.kt:104)
at androidx.room.RoomDatabase.inTransaction(RoomDatabase.kt:632)
at androidx.room.RoomDatabase.assertNotSuspendingTransaction(RoomDatabase.kt:451)
at androidx.room.RoomDatabase.query(RoomDatabase.kt:480)
at androidx.room.util.DBUtil.query(DBUtil.kt:75)
at fr.free.nrw.commons.contributions.ContributionDao_Impl$7.call(ContributionDao_Impl.java:1585)
at fr.free.nrw.commons.contributions.ContributionDao_Impl$7.call(ContributionDao_Impl.java:1581)
at androidx.room.RxRoom$5.subscribe(RxRoom.java:227)
at io.reactivex.internal.operators.single.SingleCreate.subscribeActual(SingleCreate.java:39)
at io.reactivex.Single.subscribe(Single.java:3603)
at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
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:264)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:307)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
at java.lang.Thread.run(Thread.java:1012)

IS_SILENT=false
USER_CRASH_DATE=2025-05-19T13:02:38.086+01:00
REPORT_ID=bb3c6bd1-6643-4dae-8692-0ee320b4d4bb
USER_EMAIL=

Screen-shots

No response

Would you like to work on the issue?

Prefer not

@nicolas-raoul
Copy link
Member

Thanks Chris for the report! 🙂

I have often have this issue when manually switching between versions. The workaround is to reset the app's data.

If normal users (as opposed to testers) also get the crash then obviously it would be a big issue.

@chrisdebian
Copy link
Author

Hi, @nicolas-raoul. This was after an update from the Play Store, and before I had to find and install the previous version's APK.

@RitikaPahwa4444
Copy link
Collaborator

Room cannot verify the data integrity. Looks like you've changed schema but forgot to update the version number. You can simply fix this by increasing the version number. Expected identity hash:...

I don't remember a schema change somehow, will take some time out to confirm this error message before releasing it to all the users.

@Discostu36
Copy link

I just wanted to confirm that this crash happens after a normal Google Play Store App update. The app works again after deleting the app data but regular users should not need to do this.

App version 5.4.0~f977e1677
Android 15
Motora Edge 50 neo

@nicolas-raoul
Copy link
Member

@Discostu36 By "normal", do you mean "not beta testing"? 😱

@Discostu36
Copy link

I meant that the issue happens after a "normal" beta update from Google Play, not a manual switch between versions.

@RitikaPahwa4444
Copy link
Collaborator

I also experienced a crash. This is a 100% reproducible issue and will likely happen to all the users. Thank you @chrisdebian @Discostu36 for reporting this!

@RitikaPahwa4444
Copy link
Collaborator

RitikaPahwa4444 commented May 21, 2025

I'll try bumping up the db version and reproducing this issue again as a mitigation step before figuring out the commit that might be causing this.

@chrisdebian
Copy link
Author

Would Renovate help with this?

@RitikaPahwa4444 RitikaPahwa4444 self-assigned this May 24, 2025
@RitikaPahwa4444 RitikaPahwa4444 linked a pull request May 24, 2025 that will close this issue
@RitikaPahwa4444
Copy link
Collaborator

Thanks @chrisdebian for the suggestion! Let me explore this a bit. I have raised #6319 to fix this crash. It will take some time for the Google Play review, but you can test the prodDebug apk available under the PR by the GitHub action :)

@chrisdebian
Copy link
Author

Thanks, @RitikaPahwa4444 . Not sure about the PR action, but I'll try.

Chris

@RitikaPahwa4444
Copy link
Collaborator

It's available on Google Play Store now.

@chrisdebian
Copy link
Author

It's available on Google Play Store now.

Not for me, yet; I'll keep refreshing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants