Offline field applications

Resolve a field conflict without losing the technician's notes

A sync conflict is a disagreement between versions, not a network fault. Preserve the local work, compare the changed fields and record the chosen resolution.

In this article

Establish which state is actually blocked

Ask the worker to open the pending-work screen and read the status for the affected report. Waiting for connection, Sign in to continue and Needs review require different actions. Repeatedly tapping Sync can make the situation harder to explain without changing the underlying cause.

Find the command ID and check whether the server has already accepted it. If it has, recover the receipt through the supported workflow. Do not recreate the report manually before checking for an existing result.

Keep the device's local data intact. Reinstalling the PWA or clearing site storage can remove the only copy of an unsent observation.

Compare the fields that caused the disagreement

Consider a synthetic job where the office changes the assigned asset while a technician records measurements against the previous asset. Automatically accepting the latest timestamp could attach valid measurements to the wrong equipment.

Show the base value, current office value and proposed field value where relevant. Ask the authorised job owner to decide whether the observation belongs to the original asset, the replacement or a separate visit.

Preserve unrelated notes and photographs during that decision. Resolving one conflicting field should not replace the entire report with either version.

Submit the resolution as a recorded action

Use the application's conflict-resolution command so the decision has an actor, time and relationship to the rejected submission. Where the accepted meaning changes, give the new command its own identity linked to the original.

Confirm the final server receipt and reopen the report from the office view. Check the asset, observations and attachment count. A cleared queue badge alone does not prove the intended report survived.

If the resolution cannot be completed, leave the item in a named review state with an owner and next step. Do not hide it by marking it synchronised locally.

Escalate with useful evidence

Provide engineering with the app version, schema version, command ID and state transitions. Include sensitive report contents only through an approved support channel when they are necessary.

Document whether other queued jobs can continue safely. One conflicted report should not automatically block unrelated work unless ordering or shared state makes that restriction necessary.

Primary sources

MDN: IndexedDB

References checked 11 September 2026.