Tallwatch
Back to blog
7 min read
IncidentsGuide

Why incident screenshots make downtime triage faster

A status code tells you something failed. A screenshot shows you what a visitor actually saw. How screenshots cut the first ten minutes of an incident down to one.

NK

Nabin Khair

Founder

Why incident screenshots make downtime triage faster

Most downtime alerts say the same thing: a URL, a status code or an error, and a time. "https://example.com returned 502 at 03:14." That is enough to wake you up. It is rarely enough to tell you what to do next.

So the first thing almost everyone does after acknowledging is open the site in a browser. Then a second tab for the dashboard. Then maybe a phone on mobile data, to check it is not just their network. Those first few minutes are not fixing anything. They are just answering "what is actually broken?"

A screenshot captured at the moment the incident opened answers that question before you even sit down.

What a screenshot tells you that a status code does not

A status code is one number. A rendered page is the whole story a visitor sees. The difference matters most for the failures that look alike on paper:

  • A 502 from your CDN vs. a 502 from your app. The CDN's branded error page and your framework's error page look nothing alike. One means the edge cannot reach your origin. The other means your origin is up and throwing. Different people, different fixes.
  • A maintenance page. Someone turned on maintenance mode and forgot to schedule it. The screenshot shows the banner. Nobody needs to debug anything. (If this happens often, look at maintenance windows.)
  • A firewall or bot challenge. The page asks visitors to verify they are human. Your site is up, and your monitor is the one being stopped. More on that in uptime monitoring behind a WAF.
  • A broken deploy. A half-rendered layout, a missing stylesheet, or a raw stack trace on the page. You know immediately it is a code problem, and probably which release caused it.
  • A domain or hosting problem. A parked domain page, a hosting provider's "site not found," or a certificate warning. Those point at DNS, billing, or renewals, not at your code.

Each one sends the on-call engineer in a different direction. Without a picture, they find out which direction only after a few minutes of poking. With one, they know at a glance.

Screenshots help most when the check got nothing back

You might think screenshots only matter for pages that returned something. The opposite is closer to true.

When a check times out, gets a connection refused, or fails DNS, there is no response body to look at. The alert is just "it did not answer." That is the most ambiguous alert there is. It could be a full outage, a routing problem between one location and your host, or a slow backend that answers a second after the timeout.

Trying to load the page in a real browser at that moment settles a lot of it:

  • The page renders fine. The site is reachable, at least from where the screenshot was taken. The problem is narrower: a specific network path, a region, or a timeout set tighter than your site's slowest responses. Still worth looking at, but probably not an all-hands outage.
  • The page does not render either. Now you have two independent signals agreeing that something is really wrong. That is a much stronger reason to start the incident bridge.

This is the same idea behind multi-region consensus: one observation is a rumor, two that agree are evidence. A screenshot is one more independent witness.

Faster triage, shorter outages

It is easy to dismiss a few minutes of investigation. But those minutes sit at the front of every incident, which is exactly where they are most expensive. Time to detect and time to start fixing both count toward how long customers are affected. If you track MTTD and MTTR, the gap between "alert received" and "I know what is broken" is often the largest single chunk of avoidable time.

Screenshots also help the people who are not on call:

  • The person who acknowledges from a phone. They can see what is broken from bed and decide whether to escalate before opening a laptop.
  • Whoever writes the status page update. "Customers see an error page on checkout" is a better first update than "we are investigating elevated errors." If you need help with wording, see what to say on a status page during an outage.
  • Support. When a customer writes in, support can compare what the customer describes with what the screenshot shows, instead of guessing.
  • The postmortem. A timestamped screenshot is evidence of what visitors actually experienced. It makes the postmortem timeline easier to write and harder to argue with.

What makes a good incident screenshot

Not every screenshot is equally useful. A few things separate a helpful one from noise:

  1. Taken when the incident opens. A screenshot from ten minutes later may show a recovered page and tell you nothing. Capture it at detection time.
  2. A real browser render. A screenshot of raw HTML misses the most common failures: broken scripts, missing styles, client-side errors. It needs a real browser engine to be worth looking at.
  3. Attached to the incident. If you have to go find it in another tool, people will not. It should be right there next to the error, the failing regions, and the timeline.
  4. Next to the other evidence. The screenshot is one piece. The status code, response time compared with normal, DNS and TLS details, and which regions failed all belong in the same view so you can read them together.
  5. Private by default. Screenshots can show customer data, admin pages, or internal error messages. They belong to your team, not to the public internet.

What screenshots will not tell you

A screenshot shows the page, not the cause. It will not tell you which database query is slow or which service is out of memory. For that you still need logs and metrics from inside your systems. (We covered where the line falls in monitoring vs observability.)

It also cannot see behind a login unless you give it a way in, and a public page loading fine does not prove that logged-in users are fine. Use screenshots to answer "what are visitors seeing right now," and lean on your own tooling for "why."

How Tallwatch uses screenshots

When an incident opens in Tallwatch, it captures a real browser screenshot of the monitored page for each failing region and attaches it to the incident. It does this even when the check got no response at all, because that is when a picture helps most. The screenshot sits alongside the rest of the incident evidence: which regions failed and how, response timing compared with the usual baseline, and DNS and TLS details. The same view is available when you open the incident from an alert, so whoever is on call can look before deciding what to do.

Screenshots do not replace the basics. You still want incidents that only open when an outage is real, alerts that reach the right person, and a clear incident workflow. But once the page goes off, a picture of what visitors saw is the fastest way to turn "something is down" into "here is what is broken."

Related

Keep reading

False alerts and status pages.

How to explain downtime to non-technical founders and investors

How to explain downtime to non-technical founders and investors

They do not need Kubernetes. They need impact, duration, cause at the right altitude, and what changes so it is less likely next time.

NKNabin Khair
When a CDN outage is your outage (even if origin is fine)

When a CDN outage is your outage (even if origin is fine)

Customers do not care that your origin returned 200 on a private path. If the CDN is how they reach you, its bad day is your incident.

NKNabin Khair
What acknowledge means on an incident (and why it matters)

What acknowledge means on an incident (and why it matters)

Ack is not resolve. It means a human owns the problem, and it should stop the escalation clock from climbing further.

NKNabin Khair