An incident update is often treated as a message written after the real work begins. Engineers investigate. Someone posts a short note. Support handles the consequences.
For a customer whose work has stopped, that order is backwards. The update is part of the product they are using in the most uncertain moment it can create.
They need to know whether the problem might affect them, whether a submitted action is safe, what they should do now, and when they can expect a more complete answer. A vague “we are aware” message does not answer those questions. Neither does silence while a team waits for perfect certainty.
A dependable incident update reduces uncertainty without pretending the investigation is finished.
That makes incident communication a product capability: it needs an owner, a reliable path, useful states, and a clear completion condition.
Start with the customer decision
An incident page should help someone make the next safe decision, not reproduce an internal chat transcript. Before writing, name the decisions that are in play:
- Can a person safely retry, or might that create a duplicate charge, message, or record?
- Is the affected feature unavailable, slow, inconsistent, or merely delayed?
- Is a workaround safe for every account, or only for a defined group?
- Is work accepted before the incident still processing?
- Does the customer need to preserve evidence, pause a workflow, or simply wait?
These questions make an update concrete. “We are investigating reports of delayed exports” is more useful than “service degradation” because it identifies the job at risk. “Do not resubmit completed exports; we are reconciling the queue” is more useful than asking people to try again until something works.
The Google SRE book’s guidance on communication and collaboration makes the operational point plainly: incident communication needs clear roles and regular updates. The product extension is equally important: the customer-facing version must explain the consequence in language that supports a decision.
Publish a truthful first state
The first update is rarely complete. That is normal. The mistake is treating incomplete information as a reason to say nothing.
Use a stable initial state that separates what is known from what is still being investigated:
| State | What the customer should learn | | --- | --- | | Investigating | Which product area may be affected, when reports began, and whether there is a safe action to take now. | | Identified | What the team believes is happening, the current scope, and whether the recommended action changed. | | Mitigating | What is being restored or contained, what may still be unreliable, and the next promised update. | | Monitoring | What has recovered, what is being watched, and how to report an ongoing problem. | | Resolved | What is confirmed restored, how affected work was handled, and when a follow-up will be available if one is warranted. |
Do not invent precision. If the impact is still being measured, say “some workspaces” rather than naming a percentage that came from an incomplete sample. If there is no estimated recovery time, state the next update time instead. A missed estimate harms trust twice: once in the outage and again in the promise made about it.
Give accepted work its own answer
The hardest incident question is often not whether a page loads. It is: “What happened to my work?”
An accepted payment, import, invitation, export, or account change needs a durable answer. The incident update should point people to the right place to find it: an operation reference, activity record, delivery status, or support route that can look up the exact outcome. If the answer is not yet available, acknowledge that specifically and say when reconciliation information will be updated.
This is where product design and incident response meet. The NIST incident-response guidance treats recovery as a process of restoring normal operations and learning from the event. For customer-facing systems, recovery also includes resolving the uncertainty around accepted work. A green status indicator is not enough when someone still cannot tell whether they should re-run a consequential action.
Design the normal product so that it can answer this question under pressure. Preserve operation identifiers, show meaningful status history, make retries idempotent where possible, and give support the context needed to investigate without asking the customer to reconstruct every click.
Make the update path dependable too
A status page that disappears with the main application is not an incident channel. Nor is an update flow that depends on the same overloaded database, deployment pipeline, or sign-in route that is failing.
Test the communication path like any other critical surface:
- Can the designated incident lead publish without a production deploy?
- Can a customer reach the page while signed out and on a constrained connection?
- Is the page’s own availability monitored from outside the affected system?
- Can teams target a message to people whose work is genuinely affected without exposing account details publicly?
- Does every update show its time and preserve earlier statements rather than silently rewriting history?
Accessibility matters here too. A color change alone cannot communicate severity or recovery. Use clear words, timestamps that can be understood in context, semantic headings, and plain descriptions for status indicators. During an incident, customers may be tired, rushed, translating the page, or relying on assistive technology. The channel should make the important thing easier to understand, not merely look calm.
Close the loop after the graph turns green
“Resolved” should mean more than a monitoring alert cleared. Confirm the customer-visible behavior, reconcile work that may have been delayed, and make the next action explicit for anyone still affected.
A concise follow-up can answer four durable questions:
- What did customers experience?
- What did the team do to restore safe service?
- What happened to work already in progress?
- What will change to reduce the chance or impact of a repeat?
The explanation does not need to disclose sensitive architecture or blame an individual. It does need to be honest enough that customers can tell whether their concern was understood. If a deeper review will follow, give a date or a clear condition for publishing it—and fulfill that promise.
Treat clarity as part of resilience
Reliable systems still have failures, degraded dependencies, and decisions made with partial information. Customers judge the product not only by whether that happens, but by whether they can safely navigate it when it does.
Build incident updates around the customer decision. State the scope honestly. Distinguish accepted work from failed work. Make the communication route resilient, accessible, and independent enough to be useful. Then close the loop with a real answer.
That is not public relations around an outage. It is a product feature that helps people keep their footing when the product cannot yet do everything it promised.

