{
  "schema": "diid.outage-evidence.v1",
  "generated_at": "2026-11-14T14:42:38.000Z",
  "outage": {
    "id": 848,
    "service": "array",
    "name": "Array",
    "url": "https://damnisitdown.com/outages/array/2026-11-05-848",
    "status": "resolved",
    "verdict": "vendor_reported",
    "confirmed": false,
    "label": "a vendor-reported issue, not confirmed by DIID checks",
    "started_at": "2026-11-05T15:52:38.000Z",
    "peak_at": "2026-11-05T15:52:38.000Z",
    "peak_level": "degraded",
    "recovered_at": "2026-11-05T16:24:38.000Z"
  },
  "window": {
    "from": "2026-11-05T15:37:38.000Z",
    "to": "2026-11-05T16:39:38.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": 7,
    "checks_failed": 0,
    "checks_failed_during_incident": 0,
    "first_failed_at": null,
    "last_failed_at": null,
    "error_codes": [],
    "passing_notes": [],
    "regions_failed": [],
    "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-05T15:44:38.000Z",
        "executed_at": "2026-11-05T15:44:38.000Z",
        "ok": true,
        "http_status": 200,
        "latency_ms": 427,
        "error_code": null,
        "trigger": "scheduled"
      },
      {
        "checked_at": "2026-11-05T15:52:38.000Z",
        "executed_at": "2026-11-05T15:52:38.000Z",
        "ok": true,
        "http_status": 200,
        "latency_ms": 1189,
        "error_code": null,
        "trigger": "scheduled"
      },
      {
        "checked_at": "2026-11-05T16:00:38.000Z",
        "executed_at": "2026-11-05T16:00:38.000Z",
        "ok": true,
        "http_status": 200,
        "latency_ms": 398,
        "error_code": null,
        "trigger": "scheduled"
      },
      {
        "checked_at": "2026-11-05T16:08:38.000Z",
        "executed_at": "2026-11-05T16:08:38.000Z",
        "ok": true,
        "http_status": 200,
        "latency_ms": 528,
        "error_code": null,
        "trigger": "scheduled"
      },
      {
        "checked_at": "2026-11-05T16:16:38.000Z",
        "executed_at": "2026-11-05T16:16:38.000Z",
        "ok": true,
        "http_status": 200,
        "latency_ms": 202,
        "error_code": null,
        "trigger": "scheduled"
      },
      {
        "checked_at": "2026-11-05T16:24:38.000Z",
        "executed_at": "2026-11-05T16:24:38.000Z",
        "ok": true,
        "http_status": 200,
        "latency_ms": 687,
        "error_code": null,
        "trigger": "scheduled"
      },
      {
        "checked_at": "2026-11-05T16:32:39.000Z",
        "executed_at": "2026-11-05T16:32:39.000Z",
        "ok": true,
        "http_status": 200,
        "latency_ms": 887,
        "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": [],
    "events": [],
    "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-05T14:45:00.000Z",
        "count": 0
      },
      {
        "bucket_start": "2026-11-05T15:00:00.000Z",
        "count": 0
      },
      {
        "bucket_start": "2026-11-05T15:15:00.000Z",
        "count": 0
      },
      {
        "bucket_start": "2026-11-05T15:30:00.000Z",
        "count": 0
      },
      {
        "bucket_start": "2026-11-05T15:45:00.000Z",
        "count": 0
      },
      {
        "bucket_start": "2026-11-05T16:00:00.000Z",
        "count": 0
      },
      {
        "bucket_start": "2026-11-05T16:15:00.000Z",
        "count": 0
      },
      {
        "bucket_start": "2026-11-05T16:30:00.000Z",
        "count": 0
      },
      {
        "bucket_start": "2026-11-05T16:45:00.000Z",
        "count": 0
      },
      {
        "bucket_start": "2026-11-05T17:00:00.000Z",
        "count": 0
      },
      {
        "bucket_start": "2026-11-05T17: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-05T15:52:38.000Z",
      "kind": "start",
      "text": "Outage detected: Major incident reported. The vendor reports a major incident. Our homepage check still succeeds, so the impact may be limited to part of the service. Official status: Major System Outage"
    },
    {
      "at": "2026-11-05T15:52:38.000Z",
      "kind": "official",
      "text": "Official status: Critical incident."
    },
    {
      "at": "2026-11-05T16:24:38.000Z",
      "kind": "recovered",
      "text": "Recovered: Degraded performance."
    }
  ],
  "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=848"
  ],
  "links": {
    "page": "https://damnisitdown.com/outages/array/2026-11-05-848",
    "evidence": "https://damnisitdown.com/outages/array/2026-11-05-848/evidence",
    "json": "https://damnisitdown.com/outages/array/2026-11-05-848/evidence.json",
    "csv": "https://damnisitdown.com/outages/array/2026-11-05-848/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."
}