Engineers App
Getting Paged
What happens on your phone when an incident hits, from the FCM arriving to your finger on the ACKNOWLEDGE button.
Anatomy of a page#
When the paging engine decides you should be alerted, the backend sends a high-priority FCM data message with severity, source, title, and incident UID. The app then:
- Wakes the device: high-priority FCM bypasses Doze on Android and the phone screen turns on.
- Shows a full-screen takeover: even if the phone is locked, even if you're inside another app. The notification has
fullScreenIntent: true+category: call, which is the same plumbing incoming-call apps use. - Plays a 30-second alarm: the
reliable-page-v2channel usesimportance.max, so it sounds even when the phone is on vibrate (DND override depends on per-device settings). - Vibrates aggressively: strong default Android pattern.
- Stays sticky: the notification can't be swiped away. You either ACK or DISMISS; the system won't silently drop it.
It's intentionally hard to miss
The Incident Page screen#
Tapping the notification (or being pulled in by the full-screen intent) takes you to the Incident Page screen. Everything you need to decide is one screen:
- Background colour = severity (red for critical, orange for high, amber for medium, slate for low).
- Severity pill + source label at the top.
- Title: the incident's human-readable description, as it appears on the dashboard.
- Occurrence count: how many times this fingerprint has fired (so you can tell a flap from a one-off).
- Big white ACKNOWLEDGE button at the bottom.
- Dismiss (will escalate) link, see below.
Acknowledge#
Tapping ACKNOWLEDGE hits POST /api/v1/mobile/incidents/:uid/ack. The backend marks the incident as acknowledged, records your response time, cancels any in-flight escalation pages, and writes an engineer_acknowledged event to the activity trail. The screen closes with a toast confirming the ack.
If you ACK a second time (e.g. someone else already ack'd while you were unlocking your phone), you'll get back already_acknowledged: true and the toast says "Already acknowledged" no error.
Dismiss (will escalate)#
Sometimes you really can't respond, you're driving, in a meeting, asleep through your alarm. Tapping Dismiss closes the screen without acking. The incident keeps its open status, the escalation timer keeps running, and after the timeout the paging engine escalates to the next step / tier and pages the next engineer.
Dismiss is honest
Quiet notices for low incidents#
A new incident waits for the AI severity classifier before anyone is paged (see Classify before paging). When its final severity is low, nobody is paged: the people who would have been get a quiet notification on the reliable-info-v1 channel instead, at normal priority, with no alarm and no full-screen screen. There is nothing to acknowledge and nothing escalates. If the incident later rises to medium or higher, it pages as usual. (App builds from before notices existed show it as a severity change to LOW.)
Severity-change notifications#
Because the classifier answers before the page goes out, the page you get usually already carries its verdict. If it answers after you were paged (it was too slow, so the incident paged to be safe) and changes the severity, you get a quiet banner, not another page. Loud alarm only fires on the original page; reclassifications are informational.
- Channel:
reliable-info-v1: default importance, no full-screen intent. - Title: "Severity upgraded to CRITICAL" / "Severity downgraded to MEDIUM".
- Tap action: opens the incident detail screen (not the full-screen page screen, you already responded).
- Color: red header for upgrades, green for downgrades.
Why no re-page on upgrade?
Multiple pages at once#
If two incidents arrive within seconds of each other, you get two separate notifications stacked in the tray. Each has its own incident UID, the local-notification IDs are derived from the UID, so they don't collide. Tapping either opens the corresponding incident.
If the same incident pages you twice (e.g. you ignored step 1 and step 2 fired), the second page replaces the first in the tray (same notification ID), so you don't end up with five copies of the same alert.