{
  "schema": "diid.outage-evidence.v1",
  "generated_at": "2026-11-14T11:50:09.000Z",
  "outage": {
    "id": 1091,
    "service": "github",
    "name": "GitHub",
    "url": "https://damnisitdown.com/outages/github/2026-11-08-1091",
    "status": "resolved",
    "verdict": "possible",
    "confirmed": false,
    "label": "a possible problem (DIID checks failed; no second independent source confirmed it), not a confirmed outage",
    "started_at": "2026-11-08T10:58:37.000Z",
    "peak_at": "2026-11-08T10:58:37.000Z",
    "peak_level": "outage",
    "recovered_at": "2026-11-08T11:22:37.000Z"
  },
  "window": {
    "from": "2026-11-08T10:43:37.000Z",
    "to": "2026-11-08T11:37:37.000Z",
    "note": "Checks from 15 minutes before the start to 15 minutes after recovery (or now). Report curve: one hour either side."
  },
  "summary": {
    "checks_total": 6,
    "checks_failed": 4,
    "checks_failed_during_incident": 3,
    "first_failed_at": "2026-11-08T10:50:39.000Z",
    "last_failed_at": "2026-11-08T11:14:37.000Z",
    "error_codes": [
      {
        "code": "http_504",
        "count": 4
      }
    ],
    "passing_notes": [],
    "regions_failed": [
      {
        "region": "apac",
        "label": "Asia-Pacific"
      },
      {
        "region": "enam",
        "label": "US East"
      },
      {
        "region": "weur",
        "label": "Europe"
      },
      {
        "region": "wnam",
        "label": "US West"
      }
    ],
    "peak_reports_15m": 0,
    "reports_in_curve": 0
  },
  "checks": {
    "store": "postgres",
    "truncated": false,
    "note": "Every main HTTP check of this service in the window, oldest first: the scheduled check time, when the probe actually ran, the result, HTTP status, latency and the stored error code. A failed check is a 5xx or 408 answer, a timeout or a failed connection; bot walls and maintenance pages count as passing and are noted in passing_notes.",
    "rows": [
      {
        "checked_at": "2026-11-08T10:50:39.000Z",
        "executed_at": "2026-11-08T10:51:23.306Z",
        "ok": false,
        "http_status": 504,
        "latency_ms": 39,
        "error_code": "http_504",
        "trigger": "scheduled"
      },
      {
        "checked_at": "2026-11-08T10:58:37.000Z",
        "executed_at": "2026-11-08T10:58:53.732Z",
        "ok": false,
        "http_status": 504,
        "latency_ms": 70,
        "error_code": "http_504",
        "trigger": "scheduled"
      },
      {
        "checked_at": "2026-11-08T11:06:38.000Z",
        "executed_at": "2026-11-08T11:07:21.429Z",
        "ok": false,
        "http_status": 504,
        "latency_ms": 73,
        "error_code": "http_504",
        "trigger": "scheduled"
      },
      {
        "checked_at": "2026-11-08T11:14:37.000Z",
        "executed_at": "2026-11-08T11:14:47.805Z",
        "ok": false,
        "http_status": 504,
        "latency_ms": 4364,
        "error_code": "http_504",
        "trigger": "scheduled"
      },
      {
        "checked_at": "2026-11-08T11:22:37.000Z",
        "executed_at": "2026-11-08T11:22:47.702Z",
        "ok": true,
        "http_status": 200,
        "latency_ms": 192,
        "error_code": null,
        "trigger": "scheduled"
      },
      {
        "checked_at": "2026-11-08T11:30:38.000Z",
        "executed_at": "2026-11-08T11:31:29.064Z",
        "ok": true,
        "http_status": 200,
        "latency_ms": 81,
        "error_code": null,
        "trigger": "scheduled"
      }
    ]
  },
  "regions": {
    "probe_regions": [
      {
        "region": "enam",
        "label": "US East"
      },
      {
        "region": "wnam",
        "label": "US West"
      },
      {
        "region": "weur",
        "label": "Europe"
      },
      {
        "region": "apac",
        "label": "Asia-Pacific"
      }
    ],
    "failed_during_incident": [
      {
        "region": "apac",
        "label": "Asia-Pacific"
      },
      {
        "region": "enam",
        "label": "US East"
      },
      {
        "region": "weur",
        "label": "Europe"
      },
      {
        "region": "wnam",
        "label": "US West"
      }
    ],
    "events": [
      {
        "at": "2026-11-08T10:58:37.000Z",
        "text": "Failing from US East, Europe, US West."
      },
      {
        "at": "2026-11-08T11:06:38.000Z",
        "text": "Now failing from Asia-Pacific."
      }
    ],
    "checks_in_window": [],
    "note": "Regional probes run from Cloudflare data centers in each region. We keep the latest regional result per region, plus a timestamped timeline entry when a region starts failing during an incident, so older incidents show the failing regions and when each was first seen, not every regional probe."
  },
  "report_curve": {
    "bucket_seconds": 900,
    "points": [
      {
        "bucket_start": "2026-11-08T09:45:00.000Z",
        "count": 0
      },
      {
        "bucket_start": "2026-11-08T10:00:00.000Z",
        "count": 0
      },
      {
        "bucket_start": "2026-11-08T10:15:00.000Z",
        "count": 0
      },
      {
        "bucket_start": "2026-11-08T10:30:00.000Z",
        "count": 0
      },
      {
        "bucket_start": "2026-11-08T10:45:00.000Z",
        "count": 0
      },
      {
        "bucket_start": "2026-11-08T11:00:00.000Z",
        "count": 0
      },
      {
        "bucket_start": "2026-11-08T11:15:00.000Z",
        "count": 0
      },
      {
        "bucket_start": "2026-11-08T11:30:00.000Z",
        "count": 0
      },
      {
        "bucket_start": "2026-11-08T11:45:00.000Z",
        "count": 0
      },
      {
        "bucket_start": "2026-11-08T12:00:00.000Z",
        "count": 0
      },
      {
        "bucket_start": "2026-11-08T12:15:00.000Z",
        "count": 0
      }
    ],
    "note": "User reports per 15-minute bucket. Counts only: no reporter identity, IP address, location or text is published."
  },
  "timeline": [
    {
      "at": "2026-11-08T10:58:37.000Z",
      "kind": "start",
      "text": "Outage detected: Regional outage. Down in US East, US West and Europe, fine in Asia-Pacific. Our checks are failing. User reports are still near the baseline — active checks often catch this before crowd reports do."
    },
    {
      "at": "2026-11-08T10:58:37.000Z",
      "kind": "region",
      "text": "Failing from US East, Europe, US West."
    },
    {
      "at": "2026-11-08T11:06:38.000Z",
      "kind": "region",
      "text": "Now failing from Asia-Pacific."
    },
    {
      "at": "2026-11-08T11:22:37.000Z",
      "kind": "recovered",
      "text": "Recovered: Regional problems."
    }
  ],
  "how_to_check": [
    "Compare checks.rows with the outage page: the first and last failed checks bound the incident times we published.",
    "error_codes counts every failed check by its stored code; recount it from checks.rows.",
    "report_curve.points sum to summary.reports_in_curve; the peak is summary.peak_reports_15m.",
    "Disagree? Dispute it at https://damnisitdown.com/support?dispute=1091"
  ],
  "links": {
    "page": "https://damnisitdown.com/outages/github/2026-11-08-1091",
    "evidence": "https://damnisitdown.com/outages/github/2026-11-08-1091/evidence",
    "json": "https://damnisitdown.com/outages/github/2026-11-08-1091/evidence.json",
    "csv": "https://damnisitdown.com/outages/github/2026-11-08-1091/evidence.csv",
    "methodology": "https://damnisitdown.com/methodology"
  },
  "privacy": "No personal data: no reporter identities, IP addresses, emails, report text or reporter locations. User reports are aggregate 15-minute counts."
}