Snapgate

The night the phone froze us without saying so

13 September 2026

The app was finished, installed and running. You took a photo and nothing happened. No notification, no log line, no error. Silence.

Everything we checked, and everything that was fine

The service was alive and in the foreground. Permissions granted. The photo correctly indexed by the system with an identifier higher than our baseline. The process not frozen according to Android itself. No restrictions declared in the app's own configuration.

Every check ruled out a hypothesis and left us with fewer places to look.

The misdiagnosis

We concluded that the system's change-notification mechanism was being muted for background apps, and built an alternative: periodic polling. That didn't work either.

Then we did what we should have done at the start: add a heartbeat. A log line every few seconds saying simply "still here". And the pattern appeared. The heartbeat stopped about thirty seconds after leaving the app, and never came back.

It wasn't that notifications weren't reaching us. It was that nothing was running at all. The manufacturer was freezing the entire process, foreground service and all, without killing it and without reporting it through any of the channels we had checked.

The fix was a single switch

Removing the app's battery restrictions in the system settings. One switch. It worked first time, and revealed that our diagnosis had been wrong: the original mechanism had never been broken, and the notification arrived in 415 milliseconds.

What we took away

A silent failure is worse than a loud one. Had the system told us "I froze this app", it would have taken five minutes. Saying nothing, it cost us hours building a solution to a problem that didn't exist.

Instrument the happy path, not just the errors. We only logged when we detected something. That meant we could not tell "nothing happened" apart from "I am dead" — two situations with opposite fixes.

And above all: this will happen to your users. It isn't a development anecdote. Anyone installing the app on one of those phones will experience exactly the same thing, without logs and without knowing why. That is why removing the battery restriction stopped being a note in the manual and became a step in the setup flow, with its state verified by the app: if it isn't done, it tells you and takes you there.