3
Proposal: Rust Sync Engine — Eliminating iOS Background Sync Failures at the Architecture Level
Source: immich-app/immich#26950 · opened by @santoshakil
> TL;DR: The iOS background sync bugs (#22850, #22522, #22101, #22320, #20331 — 267 comments combined, all open) share one root cause: Dart isolates can't share memory. A Rust shared library eliminates this by giving foreground and background the same Mutex<Connection> — no locks, no heartbeats, no 5-second timeout. I built a working proof-of-concept with 82 passing tests on real devices. --- The Root Cause: One Picture Current — fragile lock coordination: Proposed — shared Rust engine: --- The Code Causing These Bugs [background.service.dart]( Bug 1: Background gives up after 5 seconds (#22850 — 42 comments) Foreground holds lock → background waits 5s → gives up → user's photos never upload. Bug 2: False crash detection → concurrent writes (#22522 — 50 comments) Foreground busy rendering → doesn't respond in 3s → background steals lock → both write → UNIQUE constraint failure. Bug 3: Orphaned lock after kill (#22101, #20331 — 140 comments) …
No pledges yet. Be the first to back this.
Comments
Similar requests
[Feature] Notification when force closing app on iOS
1 vote · 0 comments
[Feature] iOS app stops uploading photos when app is closed (no reliable background sync)
10 votes · 0 comments
(iOS) Focus modes can inadvertently disabled background app refresh, which prevents automatic backups from running
1 vote · 0 comments
[Feature] Upload both JPEG and RAW files from a JPEG+RAW item on iOS
29 votes · 0 comments
[Feature] Ability to upload 'unedited photos/videos' from the iOS app
2 votes · 0 comments
No comments yet.