-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
It seems the android client tries to fetch the full images for thumbnails in the media tab viewer in the app (see log).
In the files tab it correctly loads the pre-generated thumbnails, as they loaded slow before, but the performance went up after installing and running the preview app.
My web frontend is blazingly fast now for photo preview, even via wireguard. I have activated opcache, redis memory cache, http2 and configured mariadb pool and iops parameters.
- Upload big images (8000 x 3000)-ish
[ 2. Set media folder of apps' media tab to folder with 'big' images ]
[ 3. Run 'occ preview:generate-all' ] - Open Media Tab
- Compare performance with web interface photo app
I would guess what happens is one of those:
- the android app does not correctly promote it's capabilities regarding thumbnails.
- uses the wrong web API endpoint to ask for them
- some "thumbnail size" (or whatever) value gets incorrectly dropped or is named wrong, which gets ignored by the server
- the server does fallback to sending full sized images, because the app does something wrong.
Possibly related: #14932
Expected behaviour
The pictures load fast and media tab is responsive.
The preview images generated by 'occ preview:generate-all' are used.
Actual behaviour
Clicking on the media tab makes the app very unresponsive and slow.
There is a huge scroll stutter. If you try to scroll faster, app crashes somewhen.
Android version
16 build 2026030701
Device brand and model
Google Pixel 8 Pro
Stock or custom OS?
Custom (explain in "additional information")
Nextcloud android app version
33.0.0, 33.0.1 RC1
Nextcloud server version
32.0.6
Using a reverse proxy?
Yes
Android logs
type: logcat
osVersion: google/husky/husky:16/BP4A.260205.001/2026030701:user/release-keys
flags: dev options enabled
package: com.nextcloud.client:330000151, targetSdk 36
buffers: main,system,crash,events,kernel
level: verbose
GetNotificationsRemoteOperation: Successful response: {"ocs":{"meta":{"status":"ok","statuscode":200,"message":"OK"},"data":[]}}
03-17 17:38:04.448 6725 6855 D RefreshFolderOperation: 📂 eTag check
03-17 17:38:04.448 6725 6855 D RefreshFolderOperation: Path: /
03-17 17:38:04.448 6725 6855 D RefreshFolderOperation: Local eTag: 69b8838e72183
03-17 17:38:04.448 6725 6855 D RefreshFolderOperation: Remote eTag: 69b8838e72183
03-17 17:38:04.448 6725 6855 D RefreshFolderOperation: Changed: false
03-17 17:38:04.448 6725 6855 I RefreshFolderOperation: Checked <REDACTED_Federation_ID>/ : not changed
03-17 17:38:04.448 6725 6855 D RefreshFolderOperation: 💾 Remote folder is not changed, getting folder content from database
03-17 17:38:04.448 6725 6855 D FileDataStorageManager: getFolderContent - start
03-17 17:38:04.457 6725 6855 D FileDataStorageManager: getFolderContent - finished
03-17 17:38:04.457 6725 6855 D FileDataStorageManager: saving file: /
03-17 17:38:04.461 6725 6855 D RefreshFolderOperation: Send broadcast com.owncloud.android.operations.RefreshFolderOperation.EVENT_SINGLE_FOLDER_SHARES_SYNCED
03-17 17:38:04.560 6725 6725 D OCFileUtils: Getting image size for: PXL_20260109_202507900.jpg
03-17 17:38:04.560 6725 6725 D OCFileUtils: Using server-provided imageDimension: 8160 x 6144
03-17 17:38:04.691 6725 6798 D FileDataStorageManager: getGalleryItems - start: 1770230893000, 1773769083000
03-17 17:38:04.702 6725 6798 D FileDataStorageManager: getGalleryItems - query complete, list size: 155
03-17 17:38:04.706 6725 6798 D FileDataStorageManager: getGalleryItems - finished
03-17 17:38:04.734 6725 6798 D FileDataStorageManager: saving file: /InstantUpload/Camera/PXL_20260215_111150521.jpg
03-17 17:38:05.034 6725 6725 D OCFileUtils: Getting image size for: PXL_20260109_202513667.jpg
03-17 17:38:05.034 6725 6725 D OCFileUtils: Using server-provided imageDimension: 8160 x 6144
03-17 17:38:05.034 6725 6725 D OCFileUtils: Getting image size for: PXL_20260109_202507900.jpg
03-17 17:38:05.034 6725 6725 D OCFileUtils: Using server-provided imageDimension: 8160 x 6144
03-17 17:38:05.059 6725 6725 D OCFileUtils: Getting image size for: PXL_20260109_202458501.jpg
03-17 17:38:05.059 6725 6725 D OCFileUtils: Using server-provided imageDimension: 8160 x 6144
03-17 17:38:05.086 6725 6754 D GalleryImageGenerationJob: cached thumbnail is used for: PXL_20260109_202513667.jpg
03-17 17:38:05.110 6725 6805 D GalleryImageGenerationJob: cached thumbnail is used for: PXL_20260109_202507900.jpg
03-17 17:38:05.110 6725 6754 D ThumbnailsCacheManager: Scaling bitmap before caching: 00128225ocr8gypaz4w6
03-17 17:38:05.123 6725 6805 D ThumbnailsCacheManager: Scaling bitmap before caching: 00128226ocr8gypaz4w6
03-17 17:38:05.148 6725 6741 I com.nextcloud.client: NativeAlloc concurrent mark compact GC freed 5564KB AllocSpace bytes, 7(140KB) LOS objects, 75% free, 17MB/70MB, paused 455us,787us total 114.742ms
03-17 17:38:05.544 6725 6725 D OCFileUtils: Getting image size for: PXL_20260109_120010316.jpg
03-17 17:38:05.544 6725 6725 D OCFileUtils: Using server-provided imageDimension: 6144 x 8160
03-17 17:38:06.019 6725 6725 D OCFileUtils: Getting image size for: PXL_20260109_202458501.jpg
03-17 17:38:06.019 6725 6725 D OCFileUtils: Using server-provided imageDimension: 8160 x 6144
03-17 17:38:06.019 6725 6725 D OCFileUtils: Getting image size for: PXL_20260109_120010316.jpg
03-17 17:38:06.019 6725 6725 D OCFileUtils: Using server-provided imageDimension: 6144 x 8160
03-17 17:38:06.041 6725 6725 I Choreographer: Skipped 259 frames! The application may be doing too much work on its main thread.
03-17 17:38:06.054 6725 6805 D GalleryImageGenerationJob: cached thumbnail is used for: PXL_20260109_202458501.jpg
03-17 17:38:06.096 6725 6754 D GalleryImageGenerationJob: cached thumbnail is used for: PXL_20260109_120010316.jpg
03-17 17:38:06.096 6725 6805 D ThumbnailsCacheManager: Scaling bitmap before caching: 00128224ocr8gypaz4w6
03-17 17:38:06.120 6725 6725 D OCFileListDelegate: setGalleryImage.onSuccess()
03-17 17:38:06.120 6725 6725 D OCFileListDelegate: setGalleryImage.onSuccess()
03-17 17:38:06.120 6725 6725 D OCFileListDelegate: setGalleryImage.onSuccess()
03-17 17:38:06.120 6725 6725 D OCFileListDelegate: setGalleryImage.onSuccess()
03-17 17:38:06.120 6725 6725 D FileDisplayActivity: Received broadcast com.owncloud.android.operations.RefreshFolderOperation.EVENT_SINGLE_FOLDER_SHARES_SYNCED
03-17 17:38:06.124 6725 6725 D ExtendedListFragment: Updating setMessageForEmptyList
03-17 17:38:06.124 6725 6725 D FileDataStorageManager: getGalleryItems - start: 0, 9223372036854775807
03-17 17:38:06.126 6725 6754 D ThumbnailsCacheManager: Scaling bitmap before caching: 00128223ocr8gypaz4w6
03-17 17:38:06.161 6725 6749 I HWUI : Davey! duration=2417ms; Flags=0, FrameTimelineVsyncId=12669818, IntendedVsync=86808748595006, Vsync=86808906997189, InputEventId=0, HandleInputStart=86808914844710, AnimationStart=86808914845321, PerformTraversalsStart=86808917873722, DrawStart=86811073972641, FrameDeadline=86808765195006, FrameStartTime=86808914728947, FrameInterval=8333663, WorkloadTarget=16600000, SyncQueued=86811075023504, SyncStart=86811075075953, IssueDrawCommandsStart=86811076089056, SwapBuffers=86811154391464, FrameCompleted=86811166222112, DequeueBufferDuration=11719, QueueBufferDuration=221557, GpuCompleted=86811166222112, SwapBuffersCompleted=86811154678126, DisplayPresentTime=86810100926783, CommandSubmissionCompleted=86811154391464,
03-17 17:38:06.301 6725 6725 D FileDataStorageManager: getGalleryItems - query complete, list size: 5008
03-17 17:38:06.323 6725 6725 D FileDataStorageManager: getGalleryItems - finished
03-17 17:38:06.332 6725 6725 D GalleryAdapter: invalidating caches
03-17 17:38:06.333 6725 6725 D EmptyRecyclerView: no need to configure empty view, state didn't change
03-17 17:38:06.333 6725 6725 D GalleryFragment: End gallery search
03-17 17:38:06.333 6725 6725 D OCFileListDelegate: setGalleryImage.onSuccess()
03-17 17:38:06.333 6725 6725 D OCFileListDelegate: setGalleryImage.onSuccess()
03-17 17:38:06.334 6725 6725 I Choreographer: Skipped 34 frames! The application may be doing too much work on its main thread.
03-17 17:38:06.335 6725 6725 D OCFileUtils: Getting image size for: Foto #9238909 (c) <REDACTED_Name>
03-17 17:38:06.335 6725 6725 D OCFileUtils: Using server-provided imageDimension: 2006 x 1505
03-17 17:38:06.335 6725 6725 D OCFileUtils: Getting image size for: Foto #9253000 (c) <REDACTED_Name>
03-17 17:38:06.335 6725 6725 D OCFileUtils: Using server-provided imageDimension: 938 x 1251
03-17 17:38:06.348 6725 6725 D OCFileUtils: Getting image size for: Foto #9238909 (c) <REDACTED_Name>
03-17 17:38:06.348 6725 6725 D OCFileUtils: Using server-provided imageDimension: 3008 x 2000
03-17 17:38:06.348 6725 6725 D OCFileUtils: Getting image size for: Foto #9212874 (c) <REDACTED_Name>
03-17 17:38:06.348 6725 6725 D OCFileUtils: Using server-provided imageDimension: 3000 x 2000
03-17 17:38:06.360 6725 6757 D GalleryImageGenerationJob: cached thumbnail is used for: Foto #9238909 (c) ~2.jpg
03-17 17:38:06.376 6725 6810 D GalleryImageGenerationJob: cached thumbnail is used for: Foto #9253000 (c) ~5.jpg
03-17 17:38:06.384 6725 6757 D ThumbnailsCacheManager: Scaling bitmap before caching: 00128191ocr8gypaz4w6
03-17 17:38:06.387 6725 6810 D ThumbnailsCacheManager: Scaling bitmap before caching: 00128193ocr8gypaz4w6
03-17 17:38:06.397 6725 6725 D OCFileUtils: Getting image size for: PXL_20260109_202513667.jpg
03-17 17:38:06.397 6725 6725 D OCFileUtils: Using server-provided imageDimension: 8160 x 6144
03-17 17:38:06.397 6725 6725 D OCFileUtils: Getting image size for: PXL_20260109_202507900.jpg
03-17 17:38:06.397 6725 6725 D OCFileUtils: Using server-provided imageDimension: 8160 x 6144
03-17 17:38:06.408 6725 6810 D GalleryImageGenerationJob: cached thumbnail is used for: Foto #9212874 (c) .jpg
03-17 17:38:06.426 6725 6804 D GalleryImageGenerationJob: cached thumbnail is used for: Foto #9238909 (c) .jpg
03-17 17:38:06.442 6725 6810 D ThumbnailsCacheManager: Scaling bitmap before caching: 00128184ocr8gypaz4w6
03-17 17:38:06.445 6725 6804 D ThumbnailsCacheManager: Scaling bitmap before caching: 00128186ocr8gypaz4w6
03-17 17:38:06.464 6725 6725 D OCFileUtils: Getting image size for: PXL_20260109_202458501.jpg
03-17 17:38:06.464 6725 6725 D OCFileUtils: Using server-provided imageDimension: 8160 x 6144
03-17 17:38:06.464 6725 6725 D OCFileUtils: Getting image size for: PXL_20260109_120010316.jpg
03-17 17:38:06.464 6725 6725 D OCFileUtils: Using server-provided imageDimension: 6144 x 8160
03-17 17:38:06.479 6725 6757 D GalleryImageGenerationJob: cached thumbnail is used for: PXL_20260109_202513667.jpg
03-17 17:38:06.497 6725 6804 D GalleryImageGenerationJob: cached thumbnail is used for: PXL_20260109_202507900.jpg
03-17 17:38:06.508 6725 6757 D ThumbnailsCacheManager: Scaling bitmap before caching: 00128225ocr8gypaz4w6
03-17 17:38:06.526 6725 6810 D GalleryImageGenerationJob: cached thumbnail is used for: PXL_20260109_202458501.jpg
03-17 17:38:06.532 6725 6804 D ThumbnailsCacheManager: Scaling bitmap before caching: 00128226ocr8gypaz4w6
03-17 17:38:06.540 6725 6725 D OCFileListDelegate: setGalleryImage.onSuccess()
03-17 17:38:06.540 6725 6725 D OCFileListDelegate: setGalleryImage.onSuccess()
03-17 17:38:06.540 6725 6725 D OCFileListDelegate: setGalleryImage.onSuccess()
03-17 17:38:06.540 6725 6725 D OCFileListDelegate: setGalleryImage.onSuccess()
03-17 17:38:06.540 6725 6725 D OCFileListDelegate: setGalleryImage.onSuccess()
03-17 17:38:06.540 6725 6725 D OCFileListDelegate: setGalleryImage.onSuccess()
03-17 17:38:06.542 6725 6725 D OCFileUtils: Getting image size for: PXL_20260109_115948910.jpg
03-17 17:38:06.542 6725 6725 D OCFileUtils: Using server-provided imageDimension: 6144 x 8160
03-17 17:38:06.557 6725 6754 D GalleryImageGenerationJob: cached thumbnail is used for: PXL_20260109_120010316.jpg
03-17 17:38:06.557 6725 6810 D ThumbnailsCacheManager: Scaling bitmap before caching: 00128224ocr8gypaz4w6
03-17 17:38:06.564 6725 6754 D ThumbnailsCacheManager: Scaling bitmap before caching: 00128223ocr8gypaz4w6
03-17 17:38:07.040 6725 6725 D OCFileUtils: Getting image size for: PXL_20260109_103048361.jpg
03-17 17:38:07.040 6725 6725 D OCFileUtils: Using server-provided imageDimension: 8160 x 6144
03-17 17:38:07.527 6725 6725 D OCFileUtils: Getting image size for: PXL_20260109_115948910.jpg
03-17 17:38:07.527 6725 6725 D OCFileUtils: Using server-provided imageDimension: 6144 x 8160
03-17 17:38:07.527 6725 6725 D OCFileUtils: Getting image size for: PXL_20260109_103048361.jpg
03-17 17:38:07.527 6725 6725 D OCFileUtils: Using server-provided imageDimension: 8160 x 6144
03-17 17:38:07.555 6725 6754 D GalleryImageGenerationJob: cached thumbnail is used for: PXL_20260109_115948910.jpg
03-17 17:38:07.557 6725 6725 I Choreographer: Skipped 121 frames! The application may be doing too much work on its main thread.
Server error logs
-Additional information
Graphene OS stable realease channel, updated