← Back to status

Historical uptime

Monthly availability per component, and every incident on record. Observed uptime counts every failed check, however brief. SLA downtime counts only continuous failures of five minutes or more — the definition of Unavailability in §1 of the SLA, and the figure the 99.5% non-binding monthly target applies to. Both exclude scheduled maintenance and both are measured against the time the monitor actually ran.

August 2026

Component Observed uptime SLA downtime Days measured
API 99.98 % 24
Web app 100 % 24
Client portal · informational 99.98 % 24
Website & sign-up · informational 100 % 24
Desktop updates & downloads · informational 99.98 % 24

July 2026

Component Observed uptime SLA downtime Days measured
API 99.87 % 6
Web app 99.93 % 6
Client portal · informational 99.96 % 6
Website & sign-up · informational 99.92 % 6
Desktop updates & downloads · informational 99.93 % 6

All incidents

Monitoring outage — availability not measured for 15 hours
Informational impact Resolved Duration: 14 h 59 m
Resolved — Cloudflare resumed delivering scheduled events at 08:30 UTC on 7 August, and measurement has been continuous since. The independent backup trigger and an external check on this page are both live and verified, so a recurrence will neither stop measurement nor go unnoticed.
Investigating — Between 17:31 UTC on 6 August and 08:30 UTC on 7 August, Cloudflare stopped delivering the scheduled events that drive our uptime probes. For 14 hours 59 minutes we did not measure TimerOS availability.

TimerOS was unaffected throughout this period. The API, web app, client portal, website and desktop update feed all served normally — each independently verified.

Cause: a defect in Cloudflare's Cron Trigger dispatch. The trigger stayed registered, and the page kept serving; only the scheduled invocation stopped, with no error and no log. Redeploying and re-registering the schedule had no effect; delivery resumed on its own.

What we changed: the probes now have a second, independent trigger that does not rely on Cloudflare's scheduler, and an external check now alerts us when this page stops reporting. Previously, our alerting ran inside the same process as the probes, which is why the gap went unnoticed — the failure silenced the alarm along with the measurement.