Repository navigation
Crash when swiping trough images. #17231
Copy link
Copy link
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 larger folder with (non local) photos
- open image
- scroll trough a few ~15 images.
Expected behaviour
Not to crash.
Actual behaviour
Crashing after a switching between some images.
Android version
16
Device brand and model
Poco M2012K11AG
Stock or custom OS?
Custom (explain in "additional information")
Nextcloud android app version
20260619 dev
Nextcloud server version
33.0.5
Using a reverse proxy?
No
Android logs
Exception in thread "main" android.net.ConnectivityManager$TooManyRequestsException
at android.net.ConnectivityManager.convertServiceException(ConnectivityManager.java:4501)
at android.net.ConnectivityManager.sendRequestForNetwork(ConnectivityManager.java:4786)
at android.net.ConnectivityManager.registerDefaultNetworkCallbackForUid(ConnectivityManager.java:5467)
at android.net.ConnectivityManager.registerDefaultNetworkCallback(ConnectivityManager.java:5434)
at android.net.ConnectivityManager.registerDefaultNetworkCallback(ConnectivityManager.java:5408)
at com.nextcloud.client.network.ConnectivityServiceImpl.<init>(ConnectivityServiceImpl.kt:71)
at com.nextcloud.client.network.NetworkModule.connectivityService(NetworkModule.java:27)
at com.nextcloud.client.network.NetworkModule_ConnectivityServiceFactory.connectivityService(NetworkModule_ConnectivityServiceFactory.java:66)
at com.nextcloud.client.di.DaggerAppComponent$AppComponentImpl.connectivityService(DaggerAppComponent.java:6895)
at com.nextcloud.client.di.DaggerAppComponent$PreviewImageFragmentSubcomponentImpl.injectPreviewImageFragment(DaggerAppComponent.java:4041)
at com.nextcloud.client.di.DaggerAppComponent$PreviewImageFragmentSubcomponentImpl.inject(DaggerAppComponent.java:4036)
at com.nextcloud.client.di.DaggerAppComponent$PreviewImageFragmentSubcomponentImpl.inject(DaggerAppComponent.java:4022)
at dagger.android.DispatchingAndroidInjector.maybeInject(DispatchingAndroidInjector.java:113)
at dagger.android.DispatchingAndroidInjector.inject(DispatchingAndroidInjector.java:134)
at dagger.android.support.AndroidSupportInjection.inject(AndroidSupportInjection.java:75)
at dagger.android.support.AndroidSupportInjection.inject(AndroidSupportInjection.java:67)
at com.nextcloud.client.di.FragmentInjector.onFragmentPreAttached(FragmentInjector.kt:19)
at androidx.fragment.app.FragmentLifecycleCallbacksDispatcher.dispatchOnFragmentPreAttached(FragmentLifecycleCallbacksDispatcher.kt:78)
at androidx.fragment.app.FragmentStateManager.attach(FragmentStateManager.java:509)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:279)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2214)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2109)
at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:2002)
at androidx.fragment.app.BackStackRecord.commitNow(BackStackRecord.java:317)
at androidx.viewpager2.adapter.FragmentStateAdapter.placeFragmentInViewHolder(FragmentStateAdapter.java:343)
at androidx.viewpager2.adapter.FragmentStateAdapter.onViewAttachedToWindow(FragmentStateAdapter.java:274)
at androidx.viewpager2.adapter.FragmentStateAdapter.onViewAttachedToWindow(FragmentStateAdapter.java:74)
at androidx.recyclerview.widget.RecyclerView.dispatchChildAttached(RecyclerView.java:8377)
at androidx.recyclerview.widget.RecyclerView$5.addView(RecyclerView.java:954)
at androidx.recyclerview.widget.ChildHelper.addView(ChildHelper.java:131)
at androidx.recyclerview.widget.RecyclerView$LayoutManager.addViewInt(RecyclerView.java:9430)
at androidx.recyclerview.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:9388)
at androidx.recyclerview.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:9375)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1676)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1622)
at androidx.recyclerview.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1425)
at androidx.recyclerview.widget.LinearLayoutManager.scrollHorizontallyBy(LinearLayoutManager.java:1145)
at androidx.recyclerview.widget.RecyclerView.scrollStep(RecyclerView.java:2047)
at androidx.recyclerview.widget.RecyclerView.scrollByInternal(RecyclerView.java:2149)
at androidx.recyclerview.widget.RecyclerView.onTouchEvent(RecyclerView.java:3867)
at androidx.viewpager2.widget.ViewPager2$RecyclerViewImpl.onTouchEvent(ViewPager2.java:998)
at android.view.View.performOnTouchCallback(View.java:16820)
at android.view.View.dispatchTouchEvent(View.java:16773)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3137)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2811)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3143)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2826)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3143)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2826)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3143)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2826)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3143)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2826)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3143)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2826)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3143)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2826)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3143)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2826)
at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:503)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:2017)
at android.app.Activity.dispatchTouchEvent(Activity.java:4665)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:441)
at android.view.View.dispatchPointerEvent(View.java:17110)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:8349)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:8103)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7480)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7537)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7503)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:7674)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7511)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:7731)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7484)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7537)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7503)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7511)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7484)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:10697)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:10648)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:10616)
at android.view.ViewRootImpl.processRawInputEvent(ViewRootImpl.java:11039)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:10825)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:277)
at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:253)
at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:10796)
at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:10888)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1630)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1639)
at android.view.Choreographer.doCallbacks(Choreographer.java:1235)
at android.view.Choreographer.doFrame(Choreographer.java:1157)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1613)
at android.os.Handler.handleCallback(Handler.java:1070)
at android.os.Handler.dispatchMessage(Handler.java:125)
at android.os.Looper.dispatchMessage(Looper.java:333)
at android.os.Looper.loopOnce(Looper.java:263)
at android.os.Looper.loop(Looper.java:367)
at android.app.ActivityThread.main(ActivityThread.java:9287)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:566)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929)
Server error logs
Additional information
Lineage 23.2
Reactions are currently unavailable
Activity
Gdo23678 commentedon Jun 22, 2026
Just wondering if this might be related to the gallery loading issue in #17162?
If the app is trying to fetch the whole media library at once without pagination, it might also instantiate way too many PreviewImageFragments in the background, which then leak these NetworkCallbacks.
alperozturk96 commentedon Jul 2, 2026
Hello
Could you please try with last generated QA APK?
#17250
Yougoshatenshi commentedon Jul 2, 2026
Thanks, with QA i cant get it to crash anymore. I tried a few more folders.
Overall the responsiveness of how the folders load seems a bit better too.