17 February 2026

When the SDK lies politely

Retry storms, backgrounded sessions, and the quiet inflation of “engaged.”

The Earth seen from space, a figure for distant and delayed measurement

Vendor SDKs are not villains. They are optimistic. They retry when the radio drops. They open a session when the process wakes. They count a screen as viewed because a view controller existed for 400 milliseconds while the user was hunting for the close button.

Funnel Restoration exists because those manners accumulate. A checkout that “recovers” after a failed card often recovers twice in the event store: once from the client retry, once from the confirmed payment packet. Teams celebrate the recovery. The bank has a simpler number.

The polite lie we see most often in United Kingdom consumer apps is the backgrounded session. A fitness product we sat with in 2025 counted lock-screen widgets as class attendance. The founder was not dishonest. The SDK had a default. Nobody had written a sentence that said “a class is a paid booking.”

Our method is unfashionable. We ask for the packet that a solicitor would recognise: payment captured, order dispatched, ticket scanned. We leave the hover events in a lab table. If your product truly lives on micro-gestures, say so, and keep them off the board paper.

Helena’s clinic line, which students now quote without affection: “If it can fire while the phone is in a coat, it is not engagement.”

Back to the journal