-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Open
Labels
Description
⚠️ Before posting ⚠️
- This is a bug, not a question or an enhancement.
- I've searched for similar issues and didn't find a duplicate.
- I've written a clear and descriptive title for this issue, not just "Bug" or "Crash".
- I agree to follow Nextcloud's Code of Conduct.
Steps to reproduce
- Open Nextcloud on Android
- Switch to "Media" Tab, app is lagging, a few pictures are loaded (sometimes), but the view is still loading and freezes,
- after about 30 sekunds the app crashes with Callstack shown
Screen_Recording_20250529_111337_Nextcloud.mp4
Expected behaviour
App must not crash
Actual behaviour
App is crashing repeatedly, reproducibly, every time.
I have now observed at least two different exception call stacks.
Android version
15
Device brand and model
Samsung Galaxy S23+
Stock or custom OS?
Stock
Nextcloud android app version
3.31.1 - installed from F-Droid due to the Google Permissions affair
Nextcloud server version
30.0.10
Using a reverse proxy?
I don't know
Android logs (via windows with adb.exe and logcat)
Github error Body can not be longer than 65536 characters, logs here: https://pastebin.com/azQgx3Gu
Server error logs
Server is a hosted instance by Hetzner, so no access to logs (?)
Additional information
- Up until recently, the performance of media was "just" unusable, but app did not crash. I've now finished migrating my files to this server.
- Stats:
- ~122000 files in 1700 folders
- ~ 4.64TB
- "Memories" android app is still working
EDIT: Android logs added above.
Crash Info from within app (no touching)
Cause of error
Exception in thread "main" java.lang.OutOfMemoryError: Failed to allocate a 2064 byte allocation with 2076448 free bytes and 2027KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC.
at com.google.gson.stream.JsonReader.<init>(JsonReader.java:261)
at com.google.gson.Gson.newJsonReader(Gson.java:1078)
at com.google.gson.Gson.fromJson(Gson.java:1261)
at com.google.gson.Gson.fromJson(Gson.java:1171)
at com.google.gson.Gson.fromJson(Gson.java:1107)
at com.owncloud.android.datamodel.FileDataStorageManager.createFileInstance(FileDataStorageManager.java:1309)
at com.owncloud.android.datamodel.FileDataStorageManager.getGalleryItems(FileDataStorageManager.java:2541)
at com.owncloud.android.datamodel.FileDataStorageManager.getAllGalleryItems(FileDataStorageManager.java:2530)
at com.owncloud.android.ui.adapter.GalleryAdapter.showAllGalleryItems(GalleryAdapter.kt:159)
at com.owncloud.android.ui.fragment.GalleryFragment.showAllGalleryItems(GalleryFragment.java:401)
at com.owncloud.android.ui.fragment.GalleryFragment.handleSearchEvent(GalleryFragment.java:246)
at com.owncloud.android.ui.fragment.GalleryFragment.onActivityCreated(GalleryFragment.java:166)
at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:3161)
at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:639)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:289)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2214)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2109)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2052)
at androidx.fragment.app.FragmentController.execPendingActions(FragmentController.java:496)
at androidx.fragment.app.FragmentActivity.onResume(FragmentActivity.java:311)
at com.owncloud.android.ui.activity.BaseActivity.onResume(BaseActivity.java:115)
at com.owncloud.android.ui.activity.FileActivity.onResume(FileActivity.java:264)
at com.owncloud.android.ui.activity.FileDisplayActivity.onResume(FileDisplayActivity.java:1226)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1722)
at android.app.Activity.performResume(Activity.java:9533)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:5904)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:6007)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:274)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:250)
at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:183)
at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:109)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:81)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2895)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loopOnce(Looper.java:257)
at android.os.Looper.loop(Looper.java:342)
at android.app.ActivityThread.main(ActivityThread.java:9634)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:619)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929)App information
- ID:
com.nextcloud.client - Version:
30310190 - Build flavor:
generic
Device information
- Brand:
samsung - Device:
dm2q - Model:
SM-S916B - Id:
AP3A.240905.015.A2 - Product:
dm2qxeea
Firmware
- SDK:
35 - Release:
15 - Incremental:
S916BXXS8DYDB
Different Callstack, I touched the app while frozen while recording the screen video attached above
Exception in thread "main" java.lang.OutOfMemoryError: Failed to allocate a 24 byte allocation with 2494624 free bytes and 2436KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC.
at java.lang.StringFactory.newStringFromChars(StringFactory.java:124)
at com.google.gson.stream.JsonReader.nextQuotedValue(JsonReader.java:1090)
at com.google.gson.stream.JsonReader.nextName(JsonReader.java:881)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:511)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:40)
at com.google.gson.internal.bind.ArrayTypeAdapter.read(ArrayTypeAdapter.java:76)
at com.google.gson.Gson.fromJson(Gson.java:1361)
at com.google.gson.Gson.fromJson(Gson.java:1262)
at com.google.gson.Gson.fromJson(Gson.java:1171)
at com.google.gson.Gson.fromJson(Gson.java:1107)
at com.owncloud.android.datamodel.FileDataStorageManager.createFileInstance(FileDataStorageManager.java:1297)
at com.owncloud.android.datamodel.FileDataStorageManager.getGalleryItems(FileDataStorageManager.java:2541)
at com.owncloud.android.datamodel.FileDataStorageManager.getAllGalleryItems(FileDataStorageManager.java:2530)
at com.owncloud.android.ui.adapter.GalleryAdapter.showAllGalleryItems(GalleryAdapter.kt:159)
at com.owncloud.android.ui.fragment.GalleryFragment.showAllGalleryItems(GalleryFragment.java:401)
at com.owncloud.android.ui.fragment.GalleryFragment.handleSearchEvent(GalleryFragment.java:246)
at com.owncloud.android.ui.fragment.GalleryFragment.onRefresh(GalleryFragment.java:217)
at com.owncloud.android.ui.activity.FileActivity.refreshList(FileActivity.java:796)
at com.owncloud.android.ui.activity.FileDisplayActivity.lambda$observeWorkerState$20(FileDisplayActivity.java:1747)
at com.owncloud.android.ui.activity.FileDisplayActivity.$r8$lambda$dTn088xs0ZIZxumGcv-5JkrUGOw(Unknown Source:0)
at com.owncloud.android.ui.activity.FileDisplayActivity$$ExternalSyntheticLambda20.onChanged(D8$$SyntheticClass:0)
at androidx.lifecycle.LiveData.considerNotify(LiveData.java:133)
at androidx.lifecycle.LiveData.dispatchingValue(LiveData.java:151)
at androidx.lifecycle.LiveData.setValue(LiveData.java:309)
at androidx.lifecycle.LiveData$1.run(LiveData.java:93)
at android.os.Handler.handleCallback(Handler.java:959)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loopOnce(Looper.java:257)
at android.os.Looper.loop(Looper.java:342)
at android.app.ActivityThread.main(ActivityThread.java:9634)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:619)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929)Reactions are currently unavailable