[GH-ISSUE #1444] F-Droid 1.17.0 - app crashing on start #1015

Closed
opened 2026-05-07 00:29:36 +02:00 by BreizhHardware · 4 comments

Originally created by @WIPocket on GitHub (Sep 21, 2025).
Original GitHub issue: https://github.com/binwiederhier/ntfy/issues/1444

🐞 Describe the bug

The ntfy app crashes on start after updating.

💻 Components impacted

Android app

💡 Screenshots and/or logs

type: logcat
osVersion: google/panther/panther:16/BP2A.250805.005/2025090800:user/release-keys
flags: dev options enabled
package: io.heckel.ntfy:33, targetSdk 34
buffers: main,system,crash,events,kernel
level: verbose

--------- switch to system
09-21 07:07:40.731 14845 14914 I DisplayManager: Choreographer implicitly registered for the refresh rate.
--------- switch to main
09-21 07:07:40.735 14845 14845 I io.heckel.ntfy: AssetManager2(0xb400ccec086fac28) locale list changing from [] to [en-US]
09-21 07:07:40.746 14845 14845 D AppCompatDelegate: Checking for metadata for AppLocalesMetadataHolderService : Service not found
09-21 07:07:40.747 14845 14845 I io.heckel.ntfy: AssetManager2(0xb400ccec086fee28) locale list changing from [] to [en-US]
09-21 07:07:40.767 14845 14845 D DesktopModeFlags: Toggle override initialized to: OVERRIDE_UNSET
09-21 07:07:40.808 14845 14845 D NtfyMainActivity: Create io.heckel.ntfy.ui.MainActivity@6166797
09-21 07:07:40.828 14845 14845 D NtfyMainActivity: Poll worker version matches: choosing KEEP as existing work policy
09-21 07:07:40.828 14845 14845 D NtfyMainActivity: Poll worker: Scheduling period work every 60 minutes
09-21 07:07:40.829 14845 14845 D NtfyMainActivity: ServiceStartWorker version matches: choosing KEEP as existing work policy
09-21 07:07:40.829 14845 14845 D NtfyMainActivity: ServiceStartWorker: Scheduling period work every 180 minutes
09-21 07:07:40.829 14845 14845 D NtfyMainActivity: Delete worker version matches: choosing KEEP as existing work policy
09-21 07:07:40.829 14845 14845 D NtfyMainActivity: Delete worker: Scheduling period work every 480 minutes
--------- switch to events
09-21 07:07:40.829 14845 14845 I wm_on_create_called: [Token=79556732,Component Name=io.heckel.ntfy.ui.MainActivity,Reason=performCreate,time=74ms]
09-21 07:07:40.829 14845 14845 I wm_on_start_called: [Token=79556732,Component Name=io.heckel.ntfy.ui.MainActivity,Reason=handleStartActivity,time=0ms]
--------- switch to main
09-21 07:07:40.831 14845 14845 D NtfyMainActivity: Battery: ignoring optimizations = true (we want this to be true); instant subscriptions = false; remind time reached = true; banner = false
09-21 07:07:40.831 14845 14845 D NtfyMainActivity: hasSelfHostedSubscriptions: false, wsReconnectRemindTimeReached: true, usingWebSockets: true, canScheduleExactAlarms: true
--------- switch to events
09-21 07:07:40.833 14845 14845 I wm_on_resume_called: [Token=79556732,Component Name=io.heckel.ntfy.ui.MainActivity,Reason=RESUME_ACTIVITY,time=1ms]
09-21 07:07:40.842 14845 14845 I wm_on_top_resumed_gained_called: [Token=79556732,Component Name=io.heckel.ntfy.ui.MainActivity,Reason=topStateChangedWhenResumed]
09-21 07:07:40.878 14845 14845 I viewroot_draw_event: [window=VRI[MainActivity],event=reportDrawFinished seqId=0]
--------- switch to main
09-21 07:07:40.890 14845 14873 D NtfyMainActivity: Checking global and subscription-specific 'muted until' timestamp
09-21 07:07:40.920 14845 14845 D InsetsController: hide(ime(), fromIme=false)
09-21 07:07:40.921 14845 14845 I ImeTracker: io.heckel.ntfy:bb8d0525: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
09-21 07:07:40.944 14845 14845 I ImeTracker: system_server:ea294646: onCancelled at PHASE_CLIENT_ON_CONTROLS_CHANGED
--------- switch to crash
09-21 07:07:41.347 14845 14845 E AndroidRuntime: FATAL EXCEPTION: main
09-21 07:07:41.347 14845 14845 E AndroidRuntime: Process: io.heckel.ntfy, PID: 14845
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 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: 208f16743f21d9c374f1314878eb93cb, found: 44fc291d937fdf02b9bc2d0abb10d2e0
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	at androidx.room.RoomOpenHelper.checkIdentity(RoomOpenHelper.kt:146)
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	at androidx.room.RoomOpenHelper.onOpen(RoomOpenHelper.kt:127)
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.onOpen(FrameworkSQLiteOpenHelper.kt:287)
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:454)
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:342)
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableOrReadableDatabase(FrameworkSQLiteOpenHelper.kt:232)
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.innerGetDatabase(FrameworkSQLiteOpenHelper.kt:190)
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getSupportDatabase(FrameworkSQLiteOpenHelper.kt:151)
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.kt:104)
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	at androidx.room.RoomDatabase.inTransaction(RoomDatabase.kt:632)
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	at androidx.room.RoomDatabase.assertNotSuspendingTransaction(RoomDatabase.kt:451)
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	at androidx.room.RoomDatabase.query(RoomDatabase.kt:480)
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	at androidx.room.util.DBUtil.query(DBUtil.kt:75)
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	at io.heckel.ntfy.db.SubscriptionDao_Impl$5.call(SubscriptionDao_Impl.java:241)
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	at io.heckel.ntfy.db.SubscriptionDao_Impl$5.call(SubscriptionDao_Impl.java:237)
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	at androidx.room.CoroutinesRoom$Companion$createFlow$1$1$1.invokeSuspend(CoroutinesRoom.kt:129)
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	at java.lang.Thread.run(Thread.java:1119)
09-21 07:07:41.347 14845 14845 E AndroidRuntime: 	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@c201fd6, Dispatchers.Main.immediate]

Just the crash:

type: crash
osVersion: google/panther/panther:16/BP2A.250805.005/2025090800:user/release-keys
flags: dev options enabled
package: io.heckel.ntfy:33, targetSdk 34
process: io.heckel.ntfy
processUptime: 2331 + 1518 ms
installer: org.fdroid.basic

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: 208f16743f21d9c374f1314878eb93cb, found: 44fc291d937fdf02b9bc2d0abb10d2e0
	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:454)
	at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:342)
	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 io.heckel.ntfy.db.SubscriptionDao_Impl.getByConnectorToken(SubscriptionDao_Impl.java:680)
	at io.heckel.ntfy.db.Repository.getSubscriptionByConnectorToken(Repository.kt:70)
	at io.heckel.ntfy.up.BroadcastReceiver$register$1.invokeSuspend(BroadcastReceiver.kt:56)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:100)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@7270158, Dispatchers.IO]
Originally created by @WIPocket on GitHub (Sep 21, 2025). Original GitHub issue: https://github.com/binwiederhier/ntfy/issues/1444 :lady_beetle: **Describe the bug** <!-- A clear and concise description of the problem. --> The ntfy app crashes on start after updating. :computer: **Components impacted** <!-- ntfy server, Android app, iOS app, web app --> Android app :bulb: **Screenshots and/or logs** <!-- If applicable, add screenshots or share logs help explain your problem. To get logs from the ... - ntfy server: Enable "log-level: trace" in your server.yml file - Android app: Go to "Settings" -> "Record logs", then eventually "Copy/upload logs" - web app: Press "F12" and find the "Console" window --> ``` type: logcat osVersion: google/panther/panther:16/BP2A.250805.005/2025090800:user/release-keys flags: dev options enabled package: io.heckel.ntfy:33, targetSdk 34 buffers: main,system,crash,events,kernel level: verbose --------- switch to system 09-21 07:07:40.731 14845 14914 I DisplayManager: Choreographer implicitly registered for the refresh rate. --------- switch to main 09-21 07:07:40.735 14845 14845 I io.heckel.ntfy: AssetManager2(0xb400ccec086fac28) locale list changing from [] to [en-US] 09-21 07:07:40.746 14845 14845 D AppCompatDelegate: Checking for metadata for AppLocalesMetadataHolderService : Service not found 09-21 07:07:40.747 14845 14845 I io.heckel.ntfy: AssetManager2(0xb400ccec086fee28) locale list changing from [] to [en-US] 09-21 07:07:40.767 14845 14845 D DesktopModeFlags: Toggle override initialized to: OVERRIDE_UNSET 09-21 07:07:40.808 14845 14845 D NtfyMainActivity: Create io.heckel.ntfy.ui.MainActivity@6166797 09-21 07:07:40.828 14845 14845 D NtfyMainActivity: Poll worker version matches: choosing KEEP as existing work policy 09-21 07:07:40.828 14845 14845 D NtfyMainActivity: Poll worker: Scheduling period work every 60 minutes 09-21 07:07:40.829 14845 14845 D NtfyMainActivity: ServiceStartWorker version matches: choosing KEEP as existing work policy 09-21 07:07:40.829 14845 14845 D NtfyMainActivity: ServiceStartWorker: Scheduling period work every 180 minutes 09-21 07:07:40.829 14845 14845 D NtfyMainActivity: Delete worker version matches: choosing KEEP as existing work policy 09-21 07:07:40.829 14845 14845 D NtfyMainActivity: Delete worker: Scheduling period work every 480 minutes --------- switch to events 09-21 07:07:40.829 14845 14845 I wm_on_create_called: [Token=79556732,Component Name=io.heckel.ntfy.ui.MainActivity,Reason=performCreate,time=74ms] 09-21 07:07:40.829 14845 14845 I wm_on_start_called: [Token=79556732,Component Name=io.heckel.ntfy.ui.MainActivity,Reason=handleStartActivity,time=0ms] --------- switch to main 09-21 07:07:40.831 14845 14845 D NtfyMainActivity: Battery: ignoring optimizations = true (we want this to be true); instant subscriptions = false; remind time reached = true; banner = false 09-21 07:07:40.831 14845 14845 D NtfyMainActivity: hasSelfHostedSubscriptions: false, wsReconnectRemindTimeReached: true, usingWebSockets: true, canScheduleExactAlarms: true --------- switch to events 09-21 07:07:40.833 14845 14845 I wm_on_resume_called: [Token=79556732,Component Name=io.heckel.ntfy.ui.MainActivity,Reason=RESUME_ACTIVITY,time=1ms] 09-21 07:07:40.842 14845 14845 I wm_on_top_resumed_gained_called: [Token=79556732,Component Name=io.heckel.ntfy.ui.MainActivity,Reason=topStateChangedWhenResumed] 09-21 07:07:40.878 14845 14845 I viewroot_draw_event: [window=VRI[MainActivity],event=reportDrawFinished seqId=0] --------- switch to main 09-21 07:07:40.890 14845 14873 D NtfyMainActivity: Checking global and subscription-specific 'muted until' timestamp 09-21 07:07:40.920 14845 14845 D InsetsController: hide(ime(), fromIme=false) 09-21 07:07:40.921 14845 14845 I ImeTracker: io.heckel.ntfy:bb8d0525: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN 09-21 07:07:40.944 14845 14845 I ImeTracker: system_server:ea294646: onCancelled at PHASE_CLIENT_ON_CONTROLS_CHANGED --------- switch to crash 09-21 07:07:41.347 14845 14845 E AndroidRuntime: FATAL EXCEPTION: main 09-21 07:07:41.347 14845 14845 E AndroidRuntime: Process: io.heckel.ntfy, PID: 14845 09-21 07:07:41.347 14845 14845 E AndroidRuntime: 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: 208f16743f21d9c374f1314878eb93cb, found: 44fc291d937fdf02b9bc2d0abb10d2e0 09-21 07:07:41.347 14845 14845 E AndroidRuntime: at androidx.room.RoomOpenHelper.checkIdentity(RoomOpenHelper.kt:146) 09-21 07:07:41.347 14845 14845 E AndroidRuntime: at androidx.room.RoomOpenHelper.onOpen(RoomOpenHelper.kt:127) 09-21 07:07:41.347 14845 14845 E AndroidRuntime: at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.onOpen(FrameworkSQLiteOpenHelper.kt:287) 09-21 07:07:41.347 14845 14845 E AndroidRuntime: at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:454) 09-21 07:07:41.347 14845 14845 E AndroidRuntime: at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:342) 09-21 07:07:41.347 14845 14845 E AndroidRuntime: at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableOrReadableDatabase(FrameworkSQLiteOpenHelper.kt:232) 09-21 07:07:41.347 14845 14845 E AndroidRuntime: at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.innerGetDatabase(FrameworkSQLiteOpenHelper.kt:190) 09-21 07:07:41.347 14845 14845 E AndroidRuntime: at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getSupportDatabase(FrameworkSQLiteOpenHelper.kt:151) 09-21 07:07:41.347 14845 14845 E AndroidRuntime: at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.kt:104) 09-21 07:07:41.347 14845 14845 E AndroidRuntime: at androidx.room.RoomDatabase.inTransaction(RoomDatabase.kt:632) 09-21 07:07:41.347 14845 14845 E AndroidRuntime: at androidx.room.RoomDatabase.assertNotSuspendingTransaction(RoomDatabase.kt:451) 09-21 07:07:41.347 14845 14845 E AndroidRuntime: at androidx.room.RoomDatabase.query(RoomDatabase.kt:480) 09-21 07:07:41.347 14845 14845 E AndroidRuntime: at androidx.room.util.DBUtil.query(DBUtil.kt:75) 09-21 07:07:41.347 14845 14845 E AndroidRuntime: at io.heckel.ntfy.db.SubscriptionDao_Impl$5.call(SubscriptionDao_Impl.java:241) 09-21 07:07:41.347 14845 14845 E AndroidRuntime: at io.heckel.ntfy.db.SubscriptionDao_Impl$5.call(SubscriptionDao_Impl.java:237) 09-21 07:07:41.347 14845 14845 E AndroidRuntime: at androidx.room.CoroutinesRoom$Companion$createFlow$1$1$1.invokeSuspend(CoroutinesRoom.kt:129) 09-21 07:07:41.347 14845 14845 E AndroidRuntime: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) 09-21 07:07:41.347 14845 14845 E AndroidRuntime: at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) 09-21 07:07:41.347 14845 14845 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156) 09-21 07:07:41.347 14845 14845 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651) 09-21 07:07:41.347 14845 14845 E AndroidRuntime: at java.lang.Thread.run(Thread.java:1119) 09-21 07:07:41.347 14845 14845 E AndroidRuntime: Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@c201fd6, Dispatchers.Main.immediate] ``` Just the crash: ``` type: crash osVersion: google/panther/panther:16/BP2A.250805.005/2025090800:user/release-keys flags: dev options enabled package: io.heckel.ntfy:33, targetSdk 34 process: io.heckel.ntfy processUptime: 2331 + 1518 ms installer: org.fdroid.basic 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: 208f16743f21d9c374f1314878eb93cb, found: 44fc291d937fdf02b9bc2d0abb10d2e0 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:454) at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:342) 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 io.heckel.ntfy.db.SubscriptionDao_Impl.getByConnectorToken(SubscriptionDao_Impl.java:680) at io.heckel.ntfy.db.Repository.getSubscriptionByConnectorToken(Repository.kt:70) at io.heckel.ntfy.up.BroadcastReceiver$register$1.invokeSuspend(BroadcastReceiver.kt:56) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115) at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:100) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684) Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@7270158, Dispatchers.IO] ``` <!-- :crystal_ball: **Additional context** --> <!-- Add any other context about the problem here. -->
BreizhHardware 2026-05-07 00:29:36 +02:00
  • closed this issue
  • added the
    🪲 bug
    label
Author
Owner

@bobemoe commented on GitHub (Sep 21, 2025):

I guess this was after upgrading to 1.17.0? A notice about this has been added to the README.md

<!-- gh-comment-id:3315699431 --> @bobemoe commented on GitHub (Sep 21, 2025): I guess this was after upgrading to 1.17.0? A notice about this has been added to the [README.md](https://github.com/binwiederhier/ntfy/blob/c9a0a40805f148c462abf182e15e02b8bb5f3cd3/README.md)
Author
Owner

@WIPocket commented on GitHub (Sep 21, 2025):

Thanks, I havent looked there. Ill leave this issue open for anyone else looking in issues first.

It looks like the recommended workaround doesnt work, as both the APKs available on github use a different signature to the app on F-Droid. I have also failed to downgrade over adb (as the app isnt debuggable). Is there anything else I can try, or should I just wait for F-Droid to pick up the new version?

<!-- gh-comment-id:3315997380 --> @WIPocket commented on GitHub (Sep 21, 2025): Thanks, I havent looked there. Ill leave this issue open for anyone else looking in issues first. It looks like the recommended workaround doesnt work, as both the APKs available on github use a different signature to the app on F-Droid. I have also failed to downgrade over adb (as the app isnt debuggable). Is there anything else I can try, or should I just wait for F-Droid to pick up the new version?
Author
Owner

@bobemoe commented on GitHub (Sep 21, 2025):

If you are happy to lose your local data and settings just uninstall and then you can install the differently signed one. But you probably don't want to reset everything!

As I am rooted I managed to use adb to copy the app data to my computer, then uninstall/reinstall and copy the data back, fix perms and it kinda worked! My channels and setting and previous notifications are all there but my notification sounds were not preserved! I think this is because notification settings are handled by the OS and were either cleared on uninstall or the app now has different ID.

And of course you will have to do this all again to switch back to the f-droid one later!

<!-- gh-comment-id:3316083504 --> @bobemoe commented on GitHub (Sep 21, 2025): If you are happy to lose your local data and settings just uninstall and then you can install the differently signed one. But you probably don't want to reset everything! As I am rooted I managed to use adb to copy the app data to my computer, then uninstall/reinstall and copy the data back, fix perms and it kinda worked! My channels and setting and previous notifications are all there but my notification sounds were not preserved! I think this is because notification settings are handled by the OS and were either cleared on uninstall or the app now has different ID. And of course you will have to do this all again to switch back to the f-droid one later!
Author
Owner

@binwiederhier commented on GitHub (Sep 21, 2025):

Dup of https://github.com/binwiederhier/ntfy-android/issues/127

<!-- gh-comment-id:3316321844 --> @binwiederhier commented on GitHub (Sep 21, 2025): Dup of https://github.com/binwiederhier/ntfy-android/issues/127
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ntfy#1015
No description provided.