{"success":true,"data":{"services":[{"id":"website","name":"Website","description":"Main GABLVM website","url":"https://gablvm.org","status":"operational","response_time_ms":213,"last_checked_at":"2026-10-13T10:21:20.832Z","display_order":1,"manual_override":0,"uptime":99.99},{"id":"quran","name":"Quran Player","description":"Listen to Quran recitations","url":"https://gablvm.org/quran-listen","status":"operational","response_time_ms":208,"last_checked_at":"2026-10-13T10:21:20.832Z","display_order":2,"manual_override":0,"uptime":99.67},{"id":"prayer","name":"Prayer Times","description":"Prayer times by location","url":"https://gablvm.org/prayer-times","status":"operational","response_time_ms":781,"last_checked_at":"2026-10-13T10:21:20.832Z","display_order":3,"manual_override":0,"uptime":99.95},{"id":"calendar","name":"Islamic Calendar","description":"Hijri calendar with events","url":"https://gablvm.org/islam-calendar","status":"operational","response_time_ms":853,"last_checked_at":"2026-10-13T10:21:20.832Z","display_order":4,"manual_override":0,"uptime":99.96},{"id":"api","name":"API","description":null,"url":"https://api.gablvm.org/health","status":"operational","response_time_ms":421,"last_checked_at":"2026-10-13T10:21:20.832Z","display_order":5,"manual_override":0,"uptime":99.74},{"id":"support-portal","name":"Support Portal","description":null,"url":"https://support.gablvm.org","status":"operational","response_time_ms":59,"last_checked_at":"2026-10-13T10:21:20.832Z","display_order":6,"manual_override":1,"uptime":100},{"id":"status-page","name":"Status Page","description":null,"url":"https://status.gablvm.org","status":"operational","response_time_ms":94,"last_checked_at":"2026-10-13T10:21:20.832Z","display_order":7,"manual_override":1,"uptime":100},{"id":"webforms","name":"Web Forms","description":"Contact and community research forms","url":"https://gablvm.org/form/community-research","status":"operational","response_time_ms":207,"last_checked_at":"2026-10-13T10:21:20.832Z","display_order":8,"manual_override":0,"uptime":99.97}],"activeIncidents":[],"pastIncidents":[{"id":90,"title":"Website: automatic library update rolled back four times this morning, no visitor impact found","description":"On the morning of September 25, 2026, the automatic update process for gablvm.org applied a new release of a page rendering library that turned out to break every page. The process detected this within seconds through its own test requests and restored the previous version each time, in about thirty seconds, but it repeated the attempt at 8:30, 8:45, 9:00 and 9:15 AM Central before it was stopped. Our server logs show that every error response in those windows went to the update process itself, and none to a visitor, a search engine or the GABLVM app. No data was affected. The upstream fix was released on September 26, and the site now runs the updated library normally. The update process was also changed so a version that fails its test is not tried again.","type":"incident","severity":"minor","status":"resolved","affected_services":"[\"website\"]","scheduled_start":null,"scheduled_end":null,"created_at":"2026-09-25 13:30:21","updated_at":"2026-09-25 14:21:27","resolved_at":"2026-09-25 14:21:27","published":1},{"id":89,"title":"Scheduled maintenance: how Quran audio is delivered","description":"Planned work on the delivery of Quran audio on Thursday 17 September 2026, between 5:00 PM and 5:30 PM Central Time, which is 22:00 to 22:30 UTC. During this window, playing or downloading Quran audio on gablvm.org or in the GABLVM iOS app may briefly fail or need to be started again. Prayer times, the calendar, community events and the rest of the site are unaffected, and no data is affected. The work itself is expected to take only a few minutes of the window, and this notice will be updated when it begins and again when it is complete.","type":"maintenance","severity":null,"status":"completed","affected_services":"[\"quran\"]","scheduled_start":"2026-09-17 14:40:00","scheduled_end":"2026-09-17 14:50:00","created_at":"2026-09-16 11:55:00","updated_at":"2026-09-16 11:55:00","resolved_at":"2026-09-17 14:50:00","published":1},{"id":88,"title":"Quran player: verse-by-verse English playback could cut short some verses for one reciter, and the translation clips carried a faint background tone","description":"In the Quran player on gablvm.org and in the GABLVM iOS app, available to testers through TestFlight, playing a surah verse by verse with the English translation switched on could cut short the end of some verses for the reciter Abdurrahman As-Sudais before the translation started, most noticeably in the short surahs. During the investigation we also found that the English translation clips carried a faint background tone in the pause before the narrator speaks. Chapter playback, other reciters, and playback without the translation were unaffected, and no data was affected. Both issues trace to how the source recordings were cut into per-verse clips rather than to a failure of our systems. The player is being changed to keep together the verses this reciter recites in one breath, and the translation clips are being re-cut with the tone removed. These issues have been present since verse-by-verse English playback was introduced.","type":"incident","severity":"minor","status":"resolved","affected_services":"[\"quran\"]","scheduled_start":null,"scheduled_end":null,"created_at":"2026-09-15 08:25:00","updated_at":"2026-09-16 08:11:27","resolved_at":"2026-09-16 08:11:27","published":1},{"id":87,"title":"Quran downloads: English translation download could fail partway through in the GABLVM iOS app","description":"In the GABLVM iOS app, available to testers through TestFlight, downloading a surah together with its English translation could stop partway through with a message that the audio server returned an error, after roughly a third of the translation files had been saved. Streaming playback, downloads without the translation, and the Quran player on gablvm.org were unaffected, and no data was affected. The cause was a request limit on our audio delivery service that also counted the app's bulk translation download; the limit has been adjusted so these downloads complete, and a download that failed can simply be started again. The failure was intermittent and may have occurred at any time since translation downloads were introduced.","type":"incident","severity":"minor","status":"resolved","affected_services":"[\"quran\"]","scheduled_start":null,"scheduled_end":null,"created_at":"2026-09-12 17:30:42","updated_at":"2026-09-12 17:40:28","resolved_at":"2026-09-12 17:40:28","published":1},{"id":86,"title":"Forms: screen readers announced untouched required fields as invalid","description":"On forms across gablvm.org, including the contact form, screen readers could announce a required field as containing invalid data the moment a page loaded, before the visitor had entered anything. VoiceOver on iPhone and Mac was the most affected, hearing invalid data on fields that were simply empty. Every form remained fully usable throughout: options could be selected, steps advanced, and submissions completed normally, and no data was affected. The way required fields are marked has been reworked so screen readers now announce them as required rather than invalid. The behavior was likely present since the contact form launched in early July.","type":"incident","severity":"minor","status":"resolved","affected_services":"[\"webforms\"]","scheduled_start":null,"scheduled_end":null,"created_at":"2026-08-31 19:52:00","updated_at":"2026-08-31 20:16:00","resolved_at":"2026-08-31 20:16:00","published":1}],"incidentRevisions":[{"id":90,"updated_at":"2026-09-25 14:21:27"},{"id":89,"updated_at":"2026-09-16 11:55:00"},{"id":88,"updated_at":"2026-09-16 08:11:27"},{"id":87,"updated_at":"2026-09-12 17:40:28"},{"id":86,"updated_at":"2026-08-31 20:16:00"},{"id":85,"updated_at":"2026-08-31T06:28:53.271Z"},{"id":84,"updated_at":"2026-08-16 15:04:57"},{"id":83,"updated_at":"2026-08-15 07:14:40"},{"id":82,"updated_at":"2026-08-14 22:28:00"},{"id":81,"updated_at":"2026-08-07 13:08:26"},{"id":80,"updated_at":"2026-07-24T23:32:26.000Z"},{"id":79,"updated_at":"2026-07-17T16:02:00.000Z"},{"id":78,"updated_at":"2026-07-16T15:12:00.000Z"},{"id":77,"updated_at":"2026-07-16T02:36:00.000Z"},{"id":76,"updated_at":"2026-07-14T12:19:28.949Z"},{"id":75,"updated_at":"2026-07-07 14:54:00"},{"id":74,"updated_at":"2026-07-06 13:55:00"},{"id":73,"updated_at":"2026-07-04 05:55:00"},{"id":72,"updated_at":"2026-07-03 23:06:00"},{"id":70,"updated_at":"2026-07-03 07:30:00"},{"id":69,"updated_at":"2026-07-01 22:27:00"},{"id":68,"updated_at":"2026-07-01 10:18:00"},{"id":67,"updated_at":"2026-07-01 06:19:20"},{"id":66,"updated_at":"2026-06-25 03:56:00"},{"id":65,"updated_at":"2026-06-22 03:12:00"},{"id":64,"updated_at":"2026-06-21 00:55:00"},{"id":63,"updated_at":"2026-06-18 21:35:00"},{"id":62,"updated_at":"2026-06-17 01:25:00"},{"id":60,"updated_at":"2026-06-16 18:30:00"},{"id":58,"updated_at":"2026-06-02 20:05:00"},{"id":53,"updated_at":"2026-05-09T11:56:00Z"},{"id":51,"updated_at":"2026-05-02 12:24:59"},{"id":50,"updated_at":"2026-04-20T00:35:00Z"},{"id":49,"updated_at":"2026-04-19T22:05:00Z"},{"id":48,"updated_at":"2026-04-17T10:23:26.834Z"},{"id":47,"updated_at":"2026-04-12 21:12:49"},{"id":46,"updated_at":"2026-04-11T06:36:21Z"},{"id":45,"updated_at":"2026-04-10T22:30:00Z"},{"id":43,"updated_at":"2026-04-05T21:15:00.000Z"},{"id":42,"updated_at":"2026-04-01T10:43:00.000Z"},{"id":41,"updated_at":"2026-03-31T09:08:51.202Z"},{"id":40,"updated_at":"2026-04-15T16:23:21.758Z"},{"id":39,"updated_at":"2026-03-22 12:07:57"},{"id":37,"updated_at":"2026-03-19T02:49:09.000Z"},{"id":35,"updated_at":"2026-03-10T17:15:00Z"},{"id":34,"updated_at":"2026-03-08 23:28:00"},{"id":31,"updated_at":"2026-03-08T01:30:00.000Z"},{"id":33,"updated_at":"2026-03-13T02:30:00Z"},{"id":30,"updated_at":"2026-03-03T17:31:37.346Z"},{"id":29,"updated_at":"2026-02-22T15:25:00Z"}],"overallStatus":{"status":"operational","label":"All Systems Operational","color":"green"},"refreshedAt":"2026-10-13T10:22:28.734Z","lastChecked":"2026-10-13T10:21:20.832Z"}}