Remote diagnostics that report problems from the field, before anyone picks up the phone.
Our client's staff use a mobile app on handheld devices every day, across many sites. The devices are a mix of brands and models bought over several years, running different operating system versions. When something went wrong, the support team had little to go on. We gave the app a way to report on itself, from every device in the field.
Supporting an app on devices you can't physically reach is hard. Four things made it harder.
Someone on site would say "the app closed" with no idea what screen they were on or what they had tapped.
Nobody could plug a cable into a device at a distant site to read its logs.
Things that went wrong quietly, without a crash, were never reported at all.
A problem on one model couldn't be reproduced on another, so it was hard to know where to start.
The client wanted to know about problems before staff called, with enough detail to act on them.
We reviewed the app's architecture and added a remote diagnostics pipeline, all the way from the device to the server.
A crash, or a quiet failure the app recovers from.
A report is written before the app closes.
Delivered in the background as soon as there's signal.
Removed from the device only once the server has it.
Filtered by model, version or time to spot patterns.
The app catches any unexpected crash the moment it happens and saves a detailed report on the device before the app closes.
Signal on site is often weak or patchy. Reports wait safely on the device and are only removed once the server confirms they arrived. Damaged files are cleaned up so they never block the queue.
Diagnostic reports are sent at key points where something unexpected happened, even though the app carried on. They're rate limited per type, so one repeating issue can't flood the server.
We moved the whole app onto a single logging approach, so every screen writes logs the same way. That's what makes the log history in each report useful.
Reports are kept small. Very long log lines are trimmed, and detailed network logging only runs on development builds, never in the field.
Every report lands in one place, linked to the device it came from. Support can filter by device model, app version or time and see patterns at once.
Support moved from reacting to complaints to finding and fixing problems on its own terms.
Crashes show up as they happen, often before anyone on site calls in.
Every report has what's needed to investigate, without asking staff what they were doing.
Every report is tagged by make and model, so device specific problems stand out.
Silent failures are visible for the first time.
Every fix is tied to a report, and confirmed when that problem stops coming in.
We can give your apps the visibility to find and fix problems before your users have to report them.
Start a Conversation