A field action has several states
Keep these labels visible. A spinner disappearing is not sufficient proof of persistence, and a queued photograph may still need upload. Minimize sensitive local data and define what happens when an account is revoked while work is offline.
Draft: the user is still editing the delivery outcome.
Queued: the action is stored locally with a stable operation ID.
Syncing: a request has been sent, but completion is not confirmed.
Confirmed: the server accepted it and returned the authoritative version.
Needs review: permission, data or version conflicts prevent acceptance.
A hypothetical conflict
A rider records a failed delivery offline while an operator changes the assignment. The server should compare record version and authorization when synchronization resumes. An operation ID helps prevent duplicate submission, but it does not decide whether the stale action remains valid.
Do not silently use last-write-wins for payment or delivery evidence. Preserve the proposed action, explain the conflict and route it to an authorized resolution. Distinguish retryable network failure from a permanent validation error so retries do not loop indefinitely.
Device test matrix
Adapt to the actual supported devices and OS versions
| Condition | Test | Expected evidence |
|---|---|---|
| Weak connection | Interrupt request after send | No duplicate action after retry |
| App restart | Close while upload is queued | Queue and status recover appropriately |
| Permission refused | Deny camera or location | Clear fallback and no crash |
| Account revoked | Sync after access is removed | Server refuses unauthorized action |
| Notification received | Open an old notification | Fetch current authorized state |
Platform and release tradeoffs
A cross-platform UI can share application code while native permissions and OS background limits still require platform-specific tests. Browser background synchronization has limited availability, so a mobile-web design needs a supported fallback; do not assume it behaves like a native background worker.
Agree test devices, local storage policy, store accounts, signing credentials and submission responsibilities. A lean first release can restrict offline features, but should explain those limits rather than claiming universal connectivity independence.
Frequently asked questions
Can notifications be the source of truth?
No. Use them to prompt a fresh authorized read; they can be delayed or stale.
Does retrying guarantee exactly-once processing?
No. Define idempotent server behavior and test interrupted responses as well as repeated requests.
