It has to work in the dead spot.
Every warehouse has a corner with no signal, and that is where the expensive scanner stops being a scanner. This runs on the phone the operator already owns, keeps working with the radio off, and never tells anyone a job succeeded when it did not.
Put a case away
Click a permission to grant or revoke it, then try the action it guards. Refusals name the capability that was missing — an operator who is told “not permitted” and nothing else files a support ticket; one who is told which key they lack asks the right person for it.
The queue survives the phone
A scan with no signal lands in a local queue and the word on screen is QUEUED — never a tick. The queue outlives the page being closed and the handset locking, and drains when the signal returns. If the server later refuses a queued scan, the queue turns red and says why, rather than counting down forever pretending it is still trying.
“I do not know” is an answer
When the handset is offline it cannot know whether a code is valid, so it says offline — explicitly not a verdict about anything. The failure we design against is the one where a system's silence gets read as approval, and the operator puts the pallet down.
The camera is checked before it is trusted
We have measured a phone that advertised barcode support, listed thirteen formats, and then returned nothing at all — hundreds of failed reads in a few seconds with the camera live and the screen blank. So the scanner decodes a known-good symbol at startup, falls back to its own bundled decoder if that fails, and shows which engine is running. Never a silent failure.
The hardware line comes out of the quote
Rugged scanning terminals are a capital purchase, a support contract and a training burden, and they are one dropped unit away from a gap in the shift. Ordinary phones are already in the building, already charged, already understood, and already replaceable at the counter.
What makes that work is not the camera. It is refusing to pretend: an honest queue, an honest refusal, and an engine that proves it can read before anyone relies on it.
Measured, not asserted
Case label to resolved product, through the camera, end to end: about half a second, with the check digit verified before the lookup was even attempted. We quote numbers we have taken off a real device, and we say so when a number is an estimate instead.
On the invented data. The codes, locations, operator names and permissions on this page were made up for the demonstration and match no real system. Why we build showcases this way.