mirror of
https://github.com/immich-app/immich.git
synced 2026-02-05 08:41:28 +03:00
[BUG] iOS live photos which have been rotateed or an effect are shown as separate images and videos in immich #1720
Closed
opened 2026-02-05 03:20:27 +03:00 by OVERLORD
·
31 comments
No Branch/Tag Specified
main
fix/web-people-hidden-state
fix-filename-search-label
chore/yank-cloud-id
chore/oauth-labels
renovate/machine-learning
uhthomas/mobile-fix-app-bar-fade
feat/debug-schema
renovate/typescript-projects
fix/25803
feat/asset-file-apis
chore/translations
fix/web-switch-label-clickable
release/next
fix/timezones
fix/time-zone-upserts
midzelis/wip
push-zpwsovysllvn
push-nwxlpmyzkyrl
push-nvnkszuqwppm
renovate/github-actions
push-smstsuupsowp
refactor/adaptive_image
push-olwpzvrxnomt
push-lmxsupnmxspl
feat/web-chromecast-video-looping
feat/use-native-clients
renovate/flutter
fix/create-face-edited
fix/mobile-ios-mtls
docs/contributing
docs/mise-mobile
renovate/grafana-monorepo
feature/bottom-buttons-order
feat/immich-mobile-ui-showcase
refactor/consolidate-image-requests
renovate/connectivity_plus-7.x
renovate/major-vitest-monorepo
renovate/pypi-python-multipart-vulnerability
fix/mobile-people-query
sqlite_thumbs
feat/html-text
chore/no-macro-validation
refactor/purchase-store
uhthomas/mobile-fix-asset-jump
feat/pano-ocr
feat/shared-link-login
fix/database-backup-db-names
fix-keep-correct-ios-shared-album-asset
fix-memory-generation-and-display
feat/verify-permissions
refactor/album-service-small-tests
fix/ml-rocm-build
fix/flipped-dimensions-mobile
push-vpxwmwwxwnvw
fix-migration-width-height
refactor/more-queries
revert/prettier-translations
refactor/asset-service-queries
fix/locale-settings-desc
chore/add-debug-log
feat/edit-filters
shared-deep-link-handler
feat/mobile-editing
feat/thumbnail-native-clients
feat/platform-clients
feat/integrity-checks-izzy
fix/foreground-cloud-sync
feat/dynamic-layout
filter-by-person
feat/csp
refactor/sidebar
fix/disable-editing
fix/view-timeline-deeplink
image-zoom-on-slow-connection
fix-consider-dar-for-video-dimension
fix/merged-edited-assets
perf/optimize-album-sort
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
chore/translation-keys
feat/modal-routes
feat/panorama-tiles
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
renovate/mapbox-mapbox-gl-rtl-text-0.x
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
fix/mobile-uncached-zoom
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
feat/inline-storage-columns
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
feat/sidecar-asset-file
vet
tmp/demo-snapshot-preview
fix/server-migration-file-extension
refactor/mobile-v2
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/preload-ml-textual-model
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/server-more-robust-generation
feat/unassign-faces
feat/shortcuts-on-asset-grid
feat/background-upload
feat/capacitor-mobile-app-poc
feat/server-nvenc-hw-decoding
release/v1.105
fix/mobile-fetch-non-archive
feat/fine-grained-access-controls
web/automation-ui
feat/mobile-server-endpoint-save-dropdown
feat/blurhash-thumbnail
object-storage
feat/memories-animations
dev/metrics
ml/tflite
feat/ml-export-cli
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
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: immich-app/immich#1720
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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 @philw07 on GitHub (Dec 3, 2023).
The bug
When uploading a live photo from iOS which has either been rotated or an effect (bounce, loop, etc.), it will be displayed as separate photo and video in immich.
In case of rotated photos, the video has the original orientation.
I would expect it to show as a regular live photo in immich (without any effect, but ideally rotated correctly).
The OS that Immich Server is running on
Debian
Version of Immich Server
v1.89.0
Version of Immich Mobile App
v1.89.0
Platform with the issue
Your docker-compose.yml content
Your .env content
Reproduction steps
Additional information
No response
@shenlong-tanwen commented on GitHub (Dec 4, 2023):
@philw07 Can you please check if the live photo is linked properly in the web version? And, if it does, can you swipe down twice in the main timeline of the mobile app to trigger a force refresh of the asset state and check if that fixes your issue?
@philw07 commented on GitHub (Dec 4, 2023):
@shenlong-tanwen It’s also not linked in the web interface.
@shenlong-tanwen commented on GitHub (Dec 4, 2023):
Odd. Does this happen only for live photo with edits? Also, is it possible to share such live photo as a file to reproduce the issue?
You can also check the following things:
livePhotoCIDEXIF tag set and to be equal for both the assets.@philw07 commented on GitHub (Dec 4, 2023):
Yes, I've uploaded dozens of live photos and only edited ones are displayed separately.
Sorry, I can't share any at the moment, but if you have access to an iOS device it's literally as easy as taking a live photo and rotating it via Edit → Crop → Rotate → Save.
I think it ran, as the non-edited live photos are recognized as such and also other metadata like location and camera are available.
Re-running it manually for an affected photo and video had no effect.
Where can I check this?
I didn't find anything in the immich UI and am unable to check the photo/video files at the moment.
I found a similar issue in #4209 with the
livePhotoCIDkeyword, so I am leaving the link here just in case.@mike12806 commented on GitHub (Dec 4, 2023):
I'm seeing the same issue but without editing the photo, I'm still getting a video and the photo uploaded. Not sure if it's silently editing the file in the background, but I also have the nextcloud app uploading photos too....
For me, it's fine in the web interface (they are linked)....
Metadata extraction job seems to be running just fine.
@shenlong-tanwen commented on GitHub (Dec 5, 2023):
If they are linked in the web app, Kindly swipe twice in the main timeline of the mobile app to trigger a full sync of assets which would link them in the mobile app as well. Your issue where the asset is linked in the web-app and not in the mobile app would be fixed in the next release.
@philw07 commented on GitHub (Dec 5, 2023):
So after some reading, I took a live photo and uploaded it to immich and checked the exif using exiftool afterwards.
The image was correctly displayed as a live photo in immich and both the HEIC image and MOV video had the same identifier.
Afterwards, I deleted the photo and rotated it in iOS, then uploaded it again.
This time, it was displayed as separate photo and video in immich.
I checked the exif data again and indeed the identifier of the image was changed, but the identifier of the video stayed the same.
This seems to explain why immich can't link them.
Unfortunately, I could neither find the new ID in the video metadata, nor the old one in the image metadata.
Hence I'm not sure if it's possible to link them after the image has been edited.
@mike12806 commented on GitHub (Dec 5, 2023):
I'm seeing this without having edited the photo. Re-running metadata extraction fixes it.
@ChristopherFunk commented on GitHub (Dec 7, 2023):
I'm seeing this without editing the photos, and re-running metadata extraction does not fix it for me
@shenlong-tanwen commented on GitHub (Dec 7, 2023):
Are your assets not linked in the web app as well? If so, Can you share the original photo and video asset that are supposed to be linked together? If they have sensitive or personal info, Can you try reproducing it with a new Live photo and share it with us for troubleshooting?
@ChristopherFunk commented on GitHub (Dec 8, 2023):
Hello, yes it is happening in web, I have older photos where this happens too, starting December 1st (which is weird I don't think it happened around a release).
Also confirming I went to the web and under admin re-ran EXTRACT METADATA on ALL photos
This is from today
Photos in the web, it's hard to tell but the right photo has the 0:01 Play button icon in it

Photo

Video

and here they are downloaded from immich web:
and the original photo:
This is coming from an iPhone 14 Pro, and I just checked the app version is up to date, v1.89.0, server on same version
Let me know if you need anything else, happy to help!
@shenlong-tanwen commented on GitHub (Dec 11, 2023):
@philw07 / @ChristopherFunk Both of your issues should be fixed in the next version of the app. We'll keep this issue open until the next release.
@philw07 commented on GitHub (Dec 11, 2023):
Fantastic, thanks so much.
I will check when the update is available.
@ChristopherFunk commented on GitHub (Dec 13, 2023):
Woohoo! Thanks so much! I'm assuming we'll need to do another metadata refresh to fix existing photos?
@shenlong-tanwen commented on GitHub (Dec 13, 2023):
Sadly, The live photos has to be removed and re-uploaded again for them to be properly linked. This shouldn't hopefully be required again in the future. Apologies for the trouble caused. We'll get this added to the release notes as well, asking users to re-upload their unlinked live photos from the iOS app.
@smndtrl commented on GitHub (Dec 17, 2023):
@shenlong-tanwen In which commit was this fixed? I'm curious how this was solved.
I might have a few hundred of those images where the tag in EXIF does not match and there are no "originals" available on the phone anymore.
@philw07 commented on GitHub (Dec 18, 2023):
I updated my server and app and re-uploaded several live photos as well as taking and editing some new photos.
Everything seems to be linked correctly, so from my point of view this ticket can be closed.
I’m keeping it open for @ChristopherFunk to confirm it’s working on his side.
@shenlong-tanwen Thanks again.
@smndtrl I think that would be #5602.
@smndtrl commented on GitHub (Dec 18, 2023):
Interesting. I'm wondering if that change lead to the other issue I'm seeing.
A live photo (bounce effect) export is correctly matched, yet the file metadata and quality is hugely affected. See the second image with resolution, filesize and missing metadata like GPS.
My app version is
1.91.2and the server runs on1.90.2The following image shows

IMG_6086 (1), which is the export from Apple Photos vsIMG_6086, the download from the immich server.The live photo is matched fine since the update.

If switching off the live photo effect, the same photo is displayed like this.


With more similar file sizes to the Apple Photos export.
@philw07 Did you notice something similar for recent live photos with effects? If not, I'm going to have to open up a new issue to figure this out.
@alextran1502 commented on GitHub (Dec 18, 2023):
@smndtrl hello, do you know if those LivePhotos get edited anyway after being taken?
@smndtrl commented on GitHub (Dec 18, 2023):
The only thing I did was to
LivetoBounceBouncetoLiveAll looks good on the server
No cropping, painting, rotating or anything else. I didn't even use the
Editmenu but the quick switcher.@philw07 commented on GitHub (Dec 18, 2023):
I didn’t notice it before, but I can confirm it also happens on my side.
@WolfgangDpunkt commented on GitHub (Dec 18, 2023):
How can we identify photos that need to be deleted and re-uploaded?
I uploaded thousands of iOS-photos during this specific period. I have them backed up in iCloud, so it is not a big problem. However, I want to locate the photos that require deletion and re-upload to be properly linked. Is there a search string specifically for iOS photos?
(Crosspost from Reddit, sorry, but I was not sure if it will be noticed there)
@shenlong-tanwen commented on GitHub (Dec 18, 2023):
#5601
There are two ways in which assets are linked together as live photos. i) both the video and photo asset are uploaded together in the same upload request 2) matching "Content Identifier" metadata
We thought of removing i) and use ii) for linking live photos always and released the mobile app changes as such. But looks like not all livePhoto's still and motion part have matching metadata, like from the few examples above, which resulted in them not getting linked together since we started relying on only the metadata. The fix was to actually revert it and go back to uploading both the assets together in the same request and the server would link them without going through the metadata. This was also why we requested the existing un-linked livephotos to be removed and re uploaded again.
@shenlong-tanwen commented on GitHub (Dec 18, 2023):
Can you raise this as a separate issue?
@shenlong-tanwen commented on GitHub (Dec 18, 2023):
You can check the comment by Christopher - https://github.com/immich-app/immich/issues/5473#issuecomment-1846533152
The still and motion photos are getting displayed as two different assets in the timeline, which means that the live photo is not properly linked
@ChristopherFunk commented on GitHub (Jan 5, 2024):
Hi sorry! It's all working on my end! Been uploading photo's like crazy and no issue on my end! 😄
Ahh I kept reading, I haven't tried any of these other effects in my photo's, but the simple snap and upload is working for me.
Editing the photo by changing the Key Frame in a live photo doesn't break it for me either, but I haven't tried any of the other effects.
@CarterMoody commented on GitHub (Apr 28, 2024):
Still an issue for me on 1.102.3 I have the exact same symptoms as this. This has not been fixed? :
@alextran1502 commented on GitHub (Apr 28, 2024):
@CarterMoody if a LivePhotos is modified, it will lose the information that we need to link the two files together... and this is due to how Apple handles file editing, unfortunately
@CarterMoody commented on GitHub (Apr 28, 2024):
@alextran1502 I have not modified any of these photos yet they still show up this way. I have run the metadata extraction job on my entire library and they still show up as both a still and a live photo separately. What do I need to do to fix this?
@afonsofrancof commented on GitHub (Jul 14, 2024):
I also have this issue. I don't edit any of my live photos yet some are uploaded correctly and others are uploaded as video+photo. It's a bit annoying, and at the moment I have disabled live photos on my phone.
Would be nice to have a way to manually link them
@7122435 commented on GitHub (Jul 25, 2024):
Hello. Same problem here. On 1.109.2 version of Immich (iOS 17.5.1) Live Photos are not uploaded properly. Some photos taken with my iPhone are separated into two elements - a 1s long video and an image. The video is correctly synchronized with the server, but the image is not synchronized at all. This only happens with some Live Photos. The remaining Live Photos are synchronized correctly. None of them were edited on iPhone before syncing.