mirror of
https://github.com/immich-app/immich.git
synced 2026-07-25 14:00:45 +03:00
[BUG] Files deleted outside the app result in broken image #867
Closed
opened 2026-02-04 23:08:59 +03:00 by OVERLORD
·
34 comments
No Branch/Tag Specified
main
chore/translations
fix/partner-ownership-contention
renovate/machine-learning
renovate/pypi-pillow-vulnerability
renovate/pypi-pydantic-settings-vulnerability
renovate/java-25.x
renovate/mobile
chore/harden-mobile-openapi-gen
renovate/java-21.x
fix/min-faces
refactor/asset-update
feat/merge-people-mobile
chore/face-cluster-abstraction
refactor/search-v3/pr-2a
fcast
fix/android-local-album-date
fix/24545-sync-retry-cx
fix/android-locked-folder-delete
make-sure-memory-widget-render
chore/freezed-example
fix/clamp-local-date-time-to-valid-value
fix/datetime-max-limit
fix/viewer-long-image-aspect
feat/native-core
feat/yucca-integration
refactor/mobile-actions
fix/ws-reconnect-battery
renovate/sharp
renovate/pigeon-27.x
refactor/auto-trash-sync
feat/release-source-branch
refactor/session-repository
fix/library-map-live-bounds-updates
renovate/permission_handler-12.x
renovate/node-24.x
fix/mobile-scroll-velocity-placeholders
fix/library-map-loading-flash
agg23/appbar-experiments
renovate/pep621-lock-file-maintenance-machine-learning
refactor/undo-actions
refactor/actions
feat/restore-action
feat/delete-action
fix/29853-thumbnail-decode-size
bugfix/live-photo-stuck
feature/load-previews
chore/pub-upgrade
custom-app-logo
fix/failed-sync-blocks-resume
feat/ml-hwaccel-testing
feat/workflow-logs
feat/server-chunked-uploads
feat/upload-action
fix-29727
feat/download-tag-action
feat/share-action
feat/album-actions
fix/android-cr3-save
feat/browser-profile-action
feat/cast-slideshow-action
feat/locked-folder-action
fix/unauthorized-memory-creation
feat/context-actions
refactor/action-class
feat/memories-view
refactor/asset-action-filter
feat/archive-action
feat/stack-action
feat/mobile-hls-player
refactor/stack-actions
feat/workflow-asset-tags
fix/timeline-drag-select-stops
fix/featured-photo-thumbnail-cache
fix/album-timeline-date-ordering
chore/album-remove-assets
feat/partner-table-permissions
fix/ocr-after-edit
fix/re-enable-pruning
refactor/delete-restore-actions
apk-build-deployment
edit-photo-stacking
fix/mise-lockfile
feat/web-hls-hover
refactor/store-cleanup
fix/hash-mismatch
refactor/app-metadata
refactor/advanced-settings
refactor/current-user
fix/dedupe-integrity-missing-paths
chore/albums-select
fix/fdroid-meta
refactor/per-asset-backup-flag
fix/av1-threads
fix/pass-secrets
fix/download-progress-stuck
fix/negative-backup-remainder
feat/map-asset-number
test-bump-prerelease
fix/handle-unlinking-motion-photos
fix/date-range-formatting
fix/mobile-album-action-msg
asset-add-to-album-trigger
refactor/face-editor-decoupling
feat/zoom-aware-face-editing
refactor/adaptive-image-dimensions
fix-face-editor-video-preview
fix-stack-face-tag-selection
fix/face-boxes-edit-panel
workflow-webhook-step
feat/hero_view_transitions
fix/map-sidepanel-queries
feat/dart-openapi-generator
claude/share-quality-5d7Gn
drag-drop-ghost-target
refactor/workflow-page
refactor/mobile-upload
fix-scroll-flicker-2
update-mise-lock-file
feat/kysely-0.29
release-candidate-flow-1
fix/mobile-22522-sqlite-2067
fix/job-lock
release-candidate-flow-3
release-candidate-flow-2
show-in-timeline-toggle
fix/mise-windows
plan-local-image-display
fix/remote-thumbnail-fallback
chore/riverpod-update
album-order-per-user
fix/web-timeline-dom-node-retention
chore/svelte-enable-state-referenced-locally
feat/favorite-albums
feat/patch-release-from-branch
fix/oauth-linking
feat/timeline_scroll_buffer
panorama-face-overlay
push-txxyuusptoru
push-zpwsovysllvn
chore/queue-endpoint-migration
fix/remove-from-album
chore/thumbnail-histogram
fix/video-thumbnail-bindthis-regression
fix/scrubber-drag-edge-cases
fix/timeline_layout_row_height
refactor-cancellable-task
uhthomas/fix-mobile-use-timer
uhthomas/fix-mobile-video-controls-key
uhthomas/chore-mobile-search-declarative
owner-role-album-user
feat/livephoto-editing
favorite-albums
uhthomas/fix-mobile-isolate-auth
fix/library-watcher-excludes
chore/library-e2e-to-medium
push-ynllunsvrpxy
fix/dont-delete-offline-library-files
push-zvwwxmvkrspv
push-kywsnvvkwzts
push-xxnxokokzrou
push-voozlrlkxsnu
view-in-timeline-transition
push-uymvmlknxpmx
push-qslzsplnusoz
fix/mobile-video-stall
uhthomas/draft-mobile-image-cache-cancel
push-yquostpqnkxp
feat/vitest-4
claude/offload-icloud-hashing-bI3GZ
midzelis/wip
uhthomas/fix-server-fsync-all
feat/mobile-widget-shared-client
push-lnyuzsutzkqq
push-vqqqxxvkunru
push-wvnmqoswptww
push-nwxlpmyzkyrl
fix/map-webgl-error
fix/mobile-player-fit
feat/panorama-tiles
csp-policy
push-rsywxvptwxuv
refactor/restores-file-interceptor
postgres-socketio
claude/auto-screenshot-web-changes-Y7efI
visual-review/pr-26535
push-lvyturrtwkrq
feat/library-offline-count
fix/mobile-video-aspect-ratio
uhthomas/fix-mobile-search-results
uhthomas/feat-sort-smart-search
uhthomas/chore-mobile-maplibre
uhthomas/mobile-fix-asset-details-album-pop
feat/crawl-wrapper
push-skvzqoozqkpl
feat/edit-filters
feat/pg-queue
refactor/asset-upload
better-project-structure
uhthomas/mobile-feat-asset-viewer-details
fix/ml-rocm-build
feat/asset-file-apis
feature/bottom-buttons-order
sqlite_thumbs
fix-keep-correct-ios-shared-album-asset
push-vpxwmwwxwnvw
fix-migration-width-height
shared-deep-link-handler
feat/thumbnail-native-clients
feat/platform-clients
fix/foreground-cloud-sync
filter-by-person
refactor/sidebar
fix/merged-edited-assets
feat/create-job-with-dto
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
feat/location-favorites
feature/rearrange-buttons-2
fix/download-storage-template
chore/originals-in-asset-files
ben/tree-a11y
new-search-filter-ui
refactor/expectSelectedReadonly
refactor/mobile-grdb
feat/mobile-native-local-sync
refactor/timeline_ops
fix/scrubber_end
refactor/virtualsegment
refactor/rename_daymonth_groups
fix-remote-sync-clean-up
debug/cf-chunked-uploads
feat/search-filter-album/web
feat/session-permissions
feat/mobile-dynamic-thumbnails
refactor/extract_photostream
refactor/rename_load_api
refactor/timeline2
refactor/timeline3
feat-no-thumbhash-cache
feat/mobile-hdr-images
feat/beta-background-upload
fix/beta-timeline-memories-setting
fix/failed-uploads-not-removed
feat/groups
drift-map-page
feat/add-to-album-action
track-livephotos
feat/maintenance-worker
refactor/server-side-dedupe
feat/integrity-checks
dev/recognition-eval
lighter_buckets_test
perf/postgres-queue
tmp/demo-snapshot-preview
fix/server-migration-file-extension
rknn-toolkit-lite2
feature/Add-rocm-support-for-machine-learning
chore/async-hash-file
feat/shared-link-view-count
feat/graphql
no-video-player
fix/server-qsv-output-format
chore/server-geodata-tweaks
mobile/native-video-player-no-hero
feat/local-tileserver
feat/ml-armnn-conversion
chore/handle-output_dims
feat/capacitor-mobile-app-poc
feat/server-nvenc-hw-decoding
web/automation-ui
object-storage
ml/tflite
feat/ml-export-cli
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v3.0.0-rc.4
v3.0.0-rc.3
v3.0.0-rc.2
v3.0.0-rc.1
v3.0.0-rc.0
v2.7.5
v2.7.4
v2.7.3
v2.7.2
v2.7.1
v2.7.0
v2.6.3
v2.6.2
v2.6.1
v2.6.0
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
pull-request
sharing
tech-debt
📱mobile
🖥️web
🗄️server
🧠machine-learning
Mirrored from GitHub Pull Request
No Label
📱mobile
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#867
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 @Sherlock1979 on GitHub (May 20, 2023).
The bug
When I have a backed up asset on my mobile phone (cloud with check mark) and I delete it outside of Immich (e.g. with a file manager) then the Immich app shows a broken image.
Expected behaviour: image becomes "cloud only" and icon changes accordingly (cloud icon without check mark)
The OS that Immich Server is running on
Ubuntu 22.04
Version of Immich Server
1.56.0
Version of Immich Mobile App
1.55.0
Platform with the issue
Your docker-compose.yml content
Your .env content
Reproduction steps
Additional information
No response
@alextran1502 commented on GitHub (May 20, 2023):
Can you try update the app to the same version with the server to see if the issue persist? Also try pull to refresh the timeline as well
@Sherlock1979 commented on GitHub (May 20, 2023):
Checked with 1.56.1.
Same problem.
@alextran1502 commented on GitHub (May 20, 2023):
How about logout and then login again?
@Sherlock1979 commented on GitHub (May 20, 2023):
That's interesting. When I click 'Sign Out', the app (Android) does not sign me out but starts 'Building the timeline' which it does not finish even after several minutes, so I need to swipe out the app to get it closed. I think it is actually another bug. Do you want me to open another issue?
Once I signed out and swiped out the app, then I need to log in (so I guess it did sign me out anyways. And after logging back in, everything is fine. So there is no broken image and the small icon is a blank cloud (as it was supposed to be). So you were right, signing out and signing back in solves the problem. But I think it is still not the desired behaviour, right?
@Sherlock1979 commented on GitHub (May 24, 2023):
1.57.1 same behaviour. Logging out and in fixes it but pull refresh does not.
@fyfrey commented on GitHub (May 25, 2023):
I can not reproduce the error. What I did / how it turned out:
I guess, we need some more details (and app logs) to figure out your issue.
@Sherlock1979 commented on GitHub (May 25, 2023):
Thanks for looking into it .
In step 5, do you do anything when it changes to cloud? Like pull to refresh or force quit?
I tried to wait but nothing changed. Pull to refresh did not help either
@Sherlock1979 commented on GitHub (May 25, 2023):
The key difference is background sync. I don't have that turned on.
Now I turned it on and the cloud icon changed just as you described.
But using only manual sync (without background sync and foreground sync), my steps can reproduce the bug.
@fyfrey commented on GitHub (May 30, 2023):
I tried but again could not reproduce the issue (neither foreground nor background sync was enabled).
Can you provide the logs (profile drawer, logs, share in the top right) of the app here after you encounter the issue?
@Gorkycreator commented on GitHub (Jul 24, 2023):
I ran into a very similar issue, hope these steps to repeat provide useful info:
Enabling
Prefer remote images(and refreshing) shows the image, but it was still registered as cloud and local. Logging out and back in again fixes the afflicted images.server: 1.69.0
app: 1.68.0 build 91
@d3vv3 commented on GitHub (Jul 30, 2023):
This solved it for me, since they were showing on the web but not on the app. Thanks!
@VenomousViper27 commented on GitHub (Sep 6, 2023):
I'm on iOS and just saw this issue as well. I do not have background or foreground sync turned on and after running a manual backup I deleted the images using the native photos app. When I returned to Immich this caused my photos and thumbnails to be broken until I logged out and back in to Immich. The couch and checkmark icon were on the broken images, so it appears Immich thinks these image are still on the device.
Does Immich check if local assets are still present when the app is launch or pull down refresh action is taken? I couldn't seem to get it to work until I logged out and back in (which caused my timeline to get re-built and causes quite a delay within the app as I have > 100K photos backed up on my server.
Running Immich app version 1.76.0 and server 1.76.1
@alextran1502 commented on GitHub (Nov 1, 2023):
Hello is this issue still relevance? if not, can you help me close it?
@Sherlock1979 commented on GitHub (Nov 1, 2023):
Hi Alex, I changed the way I use Immich so I cannot test this scenario any more. I hope others have more valuable input to this. Otherwise, can be closed.
@yodatak commented on GitHub (Nov 1, 2023):
I got the same issue how could I help?
@fyfrey commented on GitHub (Nov 1, 2023):
@yodatak You could provide the app log exported as CSV directly after you encountered the issue and describe in a few steps what you did to trigger the issue. Please, also describe whether you use iOS or Android, how you selected your backup albums (e.g. only Recents, individual albums, excluded albums etc.). Thank you!
@Sevyn13 commented on GitHub (Nov 1, 2023):
How do you use not now? I'm curious because I back up pics from phone to Immich then delete from phone. So I have this same problem with the way I use it. Dodntou find a better way?
@Sherlock1979 commented on GitHub (Nov 1, 2023):
I upload the photos to the server with a different tool and then use the CLI to add the photos to Immich. This was I can freely delete photos on my phone as I wish without interfering with my Immich library.
@Sevyn13 commented on GitHub (Nov 1, 2023):
What tool do you use to go from phone to server?
@Sherlock1979 commented on GitHub (Nov 1, 2023):
Foldersync
Other considerations can be Syncthing, Resilio Sync, RoundSync. Each has its own pros and cons...
@A1bi commented on GitHub (Nov 25, 2023):
I'm experiencing the same issue. Deleting a file from device but keeping it in the remote backup results in a broken image icon in the Immich app. Logging out and in again resolves the issue until another file is deleted.
I've noticed a small spinner next to the photos icon in the bottom bar. I don't know what activity it is supposed to indicate, but it's constantly spinning at all times and therefore maybe related to this issue?
I'm also seeing a lot of the following log entries:
and
I'm using Immich server
1.88.2and Immich iOS1.88.0 build.128.@arnelap commented on GitHub (Mar 3, 2024):
Same issue om Android.
File deleted from device still showing as broken image in immich app.
Logout and then login again starts rebuilding timeline and fixed the issue. Another way to rebuild the timeline may be sufficient (eg as option I'm settings)
Note that the deleted images where in a folder that I used to set as a backup folder and then removed, bit the images stayed in the library. As there is no good way to select a lot of images at once I removed them from device...
Version 1.97 build 125
@mdafer commented on GitHub (May 18, 2024):
+1 and the problem is actually worse... Opening a removed file in the Android app deletes it from the cloud.
Details:
1- My phone and cloud were in sync.
2- I deleted the images folder from the phone (using File Explorer on Android)
3- I opened the Immich app
4- It was still showing the tick inside the cloud but no thumbnail
5- I clicked on a couple videos (with no thumbnail)
6- the videos I clicked on got deleted from the cloud
7- Restored the deleted folder from the trash
8- Logged out and back in to Immich Android app
9- Immich did not detect what was already synced and what was not, it reported that the whole folder needs to be uploaded
10- Background sync uploaded the whole folder (that was previously deleted and then restored) again
@alextran1502 commented on GitHub (May 18, 2024):
@mdafer Which phone model are you using? Do you mind recording a screen capture and sharing it here so I can try to reproduce what you are seeing?
@mdafer commented on GitHub (May 18, 2024):
@alextran1502 I will post a video (gif) shortly, but here's some more details:
I will post a video of what I did, but the results may not be the same as the changes seem to be permanent for now...
@alextran1502 commented on GitHub (May 18, 2024):
@mdafer can you create a test account on your instance and create a sample local maybe around 10 test asset to perform the reproduction of the error? That would be easier to follow and manage
@mdafer commented on GitHub (May 18, 2024):
Ah sure, I forgot that deduplication doesn't work across accounts... I'm on it
@mdafer commented on GitHub (May 18, 2024):
@alextran1502 I'm unable to reproduce the issue unfortunately. One thing I noticed though is that the issue happened on server version 1.105.0, while now I'm using 1.105.1. If this is a known issue of the previous version then I'm very sorry for wasting your time... Otherwise, the issue remains a mystery. And, on that account, I'm still unable to retrieve/upload the lost files, they are being considered as duplicates (I've already checked the trash and they're not there).
@alextran1502 commented on GitHub (May 18, 2024):
@mdafer try to go into App Setting > Advanced > remote duplicate database and try again
@mdafer commented on GitHub (May 18, 2024):
@alextran1502
@mdafer commented on GitHub (May 18, 2024):
Update, I found the 3 files in the archive, somehow they got archived, not deleted.
@pistej commented on GitHub (Dec 30, 2024):
Issue still persist:
Steps:
Deleting images one by one works correctly and timeline is also correct.
@bo0tzz commented on GitHub (Sep 12, 2025):
Is anybody still seeing this on the new beta timeline?
@jrasm91 commented on GitHub (Sep 15, 2025):
I think this has been fixed with the new timeline.