mirror of
https://github.com/immich-app/immich.git
synced 2026-03-02 22:57:45 -05:00
[beta] IOS app tries to Upload every Asset again (Icloud Assets) #6141
Open
opened 2026-02-20 04:08:46 -05:00 by deekerman
·
82 comments
No Branch/Tag specified
main
renovate/typescript-projects
release/next
renovate/github-actions
chore/translations
push-nwxlpmyzkyrl
push-wzwotsylzylq
push-zpwsovysllvn
push-zunuwtznrlpm
renovate/opentofu-1.x
renovate/node
push-rsywxvptwxuv
renovate/prom-prometheus
renovate/docker.io-valkey-valkey-9
push-suusrsrnmzrp
push-xyozownmuwqp
csp-policy
uhthomas/fix-mobile-video-state
uhthomas/fix-mobile-hero-height
feat/use-native-clients
uhthomas/chore-mobile-simplify-scroll
feat/mobile-edit-3-mobile-sync-handling
feat/panorama-tiles
refactor/zod-migration
fix/maintenance-reload
refactor/restores-file-interceptor
uhthomas/fix-mobile-inconsistent-asset-detials-background
postgres-socketio
claude/auto-screenshot-web-changes-Y7efI
visual-review/pr-26535
push-lvyturrtwkrq
feat/notification
feat/library-offline-stats
feat/checksum-algorithm-indicator
feat/library-offline-count
uhthomas/feat-mobile-search-results
fix/bring-back-globalkeys
fix/map-webgl-error
feat/mobile-ocr
feat/custom-date-range
fix/mobile-video-aspect-ratio
fix/ml-ocr-batch-size
fix/timeline-rtl
feat/integrity-checks-izzy
uhthomas/fix-mobile-search-results
renovate/flutter
uhthomas/feat-sort-smart-search
renovate/github-cqlabs-homebrew-dcm-1.x
feat/video-player
feat/mobile-editing
refactor/remove-replace-with-upload
uhthomas/chore-mobile-maplibre
uhthomas/mobile-fix-asset-details-album-pop
feat/crawl-wrapper
feat/open-in-browser
push-skvzqoozqkpl
feat/edit-filters
fix/locale-settings-desc
feat/pg-queue
refactor/asset-upload
renovate/connectivity_plus-7.x
better-project-structure
uhthomas/mobile-feat-asset-viewer-details
fix/ml-rocm-build
fix/25803
feat/asset-file-apis
midzelis/wip
feature/bottom-buttons-order
sqlite_thumbs
fix-keep-correct-ios-shared-album-asset
fix-memory-generation-and-display
push-vpxwmwwxwnvw
fix-migration-width-height
revert/prettier-translations
shared-deep-link-handler
feat/thumbnail-native-clients
feat/platform-clients
fix/foreground-cloud-sync
filter-by-person
feat/csp
refactor/sidebar
fix/disable-editing
fix/view-timeline-deeplink
image-zoom-on-slow-connection
fix/merged-edited-assets
open-api-fix
feat/create-job-with-dto
use-toast-primary
feat/vitest-4
feat/ios-fastlane-match
match-signing
fix-update-time-update-timeline
feat/modal-routes
feature/mobile-view-asset-owner
feat/system-settings
feature/show-activity-count
better-info-in-asset-viewer
fix/all-people-count
feat/location-favorites
feature/rearrange-buttons-2
fix/download-storage-template
feat/kb-shortcuts-mobile
fix/people-count
push-qolzzzzxrvvn
chore/originals-in-asset-files
feat/asset-size-columns
ben/tree-a11y
new-search-filter-ui
refactor/expectSelectedReadonly
refactor/mobile-grdb
push-qvuktpxmkknu
feat/mobile-native-local-sync
refactor/timeline_ops
fix/scrubber_end
feat/version.txt
feat/context-menus
feat/server-chunked-uploads
refactor/virtualsegment
refactor/rename_daymonth_groups
fix/restrict-android-bg-worker
feat/android-periodic-worker
fix-remote-sync-clean-up
refactor/timeline_move_ops
fix/timeline_split_selectable
feat/keyboard_actions_help_modal
feat/static_frontend
feat/notification-warnign-android
feat/plugins2
feat/plugins
test/create-workflow-token-action
fix/docs-force
debug/search-result-similarity
debug/cf-chunked-uploads
feat/eslint_rule
feat/search-filter-album/web
refactor/timeline_photostream
refactor/timelineasset_asset
feat/session-permissions
feat/timeline_photostream_assetnav
feat/timeline_minor_optimize
feat/timeline_perf_nocomp
feat/timeline_search_results_actions
feat/timeline_search_results_page
fix/timeline_padding
fix/timeline_search_reactivity_warnings
feat/timeline_scrollbar
feat/timeline_stream_withviewer
fix/timeline_back_forth_nav
refactor/timeline_photostream_component
fix/generated-files-checks
fix/locate-button-local
chore/base-image-mimalloc
refactor/timeline_assetlayout
refactor/timeline_selectable
refactor/timeline_aware_actions
refactor/timeline_monthsegment
feat/remove-old-pages
chore/deps-gradle
tmp_photostream
tmp/lcms
feat/mobile-dynamic-thumbnails
fix/mobile-finer-thumbnail-concurrency
refactor/timeline1
refactor/extract_photostream
refactor/rename_load_api
refactor/timeline2
refactor/timeline3
feat/multi-select-asset-viewer
feat-no-thumbhash-cache
refactor/asset_grid
feat/faster-access-checks
fix/18991
fix/19543
chore/temp-remove
fix/21419
feat/mobile-hdr-images
chore/update-mise-lockfile
feat/mise-server-checks
feat/mise-ci
feat/windows-2025
feat/dev_cli
refactor/mobile-migrate-clients
fix/map-theme
fix/require-checkbox
chore/use_swc
feat/efficient-thumbnail-decoding
refactor/mobile-thumbhash
refactor/mobile-thumbhash-new
feat/beta-background-upload
fix/beta-timeline-memories-setting
fix/failed-uploads-not-removed
feat/mobile-shared-album
feat/groups
drift-map-page
drift-auth-user-sync
fix/disable-memory
feat/add-to-album-action
edit-date-time-action
drift-people-page
sqlite-remove-isIn
chore/required-reviewers
refact/asset-manager
fix/folder-sort
pnpm
feat/widget-multiple-server-urls
chore/medium-tests-dbname
fix/web-no-iterator-find
fix/map-pan-interruption
track-livephotos
timeline_events
chore/oxlint-migration
feat/maintenance-worker
feat/dav
chore/demo-snapshot
refactor/server-side-dedupe
feat/integrity-checks
dev/recognition-eval
lighter_buckets_test
perf/postgres-queue
postgres-queue
focus_rings
refactor/web-stores-1
refactor/add-to-taken
feat/sort-places
vet
tmp/demo-snapshot-preview
fix/server-migration-file-extension
fix/asset-update-race-condition
rknn-toolkit-lite2
refactor/mobile-split-up-search-page
feature/Add-rocm-support-for-machine-learning
feat/rocm
chore/async-hash-file
feat/shared-link-view-count
feat/rotation
feat/graphql
feat/job-ids
feat/ignore-library-permission-error
feat/docker-compose-builder
feat/kysely-typeorm
mobile/onboarding
no-video-player
fix/server-qsv-output-format
chore/server-geodata-tweaks
mobile/native-video-player-no-hero
feat/xxhash
fix/docs-concurrency
feat/local-tileserver
refactor/exif-orientation
original-path-infix
refactor/mobile/login-form-1
feat/server-editor-endpoints
fix/server-qsv-vbr
fix-mobile-db-problems
feat/ml-armnn-conversion
feat/mobile/backup-with-album-info
feat/fast-initial-sync-1
chore/handle-output_dims
feat/unassign-faces
feat/shortcuts-on-asset-grid
feat/capacitor-mobile-app-poc
feat/server-nvenc-hw-decoding
fix/mobile-fetch-non-archive
web/automation-ui
feat/mobile-server-endpoint-save-dropdown
object-storage
feat/memories-animations
dev/metrics
ml/tflite
feat/ml-export-cli
v2.5.6
v2.5.5
v2.5.4
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.1
v2.4.0
v2.3.1
v2.3.0
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.0
v2.0.1
v2.0.0
v1.144.1
v1.144.0
v1.143.1
v1.143.0
v1.142.1
v1.142.0
v1.141.1
v1.141.0
v1.140.1
v1.140.0
v1.139.4
v1.139.3
v1.139.2
v1.139.1
v1.139.0
v1.138.1
v1.138.0
v1.137.3
v1.137.2
v1.137.1
v1.137.0
v1.136.0
v1.135.3
v1.135.2
v1.135.1
v1.135.0
v1.134.0
v1.133.1
v1.133.0
v1.132.3
v1.132.2
v1.132.1
v1.132.0
v1.131.3
v1.131.2
v1.131.1
v1.131.0
v1.130.3
v1.130.2
v1.130.1
v1.130.0
v1.129.0
v1.128.0
v1.127.0
v1.126.1
v1.126.0
v1.125.7
v1.125.6
v1.125.5
v1.125.4
v1.125.3
v1.125.2
v1.125.1
v1.125.0
v1.124.2
v1.124.1
v1.124.0
v1.123.0
v1.122.3
v1.122.2
v1.122.1
v1.122.0
v1.121.0
v1.120.2
v1.120.1
v1.120.0
v1.119.1
v1.119.0
v1.118.2
v1.118.1
v1.118.0
v1.117.0
v1.116.2
v1.116.1
v1.116.0
v1.115.0
v1.114.0
v1.113.1
v1.113.0
v1.112.1
v1.112.0
v1.111.0
v1.110.0
v1.109.2
v1.109.1
v1.109.0
v1.108.0
v1.107.2
v1.107.1
v1.107.0
v1.106.4
v1.106.3
v1.106.2
v1.106.1
v1.106.0
v1.105.1
v1.105.0
v1.104.0
v1.103.1
v1.103.0
v1.102.3
v1.102.2
v1.102.1
v1.102.0
v1.101.0
v1.100.0
v1.99.0
v1.98.2
v1.98.1
v1.98.0
v1.97.0
v1.96.0
v1.95.1
v1.95.0
v1.94.1
v1.94.0
v1.93.3
v1.93.2
v1.93.1
v1.93.0
v1.92.1
v1.92.0
v1.91.4
v1.91.3
v1.91.2
v1.91.1
v1.91.0
v1.90.2
v1.90.1
v1.90.0
v1.89.0
v1.88.2
v1.88.1
v1.88.0
v1.87.0
v1.86.0
v1.85.0
v1.84.0
v1.83.0
v1.82.1
v1.82.0
v1.81.1
v1.81.0
v1.80.0
v1.79.1
v1.79.0
v1.78.1
v1.78.0
v1.77.0
v1.76.1
v1.76.0
v1.75.2
v1.75.1
v1.75.0
v1.74.0
v1.73.0
v1.72.2
v1.72.1
v1.72.0
v1.71.0
v1.70.0
v1.69.0
v1.68.0
v1.67.2
v1.67.1
v1.67.0
v1.66.1
v1.66.0
v1.65.0
v1.64.0
v1.63.2
v1.63.1
v1.63.0
v1.62.1
v1.62.0
v1.61.0
v1.60.0
v1.59.1
v1.59.0
v1.58.0
v1.57.1
v1.57.0
v1.56.2
v1.56.1
v1.56.0
v1.55.1
v1.55.0
v1.54.1
v1.54.0
v1.53.0
v1.52.1
v1.52.0
v1.51.2
v1.51.1
v1.51.0
v1.50.1
v1.50.0
v1.49.0
v1.48.1
v1.48.0
v1.47.3
v1.47.2
v1.47.1
v1.47.0
v1.46.1
v1.46.0
v1.45.0
v1.44.0
v1.43.1
v1.43.0
v1.42.0_65-dev
v1.41.1_64-dev
v1.41.0_64-dev
v1.40.1_63-dev
v1.40.0_63-dev
v1.39.0_61-dev
v1.38.2_60-dev
v1.38.1_60-dev
v1.38.0_60-dev
v1.37.0_58-dev
v1.36.2_56-dev
v1.36.1_55-dev
v1.36.0_55-dev
v1.35.0_54-dev
v1.34.0_53-dev
v1.33.1_52-dev
v1.33.0_52-dev
v1.32.1_51-dev
v1.32.0_50-dev
v1.31.1_49-dev
v1.31.0_49-dev
v1.30.2_48-dev
v1.30.0_46-dev
v1.29.6_45-dev
v1.29.6_44-dev
v1.29.5_44-dev
v1.29.4_44-dev
v1.29.3_43-dev
v1.29.2_43-dev
v1.29.1_43-dev
v1.29.0_42-dev
v1.28.4_41-dev
v1.28.4_42-dev
v1.28.3_41-dev
v1.28.2_40-dev
v1.28.1_39-dev
v1.28.0_38-dev
v1.27.0_37-dev
v1.26.0_36-dev
v1.25.0_35-dev
v1.24.0_34-dev
v1.23.0_33-dev
v1.22.0_32-dev
v1.21.1_31-dev
v1.21.0_31-dev
v1.20.3_30-dev
v1.20.2_30-dev
v1.20.1_30-dev
v1.20.0_30-dev
v1.19.1_29-dev
v1.19.0_29-dev
v1.18.0_27-dev
v1.17.0_25-dev
v1.16.0_23-dev
v1.15.1_21-dev
v1.15.0_21-dev
v1.14.0_21-dev
v1.13.0_20-dev
v1.12.0_18-dev
v1.11.0_17-dev
v1.10.0_15-dev
v1.9.1_14-dev
v1.9.0_13-dev
v1.8.0_12-dev
v1.7.0_11-dev
v1.6.0_10-dev
v1.5.1+9-dev
v1.5.0+8-dev
v1.4.0+7-dev
v1.4.0+6-dev
v1.4.0-dev
v1.3.0-dev
v1.3.1-dev
v0.6-dev
v0.5-dev
v0.4-dev
v0.3-dev
v0.2-dev
first-android-release
Labels
Clear labels
accessibility
changelog:enhancement
changelog:security
changelog:skip
changelog:translation
cli
date-time
dependencies
documentation
external-library
format
good first issue
mobile-beta
mobile-beta
mobile-beta
needs-answer
nice to have
sharing
tech-debt
📱mobile
🖥️web
🗄️server
🧠machine-learning
No labels
accessibility
changelog:enhancement
changelog:security
changelog:skip
changelog:translation
cli
date-time
dependencies
documentation
external-library
format
good first issue
mobile-beta
mobile-beta
mobile-beta
needs-answer
nice to have
sharing
tech-debt
📱mobile
🖥️web
🗄️server
🧠machine-learning
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
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/immich#6141
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Magnus987 on GitHub (Jul 27, 2025).
I have searched the existing issues, both open and closed, to make sure this is not a duplicate report.
The bug
After activating the new beta version and turning on backup, the Immich iOS app is trying to upload every asset again, even though I had already successfully uploaded the entire selected album before switching to the beta version.
The Immich server does not reject the duplicates but simply stores the photos and videos twice. Re-selecting the album doesn't help, nor does restarting the app or phone. I have my assets also stored in Icloud but i couldnt test if this bug effects only icloud assets. The server is directly reached with local IP adress.
#Edit: The Server does reject the duplicates, I was wrong with that.
Anyways I really wanted to say thanks for you incredible work! This project is by far my favorite Open Source project.
I love these insane active development with amazing features. I convinced my whole (non tech) family to use it, they are in love too! Thank you!
The OS that Immich Server is running on
Ubuntu Server 24.04
Version of Immich Server
1.136.0
Version of Immich Mobile App
1.136.0 build.211
Platform with the issue
Your docker-compose.yml content
Your .env content
Reproduction steps
Relevant log output
Additional information
No response
@alextran1502 commented on GitHub (Jul 27, 2025):
Can you help getting the screenshot of the beta stats page under the beta switching button?
@Magnus987 commented on GitHub (Jul 27, 2025):
Sure, here are some screenshots from the App:
@bo0tzz commented on GitHub (Jul 27, 2025):
Then they are not the exact same files and so uploading them is the right thing to do. It is "physically impossible" to upload an exact duplicate.
@Magnus987 commented on GitHub (Jul 27, 2025):
Okay but why does it say there are 9000 assets left to upload? I have uploaded all my assets from mobile back when i was on non beta. It seems like it does not recognize my already backed up assets as the ones from my mobile gallery and now wants to upload all again.
@jmichiel commented on GitHub (Jul 27, 2025):
I had the same behaviour on Android, but I don't think the assets where stored twice.
I see tons of these error messages in the server logs though:
@Magnus987 commented on GitHub (Jul 28, 2025):
Okay good to know that I am not the only one with such an issue. After I turned off the beta mode everything is detected correctly and it only wants to upload some new assets from my IOS gallery.
So it's definitely caused by the new beta. If I enter the beta again the same issue accrues just like before.
@roberto2lini commented on GitHub (Jul 28, 2025):
Having the same issue when switching to the beta, all my images are backed up also with iCloud. I made sure all images where synced before the immich server upgrade and then again before switching to the beta upload. Now it seems to be trying to re-upload everything.
Beta -
Old Method has no remaining uploads:
@jrobe commented on GitHub (Jul 29, 2025):
I'm having a similar issue; except instead of attempting to re-upload, the cloud backup option just shows that it's disabled and isn't attempting to upload the (even with backups enabled).
The total number of photos it shows as "uploaded" is the number of non-icloud photos I have. Shared iCloud photo albums show in the "Remainder" category. I know this because if I deselect the two iCloud albums that were shared with me, it shows as Remainder 0.
Disabling the new timeline sync beta and re-enabling backups makes things work as I expect.
@Magnus987 commented on GitHub (Aug 5, 2025):
The new bugfixes in v137.3 did not fix this issue.
@chriswa81 commented on GitHub (Aug 5, 2025):
Seems to be the same problem as here: #20254
Except that iCloud is disabled there.
@dvmbro commented on GitHub (Aug 5, 2025):
I have the same issue. Switched to beta timeline and all of my assets are uploading again. Every upload of existing asset is throwing a db error. Immich server log:

Postgresql log:
One thing I found: after coming back from beta to "old" app via switching the setting, all assets were working properly like before. So this action was revertable.
@jkoopmann commented on GitHub (Aug 11, 2025):
Is there any progress on this or do you guys need more debugging on our end (if so please let me know what/how). This is preventing me from using the beta-timeline.
@Jacajack commented on GitHub (Aug 14, 2025):
At the risk of stating the obvious, this issue seems to be still present in v1.138.0
@chriswa81 commented on GitHub (Aug 14, 2025):
Unfortunately I can confirm this. The error has not been fixed with the latest ios app version v1.138.0. On the contrary. Now even more elements are displayed for repeated backup.
@alextran1502 commented on GitHub (Aug 14, 2025):
@Jacajack and @chriswa81 can you guys help capturing the screenshot of the Beta Sync Stats in the app settings?
@mgnisia commented on GitHub (Aug 14, 2025):
Like this one @alextran1502. Facing the same issue and just created a new fresh installation of v1.138.0 on my k8s cluster.
@alextran1502 commented on GitHub (Aug 14, 2025):
@mgnisia can you capture the backup page as well? Do you only have 183 assets on this instance?
@mgnisia commented on GitHub (Aug 14, 2025):
Yes not a lot images uploaded yet.
@Jacajack commented on GitHub (Aug 14, 2025):
@alextran1502 These are my backup stats. In my case it doesn't try to upload every asset again, but has trouble uploading some 300 of them (interestingly the reported sizes of these files are 0B). This includes some random old photos and all the new ones taken after I enabled the beta timeline. I'm coming here from #20523, because someone suggested this could be related, but I'm not sure if this is the case.
@alextran1502 commented on GitHub (Aug 14, 2025):
@Jacajack Thank you for sharing, can you help me confirm if those erroneous assets are coming from the Shared Album of iOS?
@Jacajack commented on GitHub (Aug 14, 2025):
@alextran1502 If you mean an iCloud shared album, then no - I don't have any of these, but I do have global iCloud sync enabled. The erroneous assets consist mainly of MOV files (seemingly associated with Live Photos taken recently), PNG files (mainly screenshots from random points in time) and then some HEIC files created 2 years ago. I don't see any meaningful pattern here. These files don't belong to a single album (except "recents") or anything like that.
@alextran1502 commented on GitHub (Aug 14, 2025):
@Jacajack, I wonder if you can charge the phone and move it out of the low battery state, and try to toggle the upload button to trigger the upload, then see if it improves?
@Jacajack commented on GitHub (Aug 14, 2025):
@alextran1502 I've already tried a few times under more "normal" conditions earlier. I just happened to have low battery now when I was taking the screenshots. But I can charge it and give it another go later
@alextran1502 commented on GitHub (Aug 14, 2025):
@Jacajack Thanks, at the mean time, do you mind sharing the mobile app logs?
@Jacajack commented on GitHub (Aug 14, 2025):
@alextran1502 Sure, here's a log (verbosity INFO) created by opening the app and waiting until the erroneous assets appear in the sync details menu. I allowed myself to remove the instance URL from the logs. If that matters, I do use mTLS in my setup.
Immich_log_2025-08-15T010412.679733.log
@alextran1502 commented on GitHub (Aug 14, 2025):
@Jacajack It would be really interesting to connect direct to the instance over local IP and try uploading, so that we can remove the mTLS bit to make sure it is not the one causing the issue
@d1egoaz commented on GitHub (Aug 15, 2025):
I have a similar issue as above; however, since I'm connecting over LAN, it uses the local URL. I also have another connection configured through cloudflared when I'm not in my local WIFI.
The backup works for a few minutes, then it starts showing assets with 0 bytes, and the list fails with hundreds of items showing zero bytes. If I restart the app, it begins uploading again, but the issue happens again.
IOS app logs:
Immich_log_2025-08-14T21:03:08.891782.log
Server Logs
@d1egoaz commented on GitHub (Aug 15, 2025):
I forgot the data for when throws an error:
IOS Logs
CLICK ME for ERROR LOGS
@mgnisia commented on GitHub (Aug 15, 2025):
I have a pretty much similar setup to @d1egoaz, exactly the same behaviour.
@chriswa81 commented on GitHub (Aug 15, 2025):
It's probably the same bug as #20899 and #20254!
General conditions:
Immich-Server: 1.138.0
Immich-iOS-App: 1.138.0
iCloud-Sync: No
Immich-Beta-Mode: Yes
Reverse-Proxy: No
@alextran1502
Of course. Here is my screenshots of the 16 elements that need to be backed up repeatedly:
Finally, here is the Immich server log during the upload:
Query failed : {
durationMs: 2.111700998619199,
error: PostgresError: duplicate key value violates unique constraint "UQ_assets_owner_checksum"
at ErrorResponse (/usr/src/app/server/node_modules/postgres/cjs/src/connection.js:794:26)
at handle (/usr/src/app/server/node_modules/postgres/cjs/src/connection.js:480:6)
at Socket.data (/usr/src/app/server/node_modules/postgres/cjs/src/connection.js:315:9)
at Socket.emit (node:events:518:28)
at addChunk (node:internal/streams/readable:561:12)
at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
at Readable.push (node:internal/streams/readable:392:5)
at TCP.onStreamRead (node:internal/stream_base_commons:189:23)
at TCP.callbackTrampoline (node:internal/async_hooks:130:17) {
severity_local: 'ERROR',
severity: 'ERROR',
code: '23505',
detail: 'Key ("ownerId", checksum)=(115da467-e83f-4fe5-b5c6-6cf15fa8ce38, \xcde813fd7c7890e1afbde80f9c7358cf7414952f) already exists.',
schema_name: 'public',
table_name: 'asset',
constraint_name: 'UQ_assets_owner_checksum',
file: 'nbtinsert.c',
line: '663',
routine: '_bt_check_unique'
},
sql: 'insert into "asset" ("ownerId", "libraryId", "checksum", "originalPath", "deviceAssetId", "deviceId", "fileCreatedAt", "fileModifiedAt", "localDateTime", "type", "isFavorite", "duration", "visibility", "originalFileName") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14) returning *',
params: [
'115da467-e83f-4fe5-b5c6-6cf15fa8ce38',
,
<Buffer cd e8 13 fd 7c 78 90 e1 af bd e8 0f 9c 73 58 cf 74 14 95 2f>,
'/usr/src/app/upload/upload/115da467-e83f-4fe5-b5c6-6cf15fa8ce38/f4/b0/f4b01725-10ae-49cb-9de4-ad3a40330098.mov',
'932F6EAA-F6B0-4F33-B760-240A5E4AC1DB/L0/001',
'd672b373341415f4afc3b9bdcf2ae0adaa5f6588bbcbf20115e18edd0161bab4',
2025-07-25T06:55:50.092Z,
2024-05-25T18:10:12.400Z,
2025-07-25T06:55:50.092Z,
'VIDEO',
false,
'0',
'timeline',
'IMG_2287.MOV'
]
}
Here is another screenshot of the backup page without beta mode:
No remaining items are displayed here. It works correctly this way.
Thanks for fixing.
@Jacajack commented on GitHub (Aug 15, 2025):
@alextran1502 I can try that in a couple of days when I'm back home, but I doubt that's the core issue since other people have other setups and similar problems. I looked at the server logs, but I don't see anything suspicious here during the failed uploads.
For what it's worth, the legacy upload page shows a mismatch between remote and local assets counts, but shows that there are 0 remaining assets to upload.
@Magnus987 commented on GitHub (Aug 15, 2025):
For me it's a very similar behavior. With the beta turned off it shows correctly 318 images which are not uploaded, but with the beta on it doesn't recognize any of my Assets(of my phone) as uploaded. I only connect via my local IP to my Immich Server.

Hope that helps, thanks for working on this!
@Magnus987 commented on GitHub (Aug 18, 2025):
Just for the record, this bug is not Fixed in v1.138.1
@chriswa81 commented on GitHub (Aug 18, 2025):
Unfortunately, I can confirm that.
@phipz commented on GitHub (Aug 19, 2025):
I am a bit confused about what the current version with the beta timeline is actually expected to do. Have we moved to client-side hashing by now? @alextran1502 ?
I thought that the beta moves to client-side hashing and does not even start an upload when the local hash matches the server hash? There is a new stats field in the beta timeline stats about how many assets are already hashed, which however is growing only very slowly and only when the app is open. With an increase in the number of hashed assets, more pictures get the cloud symbol with the little tick.
However, I can also confirm that if I started an upload, the client re-uploads assets and the server correctly rejects them.
@alextran1502 commented on GitHub (Aug 19, 2025):
@phipz yeah we moved to client side hashing. One possible bug is if you are uploading LivePhotos? Can you help me confirm that? And if the rejection query is for an MOV file?
@mgnisia commented on GitHub (Aug 23, 2025):
After upgrading to the last version 139.2 I can see that lots of images are now finally uploaded that haven't been uploaded before (they were only marked as red). However after a while I run into the same issues before, I will monitor the solution.
@Magnus987 commented on GitHub (Aug 23, 2025):
@alextran1502 unfortunately i cant confirm that this bug is only affecting live photos. in the new v139.2 i can see which assets it wants to upload again and its a mix of .JPG and .MP4 files. Not a single .MOV file in there.
However, it does not display all photos that the app indicates as not uploaded.
To test this even more I took 2 normal photos and one live Photo and uploaded them with the non Beta. Then I switched to beta and waited a few minutes. But the behavior is same as always:
The beta shows the 3 Assets from the server with the uploaded icon, but also shows the same 3 local assets as not uploaded and tries to upload them again.
Let me know if you need more details or testing. I'm really looking forward to seeing this issue resolved!
@Magnus987 commented on GitHub (Aug 25, 2025):
Just for the record, this bug is not Fixed in v1.139.4
@alextran1502 commented on GitHub (Aug 25, 2025):
@Magnus987 Can you share the Beta Sync Status page?
@Magnus987 commented on GitHub (Aug 25, 2025):
@alextran1502 Sure
@alextran1502 commented on GitHub (Aug 25, 2025):
Yeah the hashing needs to finish in order for the timeline to look correct
@Magnus987 commented on GitHub (Aug 26, 2025):
@alextran1502 Okay, that makes sense! But is there any way to speed up the hashing? I had the app open in the foreground for 30 minutes and in the background for much longer. Even after 20+ hours total, I’ve barely made progress with only about 1000 more assets hashed, despite having a pretty powerful phone (iPhone 15).
Thanks for your help and time!
@maslanypotwor commented on GitHub (Aug 26, 2025):
Do you by any chance use iCloud gallery optimization feature? (the one where you keep only info about photos on your phone but the full resolution pictures are kept only on iCloud servers)
My intuition is that if that is indeed the case then maybe it is why it takes so much time since (here I'm again, guessing) Immich needs to download full picture to calculate the hash.
@dvmbro commented on GitHub (Aug 26, 2025):
I think you've got it right._ I've closed all the apps on my iPhone, connected to the VPN I'm hosting and the download speed was 0. Opened Immich, went straight to beta status and it went off right away. Reached download speeds of up to 70MB/s. After closing Immich, it was downloading for ~5s more and went straight down to 0B/s. I assume there was a queue of media to download and it stopped downloading & hashing after exiting the app.
@jkoopmann commented on GitHub (Aug 26, 2025):
Might be the same here. What I notice is no progress on the amount of hashed files on the status page. For minutes or longer. If I kill and reopen the app all of the sudden 200 more files are hashed.
Since everything was already uploaded once would it not be safe to disable iCloud only files? Or is this not available anymore in beta sync (at least I remember seeing such an option but cannot find it anymore).
If it is “only” the status/progress not increasing this feels like an easy fix and would eliminate a lot of doubt. 😂
@Magnus987 commented on GitHub (Aug 26, 2025):
@maslanypotwor Yeah, you're right! I've thought about this too, as this could really be the issue here. In this case it's not Immich's fault because downloading every single asset from apple servers is just taking too long.
So every user with this iCloud feature (or something similar) has to wait until every single asset is at some point downloaded, hashed and sent back to the cloud for the new timeline to function properly.
If this is really the case and there's no way around it, it's annoying but at least then we'll know what's causing this problem.
:)
@jkoopmann commented on GitHub (Aug 26, 2025):
Mine hangs in 11374 hashed files for more than 5 minutes now (having 1 gbs downlink). Might be that it is downloading and hashing the mother of all videos. Without a proper status there is no way to be sure and this simply “feels” like a bug even if in the end all is correct.
@alextran1502 commented on GitHub (Aug 26, 2025):
Yes, you are correct about the hashing. I think we can do something about the downloading process for hashing iCloud assets
@maslanypotwor commented on GitHub (Aug 26, 2025):
I think this goes even further and if you are using iCloud shared albums - those assets sometimes CAN be in the cloud only (iOS handles this automatically I think, especially once you are low on storage on your phone) since I am not using iCloud gallery optimization but I noticed that for some shared albums I need to wait sometimes for the video to buffer or photo to download full res as well as I can see this "lag" behavior for some assets in Immich.
As it was mentioned - some indication what is happening in the background in such cases would be nice!
@jkoopmann commented on GitHub (Aug 27, 2025):
Is the hashing supposed to be taking place in the background? Not only am I not able to see the hashing progress. I get the feeling it simply stops after some time. So I keep reminding myself, start my iPhone, start immich (which then looks as if it is stating from scratch with the immich flash screen) and go to settings and status of beta sync. Still 8000 to go and it seems to process a few hundred per hour. At this rate this is going to be a challenge....
@alextran1502 commented on GitHub (Aug 27, 2025):
The hashing isn't supposed to be running in the background at the moment. We will put them into background work in #21243 for faster process. I think the fastest is still leaving the phone opened while hashing is going
@jkoopmann commented on GitHub (Aug 27, 2025):
After having it run in the foreground I have 20046 files hashed. Local are 20048. Log says:
The sync page shows 594 remaining assets. If I let it on that sync page immich app eventually crashes. Neither are the two missing files being synced not can I get below the remaining 594 assets.
@jkoopmann commented on GitHub (Aug 27, 2025):
And immich log shows:
I am down to 593 remaining now (why ever) so something IS happening but since the app is crashing all the time....
@jkoopmann commented on GitHub (Aug 27, 2025):
Immich_log_2025-08-27T19:15:24.484328.log
There seem to be other errors as well. The remaining files are HEIC, JPG and MOV. So not limited to Live Photos etc.
@jkoopmann commented on GitHub (Aug 29, 2025):
It is still stuck and new photos are not being synced. Is there anything I can do to assist you guys? Otherwise I will have to switch of beta timeline once again to get things working.
@alextran1502 commented on GitHub (Aug 29, 2025):
@jkoopmann can you share the screen capture of the backup page when you toggle the backup button?
@jkoopmann commented on GitHub (Aug 29, 2025):
Sure
@alextran1502 commented on GitHub (Aug 29, 2025):
@jkoopmann If you toggle that button, what happens? can you do a screen recording?
Additionally, do you mind get the screen capture for the Beta Sync Stats in the App Setting page?
@jkoopmann commented on GitHub (Aug 29, 2025):
Short answer: Nothing just the button toggle.
https://github.com/user-attachments/assets/b87a51ab-ed8f-4ba8-ac75-efbc56c660a1
@jkoopmann commented on GitHub (Aug 29, 2025):
The hash seems to have consistent problems with getting/hashing two files.
@Jacajack commented on GitHub (Aug 29, 2025):
Unfortunately uploading photos with the beta timelime still doesn't work for me on v1.140.
I also tried disabling the automatic backup and uploading photos one by one. This also fails in the same manner.
@alextran1502 commented on GitHub (Aug 29, 2025):
@jkoopmann and @Jacajack do you guys by chance a developer and can help with running a debug build in your environment?
I am still not sure what could possibly block the queuing process here
@jkoopmann commented on GitHub (Aug 29, 2025):
Developer in general yes. iOS so far no. But a quick learner. We can “meet” online and you can talk me through it. Willing to help.
@Jacajack commented on GitHub (Aug 29, 2025):
I am and can give it a go when I'm back home from holiday in a couple of days. I don't have much experience with mobile and web development, so that will be something new.
@alextran1502 commented on GitHub (Aug 29, 2025):
@jkoopmann Sounds great, do you have a mac? you can ping me on Discord and we can figure out a time
@jkoopmann commented on GitHub (Aug 29, 2025):
Yes. I am busy tomorrow. We will figure something out. How can I reach you on discord?
@d1egoaz commented on GitHub (Sep 2, 2025):
I disabled iCloud Photos sync and ran the rehash asset job. However, Immich was stuck in a loop, re-uploading existing files. So, I tapped "Clear File Cache" and "Reset SQLite Database" on iOS, killed the app. After that, it hashed the files again and uploaded the expected ones. Now I'm fully synced, I don't need to re-enable iCloud Photos since I'm moving away from it.
@Jacajack commented on GitHub (Sep 4, 2025):
@jkoopmann, @alextran1502 Did you manage to meet and figure something out?
@jkoopmann commented on GitHub (Sep 4, 2025):
Not yet but this is mainly because in order to debug this the debug-build hash to rehash my >20k files which is now in day 3 of hopefully 3. :-) Once that is finished Alex will take a look!
@jkoopmann commented on GitHub (Sep 12, 2025):
Ok. Not sure if I can recall everything that happened... But some insights.
During hashing I frequently (in the log) encountered problems that immich was not able to access iCloud Photos with error 1005. I am pretty sure what happens: When you ask the iCloud Photos API for a fully copy (which is needed for hashing) this is downloaded and stored in a temporary area. This one can fill up. Whenever I encountered the 1005 scenario it came in batches. When I went into Photos the account button was yellow and when I clicked this it told me that there is no space left on the device (which was bullshit since there were 115 GB free). After a few moments this disappeared. The account tab was ok and when I restarted hashing in immich all was fine until it started again. This seems to be a limitation in the API stack and as much as this sucks there is nothing @alextran1502 will be able to do about it. Maybe they can react to it better.
Suggestion: When you encounter a certain amount of 1005 errors... Halt the process. let it rest. Then restart it.
Once all of that was finished two out of >20k images remained unwashed. I was able to identify them on my Photos app on the iPhone. The were "white". When I hit the white (i) on the lower right an error said that it was not able to load the "higher quality version" of the file. When I looked at the details there was a yellow cloud icon. When I hit that a hidden album popped up with two images. Album name "Hochladen nicht möglich" (Not able to upload). I deleted those two files. Then all was hashed.
So I enabled backup mode. Things started to queue and upload then the app crashed with "No space left on device". Turns out that the library used for uploading is running into a similar "temporary storage fills up" error. The library is not catching this and the crash occurs. The guys will file a PR with the library developer so that the error is catchable. Looks as if the concurrency leads to too many big files being downloaded into the temporary storage which fills up and then causes the crash. "We" (meaning the brilliant @alextran1502 telling me what to do) removed the concurrency and the remaining images started uploading. However: That also eventually stalled and did not finish. It ran into "no space left" once and then in some batches I was able to upload all but ONE image. I was able to identify that image.
Asset 6E7D02B3-2DFD-4F0D-8A3B-E77AC0020578/L0/001 does not have a Live-Photo
So I looked it up in Photos App and while the still image was there the live part was not and there was a warning error in Photos as well (essentially also stating that the higher quality version of the file was not loadable). Killed that one. And now: ALL IS WORKING (for the time being). :-)
So there are quite some learnings and I am very confident that @alextran1502 and @shenlong-tanwen will figure out ways to deal with this. Ideas include: config options for reducing/disabling concurrency. Catching and handling of no space left on device (in hashing and once possible in backup/sync). If hashing/backup encounters iCloud issue at least show the images with Name/date and make it possible for the user to find then in Photos and nuke them.
I am extremely grateful to @alextran1502 and @shenlong-tanwen who took an enormous amount of time to help me debug this!
@Magnus987 commented on GitHub (Sep 12, 2025):
@jkoopmann @alextran1502 @shenlong-tanwen Very Interesting how a “small bug” turned into much more ;)
I managed to hash all my assets after some hours of display time in Immich, now the beta works perfectly fine for me.
Huge thanks for taking the time to look in to that and identify these issues 🫡
@azomDev commented on GitHub (Sep 21, 2025):
I am getting the same problem on android (GrapheneOS). I made an initial backup of all the images. Then if I go back on the app later (closing it also does this), it makes the amount of remainder assets to the total assets on my phone, even thought I see all the images on the web app. I am getting "Error processing stream" and "Error in runInIsolateGentle for remote-sync" errors quite often. This seems to be pretty close to what others here are having as problems although I am on android, so let me know if this is the right place or not and I can try giving more log details and stuff.
@alextran1502 commented on GitHub (Sep 21, 2025):
@azomDev When you run into that error, it is likely that you server is out of date. Please check and update your server
@azomDev commented on GitHub (Sep 21, 2025):
Thanks for the help! I am using nixos-stable so I'm a few versions behind so that would explain why. (v135-ish vs v142-ish)
I added
package = pkgs.unstable.immich;to the immich service and it now works using the latest server version.If anyone on nixos wants to make this works, I'm pretty sure you also need this at the top of the config file
EDIT: I added the problem and solution directly on the nixos wiki so it's easier for others to fix it
@Jacajack commented on GitHub (Sep 23, 2025):
Just for the record, I'm still having issues with 1.143.1, but I assume this is expected. I reinstalled the app on my phone and let it re-hash all the 13k images. It correctly hashed everything and identified the 360 most recent photos that need syncing, but fails to upload them.
On the plus side, I can see that in the newer versions the background upload service wakes up quite often and attempts to sync. It's just that the upload fails.
@shenlong-tanwen commented on GitHub (Sep 23, 2025):
Anything on the logs as to why the upload is failing? Also, Can you try manually uploading one such failing asset?
@Jacajack commented on GitHub (Sep 23, 2025):
@shenlong-tanwen Unfortunately I can't see any errors in the FINE logs. The assets just become red in the upload queue and report 0B size. Doesn't matter if they are queued by the automatic sync or manual upload.
If you like, maybe we can discuss/troubleshoot this on Discord to not further overload this thread here?
@shenlong-tanwen commented on GitHub (Sep 23, 2025):
That'd be great. Please open a help desk thread there and ping me
@maslanypotwor commented on GitHub (Oct 3, 2025):
I had some time to test and stare at uploads/hashing today and I noticed an interesting pattern.
Each time I open Immich, for some reason it tries to rehash ~1400 assets. It happens every time when I cold start the app.
I noticed that all of those assets comes from the shared albums. It looks as if it thinks that the assets changed while they did not (hence the rehash is usually fast (but not always)).
There seems to be some issue with how assets that are inside of the shared albums are handled and Immich thinks that they changed while that's not true.
PS. Side note - I do not use storage optimization on iOS though AFAIU, shared albums, by design, can be not downloaded till you try to look at them for the first time (in the native gallery) and they can be also deleted from local phone storage (!) if you have not enough space (regardless of your storage optimization setting). I guess this might be worth mentioning.
@maslanypotwor commented on GitHub (Oct 15, 2025):
Just for the record - on v2.1.0 the behavior I described in the previous comment still works the same. Every time I open the app and (new thing i noticed I think) there is some new assets to be uploaded, all assets from shared albums are being hashed again (and upon realization that this hash is already on the server - dropped from uploading).
@maslanypotwor commented on GitHub (Nov 24, 2025):
I think this is it - there seems to be no issue with iCloud assets in shared albums in version 2.3.1!
I tested it couple of times by relaunching the app last couple of hours and every time it worked as expected (refreshing assets but never trying to rehash those from shared albums).
I hope it will stay that way :)
Thank you Dev Team!!!