The status page is green but the site is down — why that happens, and what to do
Updated 27 August 2026 · by Cassian Wei · 3 min read
Every large outage produces the same chorus: "the service is completely down but the status page says everything is operational." That's not (usually) a cover-up — it's how most status pages are built. This guide covers why official status pages lag reality, how to answer "is it them or me?" in under a minute, and how to stop depending on a vendor's self-reporting at all. (Disclosure: Watchpup, which publishes this guide, sells — well, gives away — independent monitoring. The first two sections are useful without it.)
Why the official status page is the last to know
- A human has to declare the incident. On most platforms, the status page isn't wired to monitoring — it's a CMS. Something breaks, an engineer confirms it, someone decides it's incident-worthy, comms writes a careful sentence, someone with access posts it. Every step is reasonable; together they add up to the familiar 20–60 minutes of "operational" while your requests time out.
- The wording is negotiated. Declared downtime can trigger SLA credits and contract clauses, so there's a standing incentive to say "degraded performance for some users" — and to say it late. Not fraud, just gravity.
- Partial truths are true. "Some users in some regions" can be accurate at global scale while being a 100% outage for you. A status page aggregates; your traffic doesn't.
- The status page shares the failure domain. If the page — or the monitoring that feeds it — runs on the infrastructure that just failed, it fails green. The best-run vendors host their status page with a different provider precisely because of this; not all do.
"Is it them or me?" — the 60-second triage
When a service you depend on stops responding, in order:
- Check from a network that isn't yours. A single independent HTTP check
answers most cases instantly. Watchpup's instant check runs one
from the network edge — no account, no JavaScript, and the result is a shareable link
for the team chat:
curl "https://watchpup.watchpup.workers.dev/api/check?url=https://api.vendor.example/health"
- Phone off Wi-Fi. Crude, effective: if it loads on mobile data, the problem is between your network and them, not them.
- Crowd signal. Search the service's name on Bluesky or an outage aggregator. Fifty strangers posting "is X down?" in ten minutes is a better detector than most monitoring.
- The official status page — last. It's still worth reading (scope, ETA, workarounds) once an incident is declared. Just don't use it as the detector.
Monitor your dependencies like you monitor yourself
The durable fix: put your own checks on the third-party services your product depends on — the payment API, the auth provider, the email relay, that one webhook endpoint. When your app misbehaves, you'll know within a minute whether a dependency is the cause, from monitoring you control, with alerts in channels you watch.
curl -X POST https://watchpup.watchpup.workers.dev/api/monitors \
-H 'authorization: Bearer wp_...' -H 'content-type: application/json' \
-d '{"kind":"http","name":"Payments API","url":"https://api.vendor.example/health","interval":60}'
We eat this cooking: /s/mcp is a public Watchpup status page independently watching ten popular MCP servers we don't operate — real protocol handshakes every 5 minutes, uncoupled from any vendor's self-reporting.
If you run a status page: don't build the thing this guide warns about
- Wire it to checks, not to a human. A Watchpup status page reflects live monitor state — when the check fails, the page shows it, no comms approval in the loop. You can still add human-written incident notes on top; the point is that the detector is automatic.
- Host it outside your failure domain. If your product runs on provider A, your status page should not. (Ours runs on Watchpup's infrastructure, not yours — that's the whole point.)
- Mind the alert-channel trap. If the thing that goes down is your email provider, email alerts die with it. Route alerts somewhere independent — Discord, Slack, a webhook, an address at a second provider. One alert channel that shares fate with the monitored thing is zero alert channels.
Honest limits
Independent monitoring has blind spots too. A single-vantage check can miss regional failures (green from our edge, down from yours) and can occasionally false-alarm on a network path issue. And the monitor itself can go down — the who-monitors-the-monitor problem never fully goes away; you can only move it onto infrastructure with a better track record than the thing being watched. The claim here is narrower than perfection: an automatic check from outside the vendor's walls will beat the vendor's own status page to the truth almost every time.
Watchpup is free uptime & cron monitoring — 1-minute checks, heartbeats, TLS/domain expiry, status pages, alerts everywhere. Sign up, try the live demo, or read more guides.