Skip to content

Scanning & GPS

Offline scanning: the exact contract

What an offline scan carries, what it does not, when things sync, and what happens when the server refuses one. The details an auditor asks about.

← All guides5 minUpdated Jul 28, 2026

The short version

Scan with no signal and nothing about your pace changes. Scans queue on the phone and replay to the server in the order you took them when connectivity returns. The queue survives airplane mode, a dead zone, or a basement — you can verify this on the free plan in ten minutes.

What an offline scan carries

Each queued scan holds exactly what a live one does at the moment of capture:

The barcode

And its symbology, exactly as a live scan records it.

The capture time

When you pointed the camera — not when the network came back.

The coordinates

Where you stood, captured on the phone with no signal needed.

What it does not carry: names, categories, notes or photos. Those are enrichments you add once the scan exists — offline capture is about not losing the count, not about doing data entry in a dead zone.

Capture time is the time that counts

When the queue replays, each scan is recorded with its capture time, not its sync time. If you counted the mezzanine at 9:40 and the phone reconnected at 11:15, the record says 9:40.

Replay is in order, and re-scans merge

The queue drains serially, in insertion order. A barcode that already exists in your account gets its scan count raised on the existing record — the database performs that increment under its own row lock, so a colleague scanning the same shelf live while your queue replays cannot cause a lost update or a duplicate row.

When the server says no

If the server refuses a queued scan, it is dropped from the queue — and you are told how many were refused and why. Nothing disappears silently. The honest phrasing of the guarantee is exactly that: nothing is lost without you being told, which is the guarantee that actually matters at reconciliation time.

When does the queue drain?

When you open the app, when it returns to the foreground, and when you tap the queued count. In practice that means walking out of the dead zone and glancing at your phone is enough — and if you want it to drain right now, the tap is there.