mirror of
https://github.com/immich-app/immich.git
synced 2026-03-02 22:57:45 -05:00
Android: remote deletions are reuploaded after having cleared trash #6396
Closed
opened 2026-02-20 04:11:37 -05:00 by deekerman
·
40 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#6396
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 @kapuett on GitHub (Aug 16, 2025).
I have searched the existing issues, both open and closed, to make sure this is not a duplicate report.
The bug
On v1.138.0 with "sync remote deletions" enabled in beta timeline, assets are reuploaded to the server after deleting them via immich web and clearing trash afterwards. They will stay removed from the timeline if left in trash, but after clearing it they will re-appear on mobile and on web.
The OS that Immich Server is running on
Debian GNU/Linux 12 (bookworm)
Version of Immich Server
v1.138.0 to 1.42.0
Version of Immich Mobile App
v1.138.0 to 1.42.0
Platform with the issue
Device make and model
Google Pixel 7 Pro
Your docker-compose.yml content
Your .env content
Reproduction steps
Relevant log output
Deleted assets are the same for each upload/clearing of trash
Additional information
I have "Reset SQLite Database" on mobile, logged out and re-setup sync again with the same results.
@MichScha commented on GitHub (Aug 17, 2025):
Just wanted to open an issue - same behavior for me with same setup.
@kapuett commented on GitHub (Sep 14, 2025):
Removed [beta] from title as still exists with
1.42.0@XobSod commented on GitHub (Sep 30, 2025):
Can confirm for
1.143.1@ObsidianMaximus commented on GitHub (Oct 2, 2025):
Issue still exists in v2.0.0 - Stable Release
@alextran1502 commented on GitHub (Oct 2, 2025):
There are WIP to port the feature over to the new timeline
@ronzino83 commented on GitHub (Oct 6, 2025):
Two ways sync seems to does not work anymore in beta timeline.
Two way sync = if an asset is removed from smarpthone gallery app it will be deleted on immich server (web and app) AND if an asset is removed from immich server (using the app or the web) it will be deleted on smartphone as well.
Please add back this feature
@ncsufan8628 commented on GitHub (Oct 15, 2025):
also having this issue and remote deletions not syncing on v2 and Android
@effsee00 commented on GitHub (Oct 25, 2025):
Commenting to note issue is still present and to add additional FINE level app logging if helpful.
Android App Version: 2.1.0 build.3022
Server: v2.1.0
App setting: Sync remote deletions [EXPERIMENTAL] =TRUE
Immich_log_2025-10-25T11_28_34.688565.log
@ronzino83 commented on GitHub (Oct 25, 2025):
I wonder why this deletion problem is not the top priority of developers and not in the to do list as well. I stopped using my server waiting for a fix due to this.
@rokfor2000 commented on GitHub (Oct 25, 2025):
So did I.
Really annoying, especially if you use Immich on more than 1 device. I need to remember on which device the photo was taken to be able to permanently delete it...
@schildbach commented on GitHub (Oct 25, 2025):
Is this really limited to remote deletion? What does "remote" actually mean in this context, the web app is also remote.
I came to this report because if I delete an image via the webapp, then clear trash, the image gets reuploaded by the Android app automatically. So effectively I can't delete photos any more.
@effsee00 commented on GitHub (Oct 25, 2025):
Whilst not an ideal solution, as a workaround I've set my Trash auto-deletion to be 9999 days. This way I don't get 'deleted' images reappearing into my feed. I'm not pressed for storage space, so my deletions have 27 years to sit in the trash until this is resolved.
@ronzino83 commented on GitHub (Oct 25, 2025):
Problem is not limited to pictures that reappear. It is also impossible to keep in sync pictures on smartphone and server as where ever you remove them, they are not removed on the other side.
@kapuett commented on GitHub (Oct 25, 2025):
This works for me. Deleting only isn't synched from the server -> client. If I remove the assets from the device where they were created, they are deleted from both, server and client.
@effsee00 commented on GitHub (Oct 25, 2025):
You're right they are not deleted from either device. So far I see the scenario as:
a) 'Trash' the image from Immich mobile app or web UI - changes synced between Immich views and it is no longer shown in the feed. However the original image is still present at the original location in device filesystem and visable by other image apps.
b) 'Delete' the image from Immich trash, and the deletion is not replicated outside of Immich to the device filesystem. The original image is re-synced into Immich.
c) Using a 3rd party application to delete an image from the Android device will successfully delete the original image, and Immich's backup of this image is not affected - illustrated with the image still shown in the mobile app, but with only a 'cloud without tick' icon overlay.
It does seem strange this bug is prioritised as "Low" given that this does severely affect the ability to organise images locally.
@kapuett commented on GitHub (Oct 25, 2025):
That's not the case for this issue. Please open a separate one if it is for you.
Even in the title of the option it says "EXPERIMENTALLY", so it makes sense this is not a prio issue.
@ronzino83 commented on GitHub (Oct 25, 2025):
I did it was closed as duplicate of this. So here we are
I know.... But le me ask.... How a problem that breaks the user experience (you cannot delede assets) can be low priority ? Lower then developing image editor ? I wonder how you can delete wrongly edited images then 🤣
@XobSod commented on GitHub (Oct 25, 2025):
There is even a feature that allows you to remove duplicated photos (similar photos, taken within short period of time), but what sense does it make to use it, if the photos get reuploaded after you delete them ;)
@effsee00 commented on GitHub (Oct 25, 2025):
Your reproduction step #4 seems to suggest this is exactly the same issue. To be clear in my statement - the images are not being removed from the local device filesystem, which results in the image being re-uploaded when you clear the trash.
Despite it being an experimental feature, it doesn't stop it being important functionality. Regression of experimental features could still be considered important to many. It's reassuring that @alextran1502 has noted there is work in progress to fix it.
@ncsufan8628 commented on GitHub (Oct 26, 2025):
has anyone tried to revert to an older version where the delete functionality actually works?
really sucks and makes immich unusable to not be able to remove trash assets or use my PC to clean up unwanted assets and have them removed from the phone itself
@ronzino83 commented on GitHub (Oct 26, 2025):
The risk to mess the db is big doing this. And old immich versions where delete used to work have the auto sync function that does not as well as problems to keep track of already uploaded assets.
@ncsufan8628 commented on GitHub (Oct 26, 2025):
So I have a workaround - turns out its not the immich server that has the issue, its the android app. Downgrading my android app to v1.135 has solved my issue with remote deletions not syncing between devices.
@rokfor2000 commented on GitHub (Oct 26, 2025):
Really hopeful! Will give it a go tomorrow.
@ncsufan8628 commented on GitHub (Oct 26, 2025):
good luck! hope it helps. There may be a more recent version that works too - I just remember the feature working when I first migrated to immich at the start of the summer so picked that one when the latest couple releases prior to v2 didnt work.
@ObsidianMaximus commented on GitHub (Oct 26, 2025):
If I can recall correctly, it was the android app that was broken since the new UI came.
Before this UI, the old one had no issues, but we had an option in the app to enable the new interface (which was in beta back then) and that had same issues with remote deletions.
So yeah, reverting to any version with the old UI should fix it.
@rokfor2000 commented on GitHub (Oct 29, 2025):
I have switched to the old timeline in the new app hoping it'd fix it, but unfortunately it didn't I thought this is what you referred talking about a new UI, but it seems there must have been some previous UI change as well?
@schildbach commented on GitHub (Oct 30, 2025):
This bug is still present in Immich Server 2.2.0.
@rokfor2000 commented on GitHub (Oct 30, 2025):
There's always a silver lining 2.2.0 has [Web] UI improvement for the review duplicates screen. Which is important because we gonna have to delete the same duplicates over and over 😂
Anyway I was testing trying to decide if I should switch to Immich and apart from this (rather annoying) bug, I really like it. I'm going to make a leap of faith ... hopefully will be resolved soon.
@Nevaehni commented on GitHub (Nov 7, 2025):
Issue still exists with v2.2.3
@smrky1 commented on GitHub (Nov 20, 2025):
I believe the issue is now fixed starting from 2.3.0. Tested with 2.3.1 today and when I delete an asset through web app and then clear the Trash, it is removed* on my Android phone as well and will not get re-uploaded.
*it is actually not removed from the device, but the filename is prepended with ".trashed-". I believe this is the desired behaviour (as it is the same as how Google Photos trash works). Although I did not figure out when / how are the .trashed- files eventually deleted from the device file system.
@HaDeSMonsta commented on GitHub (Nov 20, 2025):
At least on my Samsung it is actually moved to the internal trash and marked for deletion in 30 days, so this is probably how your phone handles trashed files (?)
@smrky1 commented on GitHub (Nov 20, 2025):
Seems the ".trashed-" files are automatically deleted by either Google Photos / Google Files app or by Anroid OS itself (after 30 days).
After emptying the Trash in Immich, I can still see the assets show up in Google Photos / Google Files Trash (those are the ".trashed-" file in my file system).
When I empty the Trash in either of the Google Apps, they are gone for good (happens automatically after 30 days as it says in those apps). I cannot quickly verify if they get removed even if you do not have either of the Google apps installed (maybe Android OS clear them automatically).
Anyways I can revert my 9999 days period for emptying Immich Trash back to default 30 as the issue is finally fixed :-) Thanks!
@kapuett commented on GitHub (Nov 20, 2025):
Can confirm this as fixed with v2.3, closing the issue.
@dpad commented on GitHub (Nov 21, 2025):
I'm sorry to comment on this supposedly closed ticket, but it still seems to not be working correctly for me.
I've updated to Server v2.3.1 and App v2.3.0.build.3027.
Behaviour I'm still seeing:
I can repeat this any number of times and the photos never delete, they keep re-uploading.
Is there some new setting I'm missing? Do I need to clear some kind of cache?
@effsee00 commented on GitHub (Nov 22, 2025):
I can reproduce what you're doing, and assume you're not allowing the changes to sync to the phone.
Updated steps:
3. I delete them from the web UI directly (not from the app).
3b. Open immich app allow changes to sync.
3c. Observe images get removed from Immich view, and phone native image app
4. I got to "Trash" on the web UI and delete them permanently.
4b. Open immich app allow changes to sync.
5. photos still deleted.
It seems the process flow for deletions, the mobile app needs to be aware of the image going into Trash. In a normal flow the images would likely sit in trash for x number of days (before being deleted automatically) and this sync would happen normally.
I imagine that the scenario you're testing this with (send to trash, and delete from trash within a few minutes) is an edge case that the flow isn't engineered for.
@schildbach commented on GitHub (Nov 22, 2025):
That would be unfortunate. I think emptying the trash just after trashing a photo is a very common usecase. Maybe you don't do it for every trashed photo, but every now and then there is a photo you really want to make sure it's gone.
@effsee00 commented on GitHub (Nov 22, 2025):
Agreed - it's a poor user experience in that case, so possibly still a bug. Would be good to get clarification of expected behaviour from the devs.
@alextran1502
@kapuett commented on GitHub (Nov 22, 2025):
Cannot reproduce what is described here. Images are not uploaded again like in the original issue description. I can clear trash immediately after the image vanished from Android App and it is not uploaded again. @dpad just to be sure: you do have the remote sync feature activated in the app, right? Did you log out from the app and tried again?
@dpad commented on GitHub (Nov 22, 2025):
@kapuett Thanks for checking! Sync remote is enabled (as far as I understand it) --> the "Sync Status" screen shows a tick next to the Sync Remote job. I did not log out from the app, so I'll try that now and report back...
(Below is after having logged out and back in to the app.)
First I tried deleting on web UI then immediately clearing trash: Immediately reuploaded.
Next I tried deleting on web UI, then waiting for the app to sync (deleted image disappeared from app), then cleared trash on web UI. This time the image seems to stay deleted. So I think @effsee00 is possibly right.
@smrky1 commented on GitHub (Nov 22, 2025):
This is the issue. You are not allowing the Android app to synchronize and to find out that you 1) trashed the image in the web app 2) emptied trash in the web app. Seems the Android app evaluates it as a completely new image and reuploads. I can reproduce it now...
In other words it only becomes a problem if you empty the trash in the web app before allowing the mobile app to synchronize.