From 9b9631d3b46ed269336313bd98e6e9ae197f34b3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 2 May 2026 08:42:12 +0000 Subject: [PATCH 1/4] Plan locations panel replacement Agent-Logs-Url: https://github.com/potemkin666/AlbertAlert/sessions/c41dfd9b-638a-42ed-a740-0645eb9fa650 Co-authored-by: potemkin666 <183807833+potemkin666@users.noreply.github.com> --- data/albertalert.sqlite | Bin 5947392 -> 5947392 bytes data/quarantined-sources.json | 9982 +--------- data/source-remediation-sweep.json | 126 +- data/top-20-source-remediation.json | 58 +- live-alerts.json | 27110 +------------------------- source-quarantine.html | 12 +- 6 files changed, 175 insertions(+), 37113 deletions(-) diff --git a/data/albertalert.sqlite b/data/albertalert.sqlite index a69b32f77446b3eea83e67f4296fdf2a616951d9..342f48240e1d9eb9a33773c23f5bbf5006f682da 100644 GIT binary patch delta 830 zcmbu-J4+)`7{+lYac2_mw?tjzUB^U?jxm!l(QFd$_lb8M5iI-w7Q)I_K?^%k1kcxS zt4Y0$l~|<-SXc<6<$eMGf`t}>;0wP~yd0i$&dbSUo*fySHAwk$-u>zq6*chfd^jHq7L==i3a%4h$b|n1+8d9J38!~ z*_nSB9*TtrVtTkw(+w-6g(5*s4{D)R?F)VJq^mpM3OI_WYu^f}GSuzl7q0s0(~9;B z)Qi+j+sUn=q6>Zm(2XASB8WcpL&E?<7(^I4A}}z7C}J4K2;%sK1d>Q$6k{021STX)g?F}!-;0Jzy&v2;Xxa` zXh#P+(S>gK;70&G=tUob=*Iv;2xAaK7{&-9h$4njQPtyL-`1}%yw;B}g8ykGm3#Xu zq?DZf`8CC`J*VfPNhzhv(PBkYFotocn7|~aFpU|^B7r%~V*!guA_WagSjGxgv4(YQ zU=v$NV;dRlU>AGX#{mv;gkzlG6lc(p#W^l;i5#wQjT_wJPE<4_`6T;Xb<6c?#6={p Te##<|S3l%Zwj2<3VZ_{jAOGR} diff --git a/data/quarantined-sources.json b/data/quarantined-sources.json index c1404846..2f0dbaee 100644 --- a/data/quarantined-sources.json +++ b/data/quarantined-sources.json @@ -1,9982 +1,14 @@ { - "generatedAt": "2026-05-02T07:12:34.064Z", - "count": 205, + "generatedAt": "2026-05-02T08:41:54.057Z", + "count": 0, "metrics": { - "total": 205, - "newThisWeek": 202, - "avgTimeInQuarantineHours": 25, - "avgHealthScore": 1, + "total": 0, + "newThisWeek": 0, + "avgTimeInQuarantineHours": 0, + "avgHealthScore": 0, "reQuarantineRate": 0, "reQuarantined": 0, "restoredTotal": 0 }, - "sources": [ - { - "id": "me-ministry-defence", - "provider": "Montenegro Ministry of Defence", - "endpoint": "https://www.gov.me/en/mod", - "kind": "html", - "lane": "context", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T21:34:23.032Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T19:49:39.407Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T21:19:29.949Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T21:34:23.032Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T21:34:23.032Z", - "lastFailureAt": "2026-05-01T21:34:23.032Z", - "lastCheckedAt": "2026-05-01T21:34:23.032Z" - }, - { - "id": "financial-times-world", - "provider": "Reuters - World News", - "endpoint": "https://www.reuters.com/world/", - "kind": "html", - "lane": "context", - "region": "europe", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T20:16:16.792Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 401", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 401", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 401", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 401", - "at": "2026-04-27T18:01:23.816Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 401", - "at": "2026-04-29T19:55:57.182Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 401", - "at": "2026-05-01T20:16:16.792Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T20:16:16.792Z", - "lastFailureAt": "2026-05-01T20:16:16.792Z", - "lastCheckedAt": "2026-05-01T20:16:16.792Z" - }, - { - "id": "ec-ap-latin-america", - "provider": "Associated Press - Latin America", - "endpoint": "https://apnews.com/hub/latin-america", - "kind": "html", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T20:16:16.792Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T18:01:23.816Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T19:55:57.182Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T20:16:16.792Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T20:16:16.792Z", - "lastFailureAt": "2026-05-01T20:16:16.792Z", - "lastCheckedAt": "2026-05-01T20:16:16.792Z" - }, - { - "id": "ec-guardian-ecuador", - "provider": "The Guardian - Ecuador", - "endpoint": "https://www.theguardian.com/world/ecuador", - "kind": "html", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T20:16:16.792Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T18:01:23.816Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T19:55:57.182Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T20:16:16.792Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T20:16:16.792Z", - "lastFailureAt": "2026-05-01T20:16:16.792Z", - "lastCheckedAt": "2026-05-01T20:16:16.792Z" - }, - { - "id": "unsc-counter-terrorism-committee", - "provider": "UN Security Council - Counter-Terrorism Committee (CTC) Updates", - "endpoint": "https://www.un.org/securitycouncil/ctc/news", - "kind": "html", - "lane": "oversight", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T20:16:16.792Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T18:01:23.816Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T19:55:57.182Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T20:16:16.792Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T20:16:16.792Z", - "lastFailureAt": "2026-05-01T20:16:16.792Z", - "lastCheckedAt": "2026-05-01T20:16:16.792Z" - }, - { - "id": "barnet-council-news", - "provider": "Barnet Post", - "endpoint": "https://barnetpost.co.uk/", - "kind": "html", - "lane": "context", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T20:16:16.792Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T18:01:23.816Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T19:55:57.182Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T20:16:16.792Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T20:16:16.792Z", - "lastFailureAt": "2026-05-01T20:16:16.792Z", - "lastCheckedAt": "2026-05-01T20:16:16.792Z" - }, - { - "id": "london-city-airport-media-centre", - "provider": "London City Airport a Media Centre", - "endpoint": "https://www.londoncityairport.com/media-centre", - "kind": "html", - "lane": "context", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T20:16:16.792Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T18:01:23.816Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T19:55:57.182Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T20:16:16.792Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T20:16:16.792Z", - "lastFailureAt": "2026-05-01T20:16:16.792Z", - "lastCheckedAt": "2026-05-01T20:16:16.792Z" - }, - { - "id": "institute-global-home", - "provider": "Institute for Global Change", - "endpoint": "https://institute.global/insights", - "kind": "html", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T20:16:16.792Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T18:01:23.816Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T19:55:57.182Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T20:16:16.792Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T20:16:16.792Z", - "lastFailureAt": "2026-05-01T20:16:16.792Z", - "lastCheckedAt": "2026-05-01T20:16:16.792Z" - }, - { - "id": "icsr-kcl", - "provider": "Centre for Statecraft & National Security - Publications", - "endpoint": "https://csns.uk/publications/", - "kind": "html", - "lane": "prevention", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T20:16:16.792Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T18:01:23.816Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T19:55:57.182Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T20:16:16.792Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T20:16:16.792Z", - "lastFailureAt": "2026-05-01T20:16:16.792Z", - "lastCheckedAt": "2026-05-01T20:16:16.792Z" - }, - { - "id": "rand-terrorism-topic", - "provider": "RAND - Terrorism Topic", - "endpoint": "https://www.rand.org/topics/terrorism.html?source=rand-terrorism-topic", - "kind": "html", - "lane": "context", - "region": "us", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T20:16:16.792Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T18:01:23.816Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T19:55:57.182Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T20:16:16.792Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T20:16:16.792Z", - "lastFailureAt": "2026-05-01T20:16:16.792Z", - "lastCheckedAt": "2026-05-01T20:16:16.792Z" - }, - { - "id": "ecfr-feeds-index", - "provider": "ECFR - Newsroom", - "endpoint": "https://ecfr.eu/newsroom/", - "kind": "html", - "lane": "context", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "me-police-administration", - "provider": "Montenegro Police Directorate", - "endpoint": "https://www.gov.me/mup/policija", - "kind": "html", - "lane": "incidents", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "me-ministry-interior", - "provider": "Montenegro Ministry of the Interior", - "endpoint": "https://www.gov.me/en/mup", - "kind": "html", - "lane": "incidents", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "me-govme-all-news", - "provider": "Government of Montenegro - News", - "endpoint": "https://www.gov.me/en/news?at=1&sort=published_at", - "kind": "html", - "lane": "incidents", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "me-national-security-agency", - "provider": "Montenegro National Security Agency", - "endpoint": "https://www.gov.me/en/national-security-agency", - "kind": "html", - "lane": "incidents", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "me-national-security-authority", - "provider": "Montenegro National Security Authority", - "endpoint": "https://www.gov.me/en/dztp", - "kind": "html", - "lane": "incidents", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "me-customs-administration", - "provider": "Montenegro Customs Administration", - "endpoint": "https://www.gov.me/upravacarina", - "kind": "html", - "lane": "incidents", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "de-cemas-digital-seismograph", - "provider": "CeMAS - Digital Seismograph", - "endpoint": "https://cemas.io/en/projects/digital-seismograph/", - "kind": "html", - "lane": "prevention", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "ecfr-publications", - "provider": "European Council on Foreign Relations (ECFR) a Publications", - "endpoint": "https://ecfr.eu/publications/", - "kind": "html", - "lane": "context", - "region": "europe", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "politico-europe", - "provider": "Politico Europe", - "endpoint": "https://www.politico.eu", - "kind": "html", - "lane": "context", - "region": "europe", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "acled-updates", - "provider": "ACLED a Updates and Analysis", - "endpoint": "https://acleddata.com/updates", - "kind": "html", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "counter-extremism-project-news", - "provider": "Counter Extremism Project a News", - "endpoint": "https://www.counterextremism.com/news-and-media", - "kind": "html", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "just-security", - "provider": "Just Security a Law, Rights & National Security", - "endpoint": "https://www.justsecurity.org/recent-articles/", - "kind": "html", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "lawfare-blog", - "provider": "Just Security - National Security Analysis", - "endpoint": "https://www.justsecurity.org/", - "kind": "html", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "occrp-news", - "provider": "OCCRP a Organized Crime and Corruption Reporting Project", - "endpoint": "https://www.occrp.org/en/news", - "kind": "html", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "resolve-network-research", - "provider": "RAND - Terrorism Topic", - "endpoint": "https://www.rand.org/topics/terrorism.html", - "kind": "html", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "reuters-uk", - "provider": "Reuters a UK News", - "endpoint": "https://www.reuters.com/world/uk/", - "kind": "html", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 401", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 401", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 401", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 401", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 401", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 401", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "soufan-center-intelbrief", - "provider": "The Soufan Center a Intel. Brief", - "endpoint": "https://thesoufancenter.org/intelbrief", - "kind": "html", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "ec-primicias-seguridad", - "provider": "Primicias - Seguridad", - "endpoint": "https://www.primicias.ec/seguridad", - "kind": "html", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "ec-planv-crimen-organizado", - "provider": "Plan V - Crimen Organizado", - "endpoint": "https://planv.com.ec/historias/crimen-organizado/", - "kind": "html", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "ec-cfr-ecuador-narco-state", - "provider": "Council on Foreign Relations - Ecuador", - "endpoint": "https://www.cfr.org/articles/can-ecuador-avoid-becoming-narco-state", - "kind": "html", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "gnet-radicalisation-rss", - "provider": "Global Network on Extremism & Technology (GNET) a Radicalisation", - "endpoint": "https://gnet-research.org/tag/radicalisation/", - "kind": "html", - "lane": "prevention", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "gnet-youth-rss", - "provider": "Global Network on Extremism & Technology (GNET) a Insights", - "endpoint": "https://gnet-research.org/", - "kind": "html", - "lane": "prevention", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "london-resilience", - "provider": "Resilience First - Latest Updates", - "endpoint": "https://www.london.gov.uk/programmes-strategies/fire-and-city-resilience/london-resilience-partnership", - "kind": "html", - "lane": "prevention", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "chatham-house-home", - "provider": "Chatham House", - "endpoint": "https://www.chathamhouse.org", - "kind": "html", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "wiltshire-999s", - "provider": "Wiltshire 999s", - "endpoint": "https://www.wiltshire999s.co.uk/all-about/wiltshire-police/", - "kind": "html", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "fmcg-gurus", - "provider": "Europol - Newsroom", - "endpoint": "https://www.europol.europa.eu/media-press/newsroom", - "kind": "html", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "uk-ukfinance-fraud-news", - "provider": "UK Finance - News and insight", - "endpoint": "https://www.ukfinance.org.uk/news-and-insight", - "kind": "html", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "ct-policing-prevent-programme", - "provider": "Counter Terrorism Policing - Prevent", - "endpoint": "https://www.counterterrorism.police.uk/what-we-do/counter-terrorism/prevent", - "kind": "html", - "lane": "prevention", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "ct-policing-what-you-can-do", - "provider": "Counter Terrorism Policing - What You Can Do", - "endpoint": "https://www.counterterrorism.police.uk/what-you-can-do", - "kind": "html", - "lane": "prevention", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T17:13:17.765Z", - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastCheckedAt": "2026-05-01T17:13:17.765Z" - }, - { - "id": "frontex-news-releases", - "provider": "Frontex a News Releases", - "endpoint": "https://www.frontex.europa.eu/media-centre/news/news-release/", - "kind": "html", - "lane": "border", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "eurojust-press-news-html", - "provider": "Eurojust - Press Releases and News", - "endpoint": "https://www.eurojust.europa.eu/media-and-events/press-releases-and-news", - "kind": "html", - "lane": "context", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "netherlands-om-terrorisme", - "provider": "Dutch Public Prosecution Service - Terrorisme", - "endpoint": "https://www.om.nl/onderwerpen/terrorisme", - "kind": "html", - "lane": "context", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "eu-council-jha-meetings", - "provider": "Council of the EU - JHA Press Releases", - "endpoint": "https://www.consilium.europa.eu/en/press/press-releases/?cc%5B%5D=24", - "kind": "html", - "lane": "oversight", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "europol-tesat-report", - "provider": "Europol - TESAT Report", - "endpoint": "https://www.europol.europa.eu/publications-events/main-reports/tesat-report", - "kind": "html", - "lane": "oversight", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "netherlands-nctv-news", - "provider": "Dutch NCTV - News", - "endpoint": "https://www.nctv.nl/", - "kind": "html", - "lane": "context", - "region": "europe", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "switzerland-fedpol-news", - "provider": "Swiss fedpol - News", - "endpoint": "https://www.fedpol.admin.ch/en/newnsb", - "kind": "html", - "lane": "context", - "region": "europe", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "netherlands-prosecution-news", - "provider": "Dutch Public Prosecution Service - News", - "endpoint": "https://www.om.nl/actueel/nieuws", - "kind": "html", - "lane": "oversight", - "region": "europe", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "ec-fcdo-ecuador-safety-security", - "provider": "UK FCDO - Ecuador travel advice", - "endpoint": "https://www.gov.uk/foreign-travel-advice/ecuador/safety-and-security", - "kind": "html", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "unsc-1267-press-releases", - "provider": "UN Security Council - ISIL/Da'esh & Al-Qaeda Sanctions Committee Press Releases", - "endpoint": "https://main.un.org/securitycouncil/en/sanctions/1267/press-releases", - "kind": "html", - "lane": "sanctions", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "unsc-consolidated-list", - "provider": "UN Security Council - Consolidated Sanctions List", - "endpoint": "https://main.un.org/securitycouncil/en/sanctions/1267/aq_sanctions_list", - "kind": "html", - "lane": "sanctions", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "bromley-council-news", - "provider": "Bromley Council a Newsroom", - "endpoint": "https://www.bromley.gov.uk/news", - "kind": "html", - "lane": "context", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "east-london-nhs-news", - "provider": "East London NHS Foundation Trust a News", - "endpoint": "https://www.elft.nhs.uk/news", - "kind": "html", - "lane": "context", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "harrow-council-news", - "provider": "Harrow Council a News", - "endpoint": "https://www.harrow.gov.uk/news", - "kind": "html", - "lane": "context", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "Blocked by blocked access page", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "heathrow-media-centre", - "provider": "Heathrow a Media Centre", - "endpoint": "https://mediacentre.heathrow.com/pressrelease", - "kind": "html", - "lane": "context", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "imperial-healthcare-news", - "provider": "Imperial College Healthcare NHS Trust a News", - "endpoint": "https://www.imperial.nhs.uk/about-us/news", - "kind": "html", - "lane": "context", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "kensington-chelsea-newsroom", - "provider": "Royal Borough of Kensington and Chelsea a Newsroom", - "endpoint": "https://www.rbkc.gov.uk/newsroom", - "kind": "html", - "lane": "context", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "london-ambulance-news", - "provider": "London Ambulance Service a News", - "endpoint": "https://www.londonambulance.nhs.uk/news-2/", - "kind": "html", - "lane": "context", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "london-councils-news", - "provider": "London Councils a News", - "endpoint": "https://www.londoncouncils.gov.uk/news-and-press-releases", - "kind": "html", - "lane": "context", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "london-fire-brigade-news", - "provider": "London Fire Brigade a News", - "endpoint": "https://www.london-fire.gov.uk/news/", - "kind": "html", - "lane": "context", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "port-of-london-authority-news", - "provider": "Port of London Authority a News", - "endpoint": "https://pla.co.uk/latest", - "kind": "html", - "lane": "context", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "royal-free-london-news", - "provider": "Royal Free London NHS Foundation Trust a News", - "endpoint": "https://www.royalfree.nhs.uk/news", - "kind": "html", - "lane": "context", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "westminster-city-council-news", - "provider": "Westminster City Council a News", - "endpoint": "https://www.westminster.gov.uk/news", - "kind": "html", - "lane": "context", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "whittington-health-news", - "provider": "Whittington Health a News", - "endpoint": "https://www.whittington.nhs.uk/mini-apps/news/news. Items.asp", - "kind": "html", - "lane": "context", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "national-crime-agency-news", - "provider": "National Crime Agency - News", - "endpoint": "https://www.nationalcrimeagency.gov.uk/news", - "kind": "html", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "report-fraud-newsroom", - "provider": "Report Fraud - Newsroom", - "endpoint": "https://www.reportfraud.police.uk/collection/newsroom/", - "kind": "html", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "uk-college-policing-news", - "provider": "College of Policing - News and views", - "endpoint": "https://www.college.police.uk/news-views", - "kind": "html", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "echr-uk-grand-chamber-rss", - "provider": "European Court of Human Rights - HUDOC", - "endpoint": "https://hudoc.echr.coe.int/", - "kind": "html", - "lane": "oversight", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "uk-ncsc-threat-reports", - "provider": "National Cyber Security Centre (UK) - Threat Reports", - "endpoint": "https://www.ncsc.gov.uk/section/keep-up-to-date/threat-reports", - "kind": "html", - "lane": "oversight", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "uk-parliament-business-news", - "provider": "UK Parliament - Business News", - "endpoint": "https://www.parliament.uk/business/news/", - "kind": "html", - "lane": "oversight", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "uk-parliament-rss-feeds-index", - "provider": "UK Parliament - RSS Feeds", - "endpoint": "https://www.parliament.uk/site-information/rss-feeds/", - "kind": "html", - "lane": "oversight", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "us-house-homeland-security", - "provider": "US House Committee on Homeland Security - Press", - "endpoint": "https://homeland.house.gov/press/", - "kind": "html", - "lane": "oversight", - "region": "us", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T15:41:41.977Z", - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastCheckedAt": "2026-05-01T15:41:41.977Z" - }, - { - "id": "london-gov-press-releases-html", - "provider": "London.gov.uk - News", - "endpoint": "https://www.london.gov.uk?source=london-gov-press-releases-html", - "kind": "html", - "lane": "context", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T12:10:27.497Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T06:28:15.261Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T11:57:19.950Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T11:50:06.590Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T12:10:27.497Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T12:10:27.497Z", - "lastFailureAt": "2026-05-01T12:10:27.497Z", - "lastCheckedAt": "2026-05-01T12:10:27.497Z" - }, - { - "id": "ct-policing-london", - "provider": "Counter Terrorism Policing London", - "endpoint": "https://www.counterterrorism.police.uk/counter-terrorism-policing-london", - "kind": "html", - "lane": "incidents", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T09:24:40.004Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T07:35:36.877Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T09:24:40.004Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T09:24:40.004Z", - "lastFailureAt": "2026-05-01T09:24:40.004Z", - "lastCheckedAt": "2026-05-01T09:24:40.004Z" - }, - { - "id": "ct-policing-north-west", - "provider": "Counter Terrorism Policing North West", - "endpoint": "https://www.counterterrorism.police.uk/north-west", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T09:24:40.004Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T07:35:36.877Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T09:24:40.004Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T09:24:40.004Z", - "lastFailureAt": "2026-05-01T09:24:40.004Z", - "lastCheckedAt": "2026-05-01T09:24:40.004Z" - }, - { - "id": "ct-policing-uk-latest-news", - "provider": "Counter Terrorism Policing UK a Latest News", - "endpoint": "https://www.counterterrorism.police.uk/latest-news", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T09:24:40.004Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T07:35:36.877Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T09:24:40.004Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T09:24:40.004Z", - "lastFailureAt": "2026-05-01T09:24:40.004Z", - "lastCheckedAt": "2026-05-01T09:24:40.004Z" - }, - { - "id": "ct-policing-uk-rss-feed", - "provider": "Counter Terrorism Policing UK - Latest News", - "endpoint": "https://www.counterterrorism.police.uk/latest-news?source=ct-policing-uk-rss-feed", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T09:24:40.004Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T07:35:36.877Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T09:24:40.004Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T09:24:40.004Z", - "lastFailureAt": "2026-05-01T09:24:40.004Z", - "lastCheckedAt": "2026-05-01T09:24:40.004Z" - }, - { - "id": "enisa-news", - "provider": "ENISA (EU Cybersecurity Agency) a News", - "endpoint": "https://www.enisa.europa.eu/news", - "kind": "html", - "lane": "context", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "finland-supo-news", - "provider": "Finnish Security Intelligence Service - News and Press Releases", - "endpoint": "https://supo.fi/en/news-and-press-releases?source=finland-supo-news", - "kind": "html", - "lane": "context", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "nctv-english-rss", - "provider": "NCTV Netherlands - Latest News", - "endpoint": "https://english.nctv.nl/latest/news", - "kind": "html", - "lane": "context", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "me-moneyval-aml-cft", - "provider": "Council of Europe MONEYVAL", - "endpoint": "https://www.coe.int/en/web/moneyval", - "kind": "html", - "lane": "context", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "sk-mfa-all-news", - "provider": "Slovak Foreign Ministry - All News", - "endpoint": "https://www.mzv.sk/en/web/en/what-is-new/all-news", - "kind": "html", - "lane": "context", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "eu-fra-rss", - "provider": "OHCHR - Terrorism and Violent Extremism", - "endpoint": "https://www.ohchr.org/en/topic/terrorism-and-violent-extremism", - "kind": "html", - "lane": "oversight", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "europol-eu-iru", - "provider": "Europol a EU Internet Referral Unit (EU IRU)", - "endpoint": "https://www.europol.europa.eu/about-europol/european-counter-terrorism-centre-ectc/eu-internet-referal-unit-eu-iru", - "kind": "html", - "lane": "prevention", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "unhcr-europe-news", - "provider": "UNHCR Europe a News", - "endpoint": "https://www.unhcr.org/europe/news", - "kind": "html", - "lane": "border", - "region": "europe", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "norway-pst-news", - "provider": "Norwegian Government - News and Press Releases", - "endpoint": "https://www.regjeringen.no/en/whats-new/news-and-press-releases/id4/", - "kind": "html", - "lane": "context", - "region": "europe", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "french-police-nationale-news", - "provider": "Police Nationale - News", - "endpoint": "https://www.police-nationale.interieur.gouv.fr/vous-informer/nos-actualites", - "kind": "html", - "lane": "incidents", - "region": "europe", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "pst-no-english", - "provider": "PST (Norway) English reporting page", - "endpoint": "https://www.pst.no/en/report/", - "kind": "html", - "lane": "prevention", - "region": "europe", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "supo-fi-english", - "provider": "SUPO Finland news and press releases", - "endpoint": "https://supo.fi/en/news-and-press-releases", - "kind": "html", - "lane": "prevention", - "region": "europe", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "iom-news", - "provider": "IOM (International Organization for Migration) a News", - "endpoint": "https://www.iom.int/news", - "kind": "html", - "lane": "border", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "ec-aduana-senae", - "provider": "Aduana del Ecuador (SENAE)", - "endpoint": "https://www.aduana.gob.ec/", - "kind": "html", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "ec-ecu911-news", - "provider": "ECU 911", - "endpoint": "https://www.ecu911.gob.ec/", - "kind": "html", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "gctf-news", - "provider": "UN Security Council Counter-Terrorism Committee - News Articles", - "endpoint": "https://www.un.org/securitycouncil/ctc/content/news-articles", - "kind": "html", - "lane": "oversight", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "fatf-news", - "provider": "National Crime Agency - News", - "endpoint": "https://www.nationalcrimeagency.gov.uk/news?source=fatf-news", - "kind": "html", - "lane": "sanctions", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "cnwl-news", - "provider": "Central and North West London NHS Foundation Trust a News", - "endpoint": "https://www.cnwl.nhs.uk/news", - "kind": "html", - "lane": "context", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "london-gov-home", - "provider": "London.gov.uk", - "endpoint": "https://www.london.gov.uk", - "kind": "html", - "lane": "context", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "nhs-london-ncl-news", - "provider": "NHS West and North London a News", - "endpoint": "https://www.westandnorthlondon.icb.nhs.uk/", - "kind": "html", - "lane": "context", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "nhs-london-sel-news", - "provider": "NHS South East London a News", - "endpoint": "https://www.selondonics.org/icb/about-us/news/", - "kind": "html", - "lane": "context", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "nhs-london-swl-news", - "provider": "NHS South West London a News", - "endpoint": "https://www.southwestlondon.icb.nhs.uk/news/", - "kind": "html", - "lane": "context", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "city-of-london-police-news", - "provider": "City of London Police - News", - "endpoint": "https://www.cityoflondon.police.uk/news?source=city-of-london-police-news", - "kind": "html", - "lane": "incidents", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "city-of-london-police-news-html", - "provider": "City of London Police - News", - "endpoint": "https://www.cityoflondon.police.uk/news?source=city-of-london-police-news-html", - "kind": "html", - "lane": "incidents", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "city-of-london-police-newsroom", - "provider": "City of London Police - Newsroom", - "endpoint": "https://www.cityoflondon.police.uk/news?source=city-of-london-police-newsroom", - "kind": "html", - "lane": "incidents", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "mopac-html", - "provider": "London.gov.uk - Media Centre", - "endpoint": "https://www.london.gov.uk/media-centre", - "kind": "html", - "lane": "oversight", - "region": "london", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "essex-police-news", - "provider": "Essex PFCC - News", - "endpoint": "https://www.essex.pfcc.police.uk/news", - "kind": "html", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "kent-police-news", - "provider": "Kent Police a News", - "endpoint": "https://www.kent.police.uk/news/kent/latest/", - "kind": "html", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "mi5-news", - "provider": "MI5 - News", - "endpoint": "https://www.mi5.gov.uk/news?source=mi5-news", - "kind": "html", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "report-fraud-home", - "provider": "Report Fraud", - "endpoint": "https://www.reportfraud.police.uk/", - "kind": "html", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "cps-news-centre", - "provider": "Crown Prosecution Service a News Centre", - "endpoint": "https://www.cps.gov.uk/news", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "cumbria-police-newsroom", - "provider": "Cumbria Police - Newsroom", - "endpoint": "https://www.news.cumbria.police.uk/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "devon-and-cornwall-police-newsroom", - "provider": "Devon and Cornwall Police - Newsroom", - "endpoint": "https://news.devon-cornwall.police.uk/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "devon-cornwall-police-news", - "provider": "Devon and Cornwall Police - Newsroom", - "endpoint": "https://news.devon-cornwall.police.uk/?source=devon-cornwall-police-news", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "dorset-police-news", - "provider": "Dorset Police - Newsroom", - "endpoint": "https://news.dorset.police.uk?source=dorset-police-news", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "dorset-police-newsroom", - "provider": "Dorset Police - Newsroom", - "endpoint": "https://news.dorset.police.uk/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "essex-police-news-html", - "provider": "Essex Police - News", - "endpoint": "https://www.essex.police.uk/news/essex/news/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "kent-police-news-html", - "provider": "Kent Police - News", - "endpoint": "https://www.kent.police.uk/news/kent/latest/?source=kent-police-news-html", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "leicestershire-police-news", - "provider": "National Crime Agency - News", - "endpoint": "https://www.nationalcrimeagency.gov.uk/news?source=leicestershire-police-news", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "lincolnshire-police-news", - "provider": "Lincolnshire Police - News", - "endpoint": "https://www.lincs.police.uk/news/lincolnshire/news/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "merseyside-police-news", - "provider": "Merseyside Police a News", - "endpoint": "https://www.merseyside.police.uk/news/merseyside/news/?source=merseyside-police-news", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "merseyside-police-news-html", - "provider": "Merseyside Police - News", - "endpoint": "https://www.merseyside.police.uk/news/merseyside/news/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "norfolk-constabulary-news", - "provider": "Norfolk Constabulary - News", - "endpoint": "https://www.norfolk.police.uk/news/norfolk/news/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "north-wales-police-news", - "provider": "North Wales Police - News", - "endpoint": "https://www.northwales.police.uk/news/north-wales/news/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "north-yorkshire-police-news-html", - "provider": "North Yorkshire Police - News", - "endpoint": "https://www.northyorkshire.police.uk/news", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "northamptonshire-police-news-html", - "provider": "Northamptonshire Police - News", - "endpoint": "https://www.northants.police.uk/news/northants/news/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "northumbria-police-northumbria-news", - "provider": "Northumbria Police - Northumbria News", - "endpoint": "https://www.northumbria.police.uk/news/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "nottinghamshire-police-news", - "provider": "Nottinghamshire Police a News", - "endpoint": "https://www.nottinghamshire.police.uk/news/news-search/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "nottinghamshire-police-nottinghamshire-news", - "provider": "Nottinghamshire Police - Nottinghamshire News", - "endpoint": "https://www.nottinghamshire.police.uk/news/news-search/?source=nottinghamshire-police-nottinghamshire-news", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "west-yorkshire-police-news", - "provider": "West Yorkshire Police a News", - "endpoint": "https://www.westyorkshire.police.uk/news", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "cps-homepage", - "provider": "Crown Prosecution Service", - "endpoint": "https://www.cps.gov.uk/", - "kind": "html", - "lane": "oversight", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "gov-uk-report-terrorism", - "provider": "GOV.UK - Report Terrorism", - "endpoint": "https://www.gov.uk/report-terrorism", - "kind": "html", - "lane": "prevention", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "gov-uk-terrorism-national-emergency", - "provider": "GOV.UK - Terrorism National Emergency", - "endpoint": "https://www.gov.uk/terrorism-national-emergency/national-emergencies", - "kind": "html", - "lane": "prevention", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "mi5-terrorism-threat-levels", - "provider": "MI5 - Terrorism Threat Levels", - "endpoint": "https://www.mi5.gov.uk/threats-and-advice/terrorism-threat-levels", - "kind": "html", - "lane": "prevention", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "northamptonshire-talking", - "provider": "Northamptonshire Talking", - "endpoint": "https://www.northamptonshiretalking.co.uk/", - "kind": "html", - "lane": "prevention", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "npsa-blog", - "provider": "NPSA - Blog", - "endpoint": "https://www.npsa.gov.uk/blog", - "kind": "html", - "lane": "prevention", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "npsa-blog-news", - "provider": "NPSA - Blog News", - "endpoint": "https://www.npsa.gov.uk/blog?source=npsa-blog-news", - "kind": "html", - "lane": "prevention", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "protectuk", - "provider": "ProtectUK (NPSA) a Protective Security Guidance", - "endpoint": "https://www.protectuk.police.uk/news?source=protectuk", - "kind": "html", - "lane": "prevention", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "uk-ncsc-homepage", - "provider": "UK NCSC - Homepage", - "endpoint": "https://www.ncsc.gov.uk/", - "kind": "html", - "lane": "prevention", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "protectuk-news", - "provider": "ProtectUK - News", - "endpoint": "https://www.protectuk.police.uk/news", - "kind": "html", - "lane": "prevention", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "npsa-national-security-threats", - "provider": "National Protective Security Authority - National Security Threats", - "endpoint": "https://www.npsa.gov.uk/threat-and-risk-management/national-security-threats", - "kind": "html", - "lane": "prevention", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "sk-sis-annual-report", - "provider": "Slovak Information Service - Annual Report", - "endpoint": "https://www.sis.gov.sk/for-you/sis-annual-report.html", - "kind": "html", - "lane": "context", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Persistent network failures — DNS/connection issues; infrastructure may be down", - "quarantinedAt": "2026-05-01T04:19:52.575Z", - "lastErrorCategory": "network-failure", - "lastErrorMessage": "fetch failed", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-05-01T04:19:52.575Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T04:19:52.575Z", - "lastFailureAt": "2026-05-01T04:19:52.575Z", - "lastCheckedAt": "2026-05-01T04:19:52.575Z" - }, - { - "id": "ec-police-organised-crime", - "provider": "Policía Nacional del Ecuador - Lucha contra el crimen organizado", - "endpoint": "https://noticias.policia.gob.ec/categor%C3%ADas/lucha-contra-el-crimen-organizado/", - "kind": "html", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Persistent network failures — DNS/connection issues; infrastructure may be down", - "quarantinedAt": "2026-05-01T04:19:52.575Z", - "lastErrorCategory": "network-failure", - "lastErrorMessage": "fetch failed", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-05-01T04:19:52.575Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T04:19:52.575Z", - "lastFailureAt": "2026-05-01T04:19:52.575Z", - "lastCheckedAt": "2026-05-01T04:19:52.575Z" - }, - { - "id": "ec-cancilleria-security", - "provider": "Cancillería del Ecuador", - "endpoint": "https://www.cancilleria.gob.ec/", - "kind": "html", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Persistent network failures — DNS/connection issues; infrastructure may be down", - "quarantinedAt": "2026-05-01T04:19:52.575Z", - "lastErrorCategory": "network-failure", - "lastErrorMessage": "fetch failed", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-05-01T04:19:52.575Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T04:19:52.575Z", - "lastFailureAt": "2026-05-01T04:19:52.575Z", - "lastCheckedAt": "2026-05-01T04:19:52.575Z" - }, - { - "id": "finland-police-news", - "provider": "Finnish Police - Newsroom", - "endpoint": "https://poliisi.fi/en/newsroom", - "kind": "html", - "lane": "incidents", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T23:05:08.470Z", - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastCheckedAt": "2026-04-30T23:05:08.470Z" - }, - { - "id": "south-wales-police-news", - "provider": "South Wales Police - News", - "endpoint": "https://www.south-wales.police.uk/news/south-wales/news/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T23:05:08.470Z", - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastCheckedAt": "2026-04-30T23:05:08.470Z" - }, - { - "id": "south-yorkshire-police-news", - "provider": "South Yorkshire Police a News", - "endpoint": "https://www.southyorkshire.police.uk/news/south-yorkshire/news/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T23:05:08.470Z", - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastCheckedAt": "2026-04-30T23:05:08.470Z" - }, - { - "id": "staffordshire-police-news", - "provider": "Staffordshire Police a News", - "endpoint": "https://www.staffordshire.police.uk/news/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T23:05:08.470Z", - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastCheckedAt": "2026-04-30T23:05:08.470Z" - }, - { - "id": "staffordshire-police-staffordshire-news", - "provider": "Staffordshire Police - Staffordshire News", - "endpoint": "https://www.staffordshire.police.uk/news/staffordshire/news/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T23:05:08.470Z", - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastCheckedAt": "2026-04-30T23:05:08.470Z" - }, - { - "id": "suffolk-constabulary-news", - "provider": "Suffolk Constabulary - News", - "endpoint": "https://www.suffolk.police.uk/news/suffolk/news/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T23:05:08.470Z", - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastCheckedAt": "2026-04-30T23:05:08.470Z" - }, - { - "id": "surrey-police-news", - "provider": "Surrey Police a News", - "endpoint": "https://www.surrey.police.uk/news/surrey/news/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T23:05:08.470Z", - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastCheckedAt": "2026-04-30T23:05:08.470Z" - }, - { - "id": "sussex-police-news", - "provider": "Sussex Police a News", - "endpoint": "https://www.sussex.police.uk/news/sussex/news/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T23:05:08.470Z", - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastCheckedAt": "2026-04-30T23:05:08.470Z" - }, - { - "id": "thames-valley-police-news", - "provider": "Thames Valley Police a News", - "endpoint": "https://www.thamesvalley.police.uk/news/thames-valley/news/?source=thames-valley-police-news", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T23:05:08.470Z", - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastCheckedAt": "2026-04-30T23:05:08.470Z" - }, - { - "id": "thames-valley-police-news-html", - "provider": "Thames Valley Police - Thames Valley News", - "endpoint": "https://www.thamesvalley.police.uk/news/thames-valley/news/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T23:05:08.470Z", - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastCheckedAt": "2026-04-30T23:05:08.470Z" - }, - { - "id": "west-mercia-police-news-html", - "provider": "West Mercia Police - News", - "endpoint": "https://www.westmercia.police.uk/news/west-mercia/news/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T23:05:08.470Z", - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastCheckedAt": "2026-04-30T23:05:08.470Z" - }, - { - "id": "west-midlands-police-news", - "provider": "West Midlands Police a News", - "endpoint": "https://www.westmidlands.police.uk/news/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T23:05:08.470Z", - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastCheckedAt": "2026-04-30T23:05:08.470Z" - }, - { - "id": "wiltshire-police-news", - "provider": "Wiltshire Police - News", - "endpoint": "https://www.wiltshire.police.uk/news/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T23:05:08.470Z", - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastCheckedAt": "2026-04-30T23:05:08.470Z" - }, - { - "id": "uk-btp-england-news", - "provider": "British Transport Police - England news", - "endpoint": "https://www.btp.police.uk/news/btp/news/?news. Category=England", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T23:05:08.470Z", - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastCheckedAt": "2026-04-30T23:05:08.470Z" - }, - { - "id": "uk-city-london-police-news", - "provider": "City of London Police - News", - "endpoint": "https://www.cityoflondon.police.uk/news", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T23:05:08.470Z", - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastCheckedAt": "2026-04-30T23:05:08.470Z" - }, - { - "id": "uk-city-london-police-fraud", - "provider": "City of London Police - Fraud category", - "endpoint": "https://www.cityoflondon.police.uk/news/city-of-london/news/?news. Category=Fraud", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T23:05:08.470Z", - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastCheckedAt": "2026-04-30T23:05:08.470Z" - }, - { - "id": "uk-west-mercia-police-news", - "provider": "West Mercia Police - News", - "endpoint": "https://www.westmercia.police.uk/news", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T23:05:08.470Z", - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastCheckedAt": "2026-04-30T23:05:08.470Z" - }, - { - "id": "uk-british-transport-police-search", - "provider": "British Transport Police - News search", - "endpoint": "https://www.btp.police.uk/news/news-search/", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T23:05:08.470Z", - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastCheckedAt": "2026-04-30T23:05:08.470Z" - }, - { - "id": "mi5-terrorism-news-category", - "provider": "MI5 - Terrorism News", - "endpoint": "https://www.mi5.gov.uk/news-categories/terrorism", - "kind": "html", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T23:05:08.470Z", - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastCheckedAt": "2026-04-30T23:05:08.470Z" - }, - { - "id": "sk-sis-news", - "provider": "Slovak Information Service - News", - "endpoint": "https://www.sis.gov.sk/news/news.html", - "kind": "html", - "lane": "context", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Persistent network failures — DNS/connection issues; infrastructure may be down", - "quarantinedAt": "2026-04-30T19:01:21.418Z", - "lastErrorCategory": "network-failure", - "lastErrorMessage": "fetch failed", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-28T20:58:08.387Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-30T19:01:21.418Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T19:01:21.418Z", - "lastFailureAt": "2026-04-30T19:01:21.418Z", - "lastCheckedAt": "2026-04-30T19:01:21.418Z" - }, - { - "id": "sk-defence-press", - "provider": "Slovak Ministry of Defence - Press", - "endpoint": "https://www.mosr.sk/tlacove-spravy/", - "kind": "html", - "lane": "context", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Persistent network failures — DNS/connection issues; infrastructure may be down", - "quarantinedAt": "2026-04-30T19:01:21.418Z", - "lastErrorCategory": "network-failure", - "lastErrorMessage": "fetch failed", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-28T20:58:08.387Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-30T19:01:21.418Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T19:01:21.418Z", - "lastFailureAt": "2026-04-30T19:01:21.418Z", - "lastCheckedAt": "2026-04-30T19:01:21.418Z" - }, - { - "id": "ec-police-news", - "provider": "Policía Nacional del Ecuador - Noticias", - "endpoint": "https://noticias.policia.gob.ec/", - "kind": "html", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Persistent network failures — DNS/connection issues; infrastructure may be down", - "quarantinedAt": "2026-04-30T19:01:21.418Z", - "lastErrorCategory": "network-failure", - "lastErrorMessage": "fetch failed", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-28T20:58:08.387Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-30T19:01:21.418Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T19:01:21.418Z", - "lastFailureAt": "2026-04-30T19:01:21.418Z", - "lastCheckedAt": "2026-04-30T19:01:21.418Z" - }, - { - "id": "ec-uafe-aml-cft", - "provider": "UAFE Ecuador", - "endpoint": "https://www.uafe.gob.ec/", - "kind": "html", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Infrastructure instability — mixed timeout and network errors; auto-retry likely to recover", - "quarantinedAt": "2026-04-30T19:01:21.418Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 2, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T20:58:08.387Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T19:01:21.418Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T19:01:21.418Z", - "lastFailureAt": "2026-04-30T19:01:21.418Z", - "lastCheckedAt": "2026-04-30T19:01:21.418Z" - }, - { - "id": "ec-nctc-los-lobos", - "provider": "US NCTC - Los Lobos", - "endpoint": "https://www.dni.gov/nctc/terrorist_groups/los_lobos.html", - "kind": "html", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T19:01:21.418Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T20:58:08.387Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T19:01:21.418Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T19:01:21.418Z", - "lastFailureAt": "2026-04-30T19:01:21.418Z", - "lastCheckedAt": "2026-04-30T19:01:21.418Z" - }, - { - "id": "uk-sanctions-list", - "provider": "UK Sanctions List (FCDO) a Consolidated List (XML Service)", - "endpoint": "https://sanctionslist.fcdo.gov.uk/docs/UK-Sanctions-List.xml", - "kind": "html", - "lane": "sanctions", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T19:01:21.418Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T20:58:08.387Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T19:01:21.418Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T19:01:21.418Z", - "lastFailureAt": "2026-04-30T19:01:21.418Z", - "lastCheckedAt": "2026-04-30T19:01:21.418Z" - }, - { - "id": "statewatch-news", - "provider": "Statewatch - News", - "endpoint": "https://www.statewatch.org/news/rssfeed", - "kind": "rss", - "lane": "context", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T15:47:12.538Z", - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastCheckedAt": "2026-04-30T15:47:12.538Z" - }, - { - "id": "de-bdk-bka-rss", - "provider": "Bund Deutscher Kriminalbeamter - BKA RSS", - "endpoint": "https://www.bdk.de/rss/bundeskriminalamt/RSS", - "kind": "rss", - "lane": "context", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T15:47:12.538Z", - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastCheckedAt": "2026-04-30T15:47:12.538Z" - }, - { - "id": "de-bayern-police-press", - "provider": "Bavarian Police - Press Releases", - "endpoint": "https://www.polizei.bayern.de/aktuelles/pressemitteilungen/index.html", - "kind": "html", - "lane": "incidents", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T15:47:12.538Z", - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastCheckedAt": "2026-04-30T15:47:12.538Z" - }, - { - "id": "tech-against-terrorism-podcast", - "provider": "Tech Against Terrorism - Podcast", - "endpoint": "https://feeds.buzzsprout.com/1684819.rss", - "kind": "rss", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-26T00:07:42.332Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T15:47:12.538Z", - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastCheckedAt": "2026-04-30T15:47:12.538Z" - }, - { - "id": "krebs-on-security", - "provider": "Krebs on Security", - "endpoint": "https://krebsonsecurity.com/feed/", - "kind": "rss", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T15:47:12.538Z", - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastCheckedAt": "2026-04-30T15:47:12.538Z" - }, - { - "id": "volcano-discovery-rss", - "provider": "Volcano Discovery", - "endpoint": "https://www.volcanodiscovery.com/rss.html", - "kind": "rss", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T00:07:42.332Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T15:47:12.538Z", - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastCheckedAt": "2026-04-30T15:47:12.538Z" - }, - { - "id": "ec-eluniverso-rss", - "provider": "El Universo - RSS", - "endpoint": "https://www.eluniverso.com/rss/", - "kind": "rss", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T15:47:12.538Z", - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastCheckedAt": "2026-04-30T15:47:12.538Z" - }, - { - "id": "southfront-feed", - "provider": "South. Front", - "endpoint": "https://southfront.org/feed/", - "kind": "rss", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Persistent network failures — DNS/connection issues; infrastructure may be down", - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "lastErrorCategory": "network-failure", - "lastErrorMessage": "fetch failed", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T00:07:42.332Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T15:47:12.538Z", - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastCheckedAt": "2026-04-30T15:47:12.538Z" - }, - { - "id": "inteltechniques-blog-feed", - "provider": "Intel. Techniques Blog", - "endpoint": "https://inteltechniques.com/blog/feed/", - "kind": "rss", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T15:47:12.538Z", - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastCheckedAt": "2026-04-30T15:47:12.538Z" - }, - { - "id": "the-sun-all-english", - "provider": "The Sun", - "endpoint": "https://www.thesun.co.uk/feeds/news-app-english-001-all/", - "kind": "rss", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-26T00:07:42.332Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T15:47:12.538Z", - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastCheckedAt": "2026-04-30T15:47:12.538Z" - }, - { - "id": "the-sun-homepage", - "provider": "The Sun", - "endpoint": "https://www.thesun.co.uk/feeds/favourite-homepage/", - "kind": "rss", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-26T00:07:42.332Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T15:47:12.538Z", - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastCheckedAt": "2026-04-30T15:47:12.538Z" - }, - { - "id": "the-sun-news-english", - "provider": "The Sun", - "endpoint": "https://www.thesun.co.uk/feeds/news-app-english-007-news/", - "kind": "rss", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T15:47:12.538Z", - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastCheckedAt": "2026-04-30T15:47:12.538Z" - }, - { - "id": "the-scottish-sun", - "provider": "The Scottish Sun", - "endpoint": "https://www.thescottishsun.co.uk/feed/", - "kind": "rss", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T15:47:12.538Z", - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastCheckedAt": "2026-04-30T15:47:12.538Z" - }, - { - "id": "nitter-uk-incident-keywords", - "provider": "Nitter - UK Incident Keyword Search", - "endpoint": "https://nitter.net/search/rss?f=tweets&q=explosion+OR+shooting+OR+police+UK", - "kind": "rss", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T15:47:12.538Z", - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastCheckedAt": "2026-04-30T15:47:12.538Z" - }, - { - "id": "uk-parliament-foreign-affairs-committee", - "provider": "Gov. Wire - Foreign, Commonwealth & Development Office", - "endpoint": "https://www.govwire.co.uk/rss/foreign-commonwealth-development-office", - "kind": "rss", - "lane": "oversight", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T15:47:12.538Z", - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastCheckedAt": "2026-04-30T15:47:12.538Z" - }, - { - "id": "requested-rss-feed-48d28e8f4091", - "provider": "RSS Feed", - "endpoint": "https://www.govwire.co.uk/rss/national-crime-agency", - "kind": "rss", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T15:47:12.538Z", - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastCheckedAt": "2026-04-30T15:47:12.538Z" - }, - { - "id": "requested-rss-feed-c34c5c93b43b", - "provider": "RSS Feed", - "endpoint": "https://www.govwire.co.uk/rss/crown-prosecution-service", - "kind": "rss", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T15:47:12.538Z", - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastCheckedAt": "2026-04-30T15:47:12.538Z" - }, - { - "id": "requested-neighbourhood-alerts-feed-8ad5321239de", - "provider": "Neighbourhood Alerts Feed", - "endpoint": "https://v4-api.neighbourhoodalert.co.uk/RSS", - "kind": "rss", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T15:47:12.538Z", - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastCheckedAt": "2026-04-30T15:47:12.538Z" - }, - { - "id": "requested-rss-feed-3f8b8535297b", - "provider": "RSS Feed", - "endpoint": "https://www.govwire.co.uk/rss/attorney-generals-office", - "kind": "rss", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-26T00:07:42.332Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T15:47:12.538Z", - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastCheckedAt": "2026-04-30T15:47:12.538Z" - }, - { - "id": "austria-interior-ministry-rss-index", - "provider": "Austrian Interior Ministry - News", - "endpoint": "https://www.bmi.gv.at/rss_feed/start.aspx", - "kind": "rss", - "lane": "context", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Health score degraded to 0 after repeated failures", - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "lastErrorCategory": "unknown", - "lastErrorMessage": "Cannot read properties of undefined (reading 'tag. Name')", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "http-status-error", - "message": "HTTP 503", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "http-status-error", - "message": "HTTP 503", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "http-status-error", - "message": "HTTP 503", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "unknown", - "message": "Cannot read properties of undefined (reading 'tagName')", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "unknown", - "message": "Cannot read properties of undefined (reading 'tagName')", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T09:27:37.716Z", - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastCheckedAt": "2026-04-30T09:27:37.716Z" - }, - { - "id": "bdk-rss", - "provider": "Bund Deutscher Kriminalbeamter - RSS", - "endpoint": "https://www.bdk.de/rss/alle-nachrichten/RSS", - "kind": "rss", - "lane": "context", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T09:27:37.716Z", - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastCheckedAt": "2026-04-30T09:27:37.716Z" - }, - { - "id": "de-bmj-press-rss", - "provider": "German Federal Ministry of Justice - RSS", - "endpoint": "https://www.bmj.de/DE/presse/newsletter/rssnewsfeed/rss_node.html", - "kind": "rss", - "lane": "context", - "region": "eu", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T09:27:37.716Z", - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastCheckedAt": "2026-04-30T09:27:37.716Z" - }, - { - "id": "dw-europe-rss", - "provider": "Deutsche Welle a Europe (RSS)", - "endpoint": "https://rss.dw.com/rdf/rss-en-eu", - "kind": "rss", - "lane": "context", - "region": "europe", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T09:27:37.716Z", - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastCheckedAt": "2026-04-30T09:27:37.716Z" - }, - { - "id": "crisis-group", - "provider": "International Crisis Group a Research & Analysis", - "endpoint": "https://www.crisisgroup.org/rss", - "kind": "rss", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T09:27:37.716Z", - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastCheckedAt": "2026-04-30T09:27:37.716Z" - }, - { - "id": "the-sun-all", - "provider": "The Sun", - "endpoint": "https://www.thesun.co.uk/feeds/all/", - "kind": "rss", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T09:27:37.716Z", - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastCheckedAt": "2026-04-30T09:27:37.716Z" - }, - { - "id": "the-sun", - "provider": "The Sun", - "endpoint": "https://www.thesun.co.uk/feed/", - "kind": "rss", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T09:27:37.716Z", - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastCheckedAt": "2026-04-30T09:27:37.716Z" - }, - { - "id": "streetspace", - "provider": "Streetspace", - "endpoint": "https://streetspacegroup.co.uk/feed/", - "kind": "rss", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T09:27:37.716Z", - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastCheckedAt": "2026-04-30T09:27:37.716Z" - }, - { - "id": "mi5-news-rss", - "provider": "MI5 - News and Updates (RSS)", - "endpoint": "https://www.mi5.gov.uk/rss.xml", - "kind": "rss", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T09:27:37.716Z", - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastCheckedAt": "2026-04-30T09:27:37.716Z" - }, - { - "id": "act-campaign-feed", - "provider": "Action Counters Terrorism (ACT)", - "endpoint": "https://act.campaign.gov.uk/feed/", - "kind": "rss", - "lane": "context", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T09:27:37.716Z", - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastCheckedAt": "2026-04-30T09:27:37.716Z" - }, - { - "id": "cumbria-police-news", - "provider": "Cumbria Police - News RSS", - "endpoint": "https://www.news.cumbria.police.uk/feeds/news/cumbria.rss", - "kind": "rss", - "lane": "incidents", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T09:27:37.716Z", - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastCheckedAt": "2026-04-30T09:27:37.716Z" - }, - { - "id": "judiciary-uk-news", - "provider": "Judiciary of England and Wales a News", - "endpoint": "https://www.judiciary.uk/feed/", - "kind": "rss", - "lane": "oversight", - "region": "uk", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "Blocked by blocked access page", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T09:27:37.716Z", - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastCheckedAt": "2026-04-30T09:27:37.716Z" - }, - { - "id": "ctc-sentinel", - "provider": "Combating Terrorism Center at West Point - CTC Sentinel", - "endpoint": "https://ctc.westpoint.edu/feed/", - "kind": "rss", - "lane": "context", - "region": "us", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T09:27:37.716Z", - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastCheckedAt": "2026-04-30T09:27:37.716Z" - }, - { - "id": "fbi-national-press-releases", - "provider": "FBI - National Press Releases (RSS)", - "endpoint": "https://www.fbi.gov/feeds/national-press-releases/RSS", - "kind": "rss", - "lane": "context", - "region": "us", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T09:27:37.716Z", - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastCheckedAt": "2026-04-30T09:27:37.716Z" - }, - { - "id": "fbi-stories", - "provider": "FBI - Top Stories (RSS)", - "endpoint": "https://www.fbi.gov/feeds/fbi-top-stories/rss.xml", - "kind": "rss", - "lane": "context", - "region": "us", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T09:27:37.716Z", - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastCheckedAt": "2026-04-30T09:27:37.716Z" - }, - { - "id": "fbi-top-stories", - "provider": "FBI - Top Stories (RSS)", - "endpoint": "https://www.fbi.gov/feeds/fbi-top-stories/rss.xml?source=fbi-top-stories", - "kind": "rss", - "lane": "context", - "region": "us", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "HTML structure changed — selectors no longer match; needs parser update", - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-07T09:27:37.716Z", - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastCheckedAt": "2026-04-30T09:27:37.716Z" - }, - { - "id": "above-top-secret-rss", - "provider": "Above. Top. Secret Forum", - "endpoint": "https://www.abovetopsecret.com/forum/rss.xml", - "kind": "rss", - "lane": "context", - "region": "international", - "healthScore": 0, - "status": "auto-quarantined", - "reason": "Persistent timeouts — endpoint may be overloaded or unreachable", - "quarantinedAt": "2026-04-27T04:20:08.357Z", - "lastErrorCategory": "timeout", - "lastErrorMessage": "This operation was aborted", - "consecutiveFailures": 6, - "consecutiveTimeoutFailures": 6, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "replacementSuggestion": "", - "reviewBy": "2026-05-08T07:23:12.181Z", - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastCheckedAt": "2026-05-01T07:23:12.181Z" - }, - { - "id": "spain-interior-ministry-news", - "provider": "Spanish Ministry of the Interior - News", - "endpoint": "https://www.interior.gob.es/opencms/en/prensa/noticias/", - "kind": "html", - "lane": "context", - "region": "eu", - "healthScore": 80, - "status": "catalog-quarantined", - "reason": "Marked quarantined in sources catalog", - "quarantinedAt": "", - "lastErrorCategory": "", - "lastErrorMessage": "", - "consecutiveFailures": 0, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [], - "replacementSuggestion": "", - "reviewBy": "", - "lastFailureAt": "", - "lastCheckedAt": "" - }, - { - "id": "start-baad-database", - "provider": "National Consortium for the Study of Terrorism (START) - BAAD Database", - "endpoint": "https://www.start.umd.edu/baad/database.html?page=1", - "kind": "html", - "lane": "context", - "region": "us", - "healthScore": 80, - "status": "catalog-quarantined", - "reason": "Marked quarantined in sources catalog", - "quarantinedAt": "", - "lastErrorCategory": "", - "lastErrorMessage": "", - "consecutiveFailures": 0, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [], - "replacementSuggestion": "", - "reviewBy": "", - "lastFailureAt": "", - "lastCheckedAt": "" - }, - { - "id": "start-center-publications", - "provider": "START Center (UMD) - News & Publications", - "endpoint": "https://www.start.umd.edu/news", - "kind": "html", - "lane": "context", - "region": "us", - "healthScore": 80, - "status": "catalog-quarantined", - "reason": "Marked quarantined in sources catalog", - "quarantinedAt": "", - "lastErrorCategory": "", - "lastErrorMessage": "", - "consecutiveFailures": 0, - "consecutiveTimeoutFailures": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "recentErrors": [], - "replacementSuggestion": "", - "reviewBy": "", - "lastFailureAt": "", - "lastCheckedAt": "" - } - ] + "sources": [] } diff --git a/data/source-remediation-sweep.json b/data/source-remediation-sweep.json index 7d3652d6..9b5f4df0 100644 --- a/data/source-remediation-sweep.json +++ b/data/source-remediation-sweep.json @@ -1,121 +1,11 @@ { "generatedFrom": "live-alerts.json", - "generatedAt": "2026-05-02T07:12:34.064Z", - "totalSourceErrors": 3, - "byCategory": { - "anti-bot-protection": 2, - "brittle-selectors-or-js-rendering": 1 - }, - "byKind": { - "html": 2, - "rss": 1 - }, - "machineReadableErrorCount": 1, - "htmlErrorCount": 2, - "top20": [ - { - "id": "eu-council-press-releases-html", - "provider": "Council of the EU - Press Releases", - "endpoint": "https://www.consilium.europa.eu/en/press/press-releases/", - "finalUrl": "", - "category": "anti-bot-protection", - "statusKind": "", - "message": "Blocked by anti-bot protection", - "status": 0, - "rankScore": 2, - "suggestedAction": "downgrade to non-bot-protected endpoint or quarantine if no public feed", - "replacementCandidate": "", - "sourceKind": "html", - "sourceLane": "oversight", - "sourceRegion": "", - "isMachineReadable": false - }, - { - "id": "hammersmith-fulham-news", - "provider": "Hammersmith and Fulham Council a News", - "endpoint": "https://www.lbhf.gov.uk/news", - "finalUrl": "", - "category": "brittle-selectors-or-js-rendering", - "statusKind": "", - "message": "No items parsed from source payload", - "status": 202, - "rankScore": 2, - "suggestedAction": "switch to known stable RSS/Atom if available or adjust parser selector", - "replacementCandidate": "", - "sourceKind": "html", - "sourceLane": "context", - "sourceRegion": "", - "isMachineReadable": false - }, - { - "id": "jamestown-foundation-feed", - "provider": "Jamestown Foundation - Main Feed", - "endpoint": "https://jamestown.org/feed/", - "finalUrl": "", - "category": "anti-bot-protection", - "statusKind": "", - "message": "Blocked by anti-bot protection", - "status": 200, - "rankScore": 2, - "suggestedAction": "downgrade to non-bot-protected endpoint or quarantine if no public feed", - "replacementCandidate": "", - "sourceKind": "rss", - "sourceLane": "context", - "sourceRegion": "", - "isMachineReadable": true - } - ], - "sources": [ - { - "id": "eu-council-press-releases-html", - "provider": "Council of the EU - Press Releases", - "endpoint": "https://www.consilium.europa.eu/en/press/press-releases/", - "finalUrl": "", - "category": "anti-bot-protection", - "statusKind": "", - "message": "Blocked by anti-bot protection", - "status": 0, - "rankScore": 2, - "suggestedAction": "downgrade to non-bot-protected endpoint or quarantine if no public feed", - "replacementCandidate": "", - "sourceKind": "html", - "sourceLane": "oversight", - "sourceRegion": "", - "isMachineReadable": false - }, - { - "id": "hammersmith-fulham-news", - "provider": "Hammersmith and Fulham Council a News", - "endpoint": "https://www.lbhf.gov.uk/news", - "finalUrl": "", - "category": "brittle-selectors-or-js-rendering", - "statusKind": "", - "message": "No items parsed from source payload", - "status": 202, - "rankScore": 2, - "suggestedAction": "switch to known stable RSS/Atom if available or adjust parser selector", - "replacementCandidate": "", - "sourceKind": "html", - "sourceLane": "context", - "sourceRegion": "", - "isMachineReadable": false - }, - { - "id": "jamestown-foundation-feed", - "provider": "Jamestown Foundation - Main Feed", - "endpoint": "https://jamestown.org/feed/", - "finalUrl": "", - "category": "anti-bot-protection", - "statusKind": "", - "message": "Blocked by anti-bot protection", - "status": 200, - "rankScore": 2, - "suggestedAction": "downgrade to non-bot-protected endpoint or quarantine if no public feed", - "replacementCandidate": "", - "sourceKind": "rss", - "sourceLane": "context", - "sourceRegion": "", - "isMachineReadable": true - } - ] + "generatedAt": "2026-05-02T08:41:54.057Z", + "totalSourceErrors": 0, + "byCategory": {}, + "byKind": {}, + "machineReadableErrorCount": 0, + "htmlErrorCount": 0, + "top20": [], + "sources": [] } diff --git a/data/top-20-source-remediation.json b/data/top-20-source-remediation.json index f8275ddd..26f66a12 100644 --- a/data/top-20-source-remediation.json +++ b/data/top-20-source-remediation.json @@ -1,58 +1,6 @@ { "generatedFrom": "live-alerts.json", - "generatedAt": "2026-05-02T07:12:34.064Z", - "totalSourceErrors": 3, - "top20": [ - { - "id": "eu-council-press-releases-html", - "provider": "Council of the EU - Press Releases", - "endpoint": "https://www.consilium.europa.eu/en/press/press-releases/", - "finalUrl": "", - "category": "anti-bot-protection", - "statusKind": "", - "message": "Blocked by anti-bot protection", - "status": 0, - "rankScore": 2, - "suggestedAction": "downgrade to non-bot-protected endpoint or quarantine if no public feed", - "replacementCandidate": "", - "sourceKind": "html", - "sourceLane": "oversight", - "sourceRegion": "", - "isMachineReadable": false - }, - { - "id": "hammersmith-fulham-news", - "provider": "Hammersmith and Fulham Council a News", - "endpoint": "https://www.lbhf.gov.uk/news", - "finalUrl": "", - "category": "brittle-selectors-or-js-rendering", - "statusKind": "", - "message": "No items parsed from source payload", - "status": 202, - "rankScore": 2, - "suggestedAction": "switch to known stable RSS/Atom if available or adjust parser selector", - "replacementCandidate": "", - "sourceKind": "html", - "sourceLane": "context", - "sourceRegion": "", - "isMachineReadable": false - }, - { - "id": "jamestown-foundation-feed", - "provider": "Jamestown Foundation - Main Feed", - "endpoint": "https://jamestown.org/feed/", - "finalUrl": "", - "category": "anti-bot-protection", - "statusKind": "", - "message": "Blocked by anti-bot protection", - "status": 200, - "rankScore": 2, - "suggestedAction": "downgrade to non-bot-protected endpoint or quarantine if no public feed", - "replacementCandidate": "", - "sourceKind": "rss", - "sourceLane": "context", - "sourceRegion": "", - "isMachineReadable": true - } - ] + "generatedAt": "2026-05-02T08:41:54.057Z", + "totalSourceErrors": 0, + "top20": [] } diff --git a/live-alerts.json b/live-alerts.json index cd8276e5..969b4e92 100644 --- a/live-alerts.json +++ b/live-alerts.json @@ -1,6 +1,6 @@ { - "generatedAt": "2026-05-02T07:12:34.064Z", - "sourceCount": 396, + "generatedAt": "2026-05-02T08:41:54.057Z", + "sourceCount": 4, "alertCount": 340, "alerts": [ { @@ -19814,9 +19814,19 @@ "freshUntil": "2026-04-12T10:10:00.000Z", "needsHumanReview": false, "isTerrorRelevant": true, - "corroboratingSources": [], - "corroborationCount": 0, - "isDuplicateOf": null + "corroboratingSources": [ + { + "fusedIncidentId": "fusion-b4a9eb5890206d91", + "source": "Fixture Oversight Feed", + "sourceUrl": "https://fixtures.albertalert.local/oversight/1", + "sourceTier": "context", + "reliabilityProfile": "official_context", + "publishedAt": "2026-04-04T10:10:00.000Z", + "confidence": "Verified official source update" + } + ], + "corroborationCount": 1, + "isDuplicateOf": "fusion-b4a9eb5890206d91" }, { "id": "uk-ncsc-news-4", @@ -20196,9 +20206,19 @@ "freshUntil": "2026-04-12T09:30:00.000Z", "needsHumanReview": false, "isTerrorRelevant": true, - "corroboratingSources": [], - "corroborationCount": 0, - "isDuplicateOf": null + "corroboratingSources": [ + { + "fusedIncidentId": "fusion-f5cb7bfa16235fcf", + "source": "Fixture Prevention Feed", + "sourceUrl": "https://fixtures.albertalert.local/prevention/1", + "sourceTier": "research", + "reliabilityProfile": "specialist_research", + "publishedAt": "2026-04-04T09:30:00.000Z", + "confidence": "Research or analytical source" + } + ], + "corroborationCount": 1, + "isDuplicateOf": "fusion-f5cb7bfa16235fcf" }, { "id": "ran-network-3", @@ -20256,38 +20276,7 @@ "isDuplicateOf": "fusion-6e8596cad982f2f5" } ], - "sourceErrors": [ - { - "id": "jamestown-foundation-feed", - "provider": "Jamestown Foundation - Main Feed", - "endpoint": "https://jamestown.org/feed/", - "finalUrl": "https://jamestown.org/feed/", - "status": 200, - "message": "Blocked by anti-bot protection", - "errorCode": "BLOCKED_ANTI_BOT", - "category": "anti-bot-protection" - }, - { - "id": "hammersmith-fulham-news", - "provider": "Hammersmith and Fulham Council a News", - "endpoint": "https://www.lbhf.gov.uk/news", - "finalUrl": "", - "status": null, - "message": "No items parsed from source payload", - "errorCode": "PARSER_SELECTOR_OR_JS_RENDERING", - "category": "brittle-selectors-or-js-rendering" - }, - { - "id": "eu-council-press-releases-html", - "provider": "Council of the EU - Press Releases", - "endpoint": "https://www.consilium.europa.eu/en/press/press-releases/", - "finalUrl": "https://www.consilium.europa.eu/en/press/press-releases/", - "status": null, - "message": "Blocked by anti-bot protection", - "errorCode": "BLOCKED_ANTI_BOT", - "category": "anti-bot-protection" - } - ], + "sourceErrors": [], "restoreAudit": null, "geoLookupSnapshot": [ { @@ -22131,87 +22120,46 @@ "lng": 133.7751 } ], - "buildWarning": "Deferred 300 low-yield source(s) on health cooldown.", + "buildWarning": null, "runMetrics": { "schedulerMode": "candidate", "htmlBudget": 40, "htmlDomainCapPerRun": 3, - "htmlDomainUsage": { - "www.psni.police.uk": 2, - "www.warwickshireconnected.com": 1, - "www.westyorkshire.police.uk": 3, - "news.npcc.police.uk": 2, - "www.police.be": 1, - "policie.gov.cz": 1, - "www.politie.nl": 2, - "english.elpais.com": 1, - "mossos.gencat.cat": 1, - "www.policia.es": 1, - "politiaromana.ro": 1, - "www.bka.de": 1, - "www.presseportal.de": 1, - "www.zoll.de": 1, - "www.justiz.sachsen.de": 2, - "en.vijesti.me": 1, - "rtcg.me": 1, - "www.garda.ie": 1, - "www.policiajudiciaria.pt": 1, - "www.theportugalnews.com": 1, - "news.met.police.uk": 3, - "www.avonandsomerset.police.uk": 2, - "news.lancashire.police.uk": 1, - "www.scotland.police.uk": 1, - "www.gov.scot": 1, - "www.judiciary.uk": 1, - "www.scotcourts.gov.uk": 1, - "www.metoffice.gov.uk": 1, - "ofsi.blog.gov.uk": 1, - "otsi.blog.gov.uk": 1, - "extremism.gwu.edu": 1 - }, + "htmlDomainUsage": {}, "coverage": { - "eligible": 698, - "scheduled": 398, - "initialScheduled": 231, - "continuationAttempted": 167, - "checked": 396, - "eligibleCheckedRate": 0.567, - "scheduledCheckedRate": 0.995 + "eligible": 4, + "scheduled": 4, + "initialScheduled": 1, + "continuationAttempted": 3, + "checked": 4, + "eligibleCheckedRate": 1, + "scheduledCheckedRate": 1 }, "freshnessSlaByTier": { - "low": { - "count": 19, - "avgMinutes": 1206, - "p95Minutes": 4297 + "high": { + "count": 1, + "avgMinutes": 0, + "p95Minutes": 0 }, "medium": { - "count": 44, - "avgMinutes": 2183, - "p95Minutes": 7046 - }, - "high": { - "count": 5, - "avgMinutes": 168, - "p95Minutes": 839 + "count": 1, + "avgMinutes": 0, + "p95Minutes": 0 } }, "failureReasons": { - "success": 25, - "unchanged": 7, - "blocked-or-anti-bot": 4, - "parser-failure": 1, - "empty-or-no-items": 1 + "success": 2 }, "sourceRunStats": { - "totalConfiguredSources": 704, - "sourcesCheckedThisRun": 398, - "sourcesUpdatedThisRun": 25, - "sourcesFailedThisRun": 3, - "sourcesUnchangedThisRun": 7 + "totalConfiguredSources": 4, + "sourcesCheckedThisRun": 4, + "sourcesUpdatedThisRun": 2, + "sourcesFailedThisRun": 0, + "sourcesUnchangedThisRun": 0 }, - "runDurationMs": 540806, + "runDurationMs": 357, "playwrightFallback": { - "attempts": 2, + "attempts": 0, "successes": 0, "maxAttempts": 4, "timeoutMs": 12000 @@ -22219,26969 +22167,213 @@ "guardrails": { "maxRuntimeMs": 720000, "maxFailedSourceRate": 0.65, - "minSuccessfulSources": 8, - "targetSuccessfulSourcesPerRun": 60, - "failedSourceRate": 0.008, - "successfulSources": 25, + "minSuccessfulSources": 1, + "targetSuccessfulSourcesPerRun": 1, + "failedSourceRate": 0, + "successfulSources": 2, "violations": [], "midRun": { - "throttleLevel": 1, - "totalAttempted": 398, - "totalFailed": 3, - "totalSuccessful": 25, - "failedRate": 0.008, - "successRate": 0.063, - "avgSourceDurationMs": 1359, + "throttleLevel": 0, + "totalAttempted": 4, + "totalFailed": 0, + "totalSuccessful": 2, + "failedRate": 0, + "successRate": 0.5, + "avgSourceDurationMs": 65, "criticalOnly": false, "skipPlaywright": false, - "transitions": [ - { - "at": "2026-05-02T07:12:34.060Z", - "level": 1, - "reason": "runtime approaching 75.1% of guardrail", - "elapsed": 540802, - "rate": 0.008, - "attempted": 398 - } - ] + "transitions": [] } } }, "health": { "expectedRefreshMinutes": 30, "staleAfterMinutes": 50, - "lastAttemptedRefreshTime": "2026-05-02T07:12:34.064Z", + "lastAttemptedRefreshTime": "2026-05-02T08:41:54.057Z", "usedFallback": false, - "lastSuccessfulRefreshTime": "2026-05-02T07:12:34.064Z", - "lastSuccessfulRunId": "25246409750", - "lastSuccessfulRunNumber": "621", + "lastSuccessfulRefreshTime": "2026-05-02T08:41:54.057Z", + "lastSuccessfulRunId": "25248111246", + "lastSuccessfulRunNumber": "415", "lastSuccessfulRunAttempt": "1", - "lastSuccessfulHeadSha": "3561e574cff36dda3428e4fdfec53a6b522ebf00", - "lastSuccessfulEvent": "schedule", - "lastSuccessfulSourceCount": 396, - "sourceErrorCount": 3, - "hasWarnings": true, - "autoDeferredSourceCount": 300, - "autoDeferredSources": [ - { - "id": "frontex-news-releases", - "provider": "Frontex a News Releases", - "reason": "health-deprioritised", - "until": "2026-05-03T15:41:41.977Z", - "statusKind": "cooled_down" - }, - { - "id": "austria-interior-ministry-rss-index", - "provider": "Austrian Interior Ministry - News", - "reason": "health-deprioritised", - "until": "2026-05-02T09:27:37.716Z", - "statusKind": "cooled_down" - }, - { - "id": "bdk-rss", - "provider": "Bund Deutscher Kriminalbeamter - RSS", - "reason": "health-deprioritised", - "until": "2026-05-02T09:27:37.716Z", - "statusKind": "cooled_down" - }, - { - "id": "belgium-crisis-centre-news", - "provider": "Centre de Crise - Newsroom", - "reason": "health-deprioritised", - "until": "2026-05-02T11:24:36.848Z", - "statusKind": "cooled_down" - }, - { - "id": "denmark-pet-news", - "provider": "Danish Security and Intelligence Service - News", - "reason": "health-deprioritised", - "until": "2026-05-03T12:10:27.497Z", - "statusKind": "cooled_down" - }, - { - "id": "ecfr-feeds-index", - "provider": "ECFR - Newsroom", - "reason": "health-deprioritised", - "until": "2026-05-03T17:13:17.765Z", - "statusKind": "cooled_down" - }, - { - "id": "enisa-news", - "provider": "ENISA (EU Cybersecurity Agency) a News", - "reason": "health-deprioritised", - "until": "2026-05-03T07:23:12.181Z", - "statusKind": "cooled_down" - }, - { - "id": "euiss-home", - "provider": "EU Institute for Security Studies", - "reason": "health-deprioritised", - "until": "2026-05-02T16:51:21.217Z", - "statusKind": "cooled_down" - }, - { - "id": "eurojust-press-news-html", - "provider": "Eurojust - Press Releases and News", - "reason": "health-deprioritised", - "until": "2026-05-03T15:41:41.977Z", - "statusKind": "cooled_down" - }, - { - "id": "eurojust-press-releases", - "provider": "Eurojust - Press Releases", - "reason": "health-deprioritised", - "until": "2026-05-03T21:34:23.032Z", - "statusKind": "cooled_down" - }, - { - "id": "finland-supo-news", - "provider": "Finnish Security Intelligence Service - News and Press Releases", - "reason": "health-deprioritised", - "until": "2026-05-03T07:23:12.181Z", - "statusKind": "cooled_down" - }, - { - "id": "nctv-english-rss", - "provider": "NCTV Netherlands - Latest News", - "reason": "health-deprioritised", - "until": "2026-05-03T07:23:12.181Z", - "statusKind": "cooled_down" - }, - { - "id": "paris-prefecture-police-rss-page", - "provider": "Paris Prefecture of Police - RSS", - "reason": "health-deprioritised", - "until": "2026-05-02T23:05:08.470Z", - "statusKind": "cooled_down" - }, - { - "id": "statewatch-news", - "provider": "Statewatch - News", - "reason": "health-deprioritised", - "until": "2026-05-02T15:47:12.538Z", - "statusKind": "cooled_down" - }, - { - "id": "de-bfv-islamist-extremism", - "provider": "BfV - Islamist Extremism and Terrorism", - "reason": "health-deprioritised", - "until": "2026-05-02T21:41:21.778Z", - "statusKind": "cooled_down" - }, - { - "id": "de-bmj-press-rss", - "provider": "German Federal Ministry of Justice - RSS", - "reason": "health-deprioritised", - "until": "2026-05-02T09:27:37.716Z", - "statusKind": "cooled_down" - }, - { - "id": "de-bdk-bka-rss", - "provider": "Bund Deutscher Kriminalbeamter - BKA RSS", - "reason": "health-deprioritised", - "until": "2026-05-02T15:47:12.538Z", - "statusKind": "cooled_down" - }, - { - "id": "me-ministry-defence", - "provider": "Montenegro Ministry of Defence", - "reason": "health-deprioritised", - "until": "2026-05-03T21:34:23.032Z", - "statusKind": "cooled_down" - }, - { - "id": "me-moneyval-aml-cft", - "provider": "Council of Europe MONEYVAL", - "reason": "health-deprioritised", - "until": "2026-05-03T07:23:12.181Z", - "statusKind": "cooled_down" - }, - { - "id": "sk-sis-news", - "provider": "Slovak Information Service - News", - "reason": "health-deprioritised", - "until": "2026-05-02T19:01:21.418Z", - "statusKind": "cooled_down" - }, - { - "id": "sk-sis-annual-report", - "provider": "Slovak Information Service - Annual Report", - "reason": "health-deprioritised", - "until": "2026-05-03T04:19:52.575Z", - "statusKind": "cooled_down" - }, - { - "id": "sk-defence-press", - "provider": "Slovak Ministry of Defence - Press", - "reason": "health-deprioritised", - "until": "2026-05-02T19:01:21.418Z", - "statusKind": "cooled_down" - }, - { - "id": "sk-mfa-all-news", - "provider": "Slovak Foreign Ministry - All News", - "reason": "health-deprioritised", - "until": "2026-05-03T07:23:12.181Z", - "statusKind": "cooled_down" - }, - { - "id": "germany-federal-prosecutor-current-press-en", - "provider": "German Federal Public Prosecutor - Current Press Releases (EN)", - "reason": "health-deprioritised", - "until": "2026-05-04T04:51:21.217Z", - "statusKind": "cooled_down" - }, - { - "id": "netherlands-om-terrorisme", - "provider": "Dutch Public Prosecution Service - Terrorisme", - "reason": "health-deprioritised", - "until": "2026-05-03T15:41:41.977Z", - "statusKind": "cooled_down" - } - ], + "lastSuccessfulHeadSha": "fdcf194ef6c2f386013053029431b2ed241b04a3", + "lastSuccessfulEvent": "dynamic", + "lastSuccessfulSourceCount": 4, + "sourceErrorCount": 0, + "hasWarnings": false, + "autoDeferredSourceCount": 0, + "autoDeferredSources": [], "operationalDeferredSourceCount": 0, "operationalDeferredSources": [], "sourceRunStats": { - "totalConfiguredSources": 704, - "sourcesCheckedThisRun": 398, - "sourcesUpdatedThisRun": 25, - "sourcesFailedThisRun": 3, - "sourcesUnchangedThisRun": 7 + "totalConfiguredSources": 4, + "sourcesCheckedThisRun": 4, + "sourcesUpdatedThisRun": 2, + "sourcesFailedThisRun": 0, + "sourcesUnchangedThisRun": 0 }, "extraMetrics": { "schedulerMode": "candidate", "coverage": { - "eligible": 698, - "scheduled": 398, - "initialScheduled": 231, - "continuationAttempted": 167, - "checked": 396, - "eligibleCheckedRate": 0.567, - "scheduledCheckedRate": 0.995 + "eligible": 4, + "scheduled": 4, + "initialScheduled": 1, + "continuationAttempted": 3, + "checked": 4, + "eligibleCheckedRate": 1, + "scheduledCheckedRate": 1 }, "freshnessSlaByTier": { - "low": { - "count": 19, - "avgMinutes": 1206, - "p95Minutes": 4297 + "high": { + "count": 1, + "avgMinutes": 0, + "p95Minutes": 0 }, "medium": { - "count": 44, - "avgMinutes": 2183, - "p95Minutes": 7046 - }, - "high": { - "count": 5, - "avgMinutes": 168, - "p95Minutes": 839 + "count": 1, + "avgMinutes": 0, + "p95Minutes": 0 } }, "failureReasons": { - "success": 25, - "unchanged": 7, - "blocked-or-anti-bot": 4, - "parser-failure": 1, - "empty-or-no-items": 1 + "success": 2 }, "sourceRunStats": { - "totalConfiguredSources": 704, - "sourcesCheckedThisRun": 398, - "sourcesUpdatedThisRun": 25, - "sourcesFailedThisRun": 3, - "sourcesUnchangedThisRun": 7 + "totalConfiguredSources": 4, + "sourcesCheckedThisRun": 4, + "sourcesUpdatedThisRun": 2, + "sourcesFailedThisRun": 0, + "sourcesUnchangedThisRun": 0 }, "playwrightFallback": { - "attempts": 2, + "attempts": 0, "successes": 0 }, "guardrailViolations": [], "midRunGuardrail": { - "throttleLevel": 1, - "totalAttempted": 398, - "totalFailed": 3, - "totalSuccessful": 25, - "failedRate": 0.008, - "successRate": 0.063, - "avgSourceDurationMs": 1359, + "throttleLevel": 0, + "totalAttempted": 4, + "totalFailed": 0, + "totalSuccessful": 2, + "failedRate": 0, + "successRate": 0.5, + "avgSourceDurationMs": 65, "criticalOnly": false, "skipPlaywright": false, - "transitions": [ - { - "at": "2026-05-02T07:12:34.060Z", - "level": 1, - "reason": "runtime approaching 75.1% of guardrail", - "elapsed": 540802, - "rate": 0.008, - "attempted": 398 - } - ] + "transitions": [] } }, "sourceHealth": { - "euaa-news": { - "provider": "EUAA (EU Agency for Asylum) - Press Releases", - "lane": "border", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", + "fixture-rss-incidents": { + "provider": "Fixture Incidents Feed", + "lane": "incidents", + "kind": "rss", + "lastCheckedAt": "2026-05-02T08:41:54.057Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 75, + "emptyRuns": 1, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, + "consecutiveEmptyRuns": 1, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", + "lastEmptyAt": "2026-05-02T08:41:54.057Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], "cooldownUntil": null, "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "eulisa-news-events": { - "provider": "eu-LISA - News and Events (RSS)", - "lane": "border", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 54, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 11, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-29T11:50:06.590Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-29T11:50:06.590Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "frontex-news-releases": { - "provider": "Frontex a News Releases", - "lane": "border", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "austria-interior-ministry-news": { - "provider": "Austrian Interior Ministry - News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 38, - "failedRuns": 4, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 37, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-27T14:17:09.800Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "http-status-error", - "message": "HTTP 503", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "http-status-error", - "message": "HTTP 503", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "http-status-error", - "message": "HTTP 503", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "http-status-error", - "message": "HTTP 503", - "at": "2026-04-27T14:17:09.800Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, + "healthScore": 77, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "austria-interior-ministry-rss-index": { - "provider": "Austrian Interior Ministry - News", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T09:27:37.716Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastEmptyAt": null, - "lastErrorCategory": "unknown", - "lastErrorMessage": "Cannot read properties of undefined (reading 'tagName')", - "recentErrors": [ - { - "category": "http-status-error", - "message": "HTTP 503", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "http-status-error", - "message": "HTTP 503", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "http-status-error", - "message": "HTTP 503", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "unknown", - "message": "Cannot read properties of undefined (reading 'tagName')", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "unknown", - "message": "Cannot read properties of undefined (reading 'tagName')", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "cooldownUntil": "2026-05-02T09:27:37.716Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "quarantineReason": "Health score degraded to 0 after repeated failures", - "nextFetchAt": "2026-05-02T09:27:37.716Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" + "nextFetchAt": "2026-05-02T09:38:54.057Z" }, - "bdk-rss": { - "provider": "Bund Deutscher Kriminalbeamter - RSS", + "fixture-rss-context": { + "provider": "Fixture Context Feed", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-30T09:27:37.716Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "cooldownUntil": "2026-05-02T09:27:37.716Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T09:27:37.716Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "belgium-crisis-centre-news": { - "provider": "Centre de Crise - Newsroom", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-04-30T11:24:36.848Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 29, - "failedRuns": 2, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T11:24:36.848Z", - "lastEmptyAt": "2026-04-30T09:27:37.716Z", - "lastErrorCategory": "network-failure", - "lastErrorMessage": "fetch failed", - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-28T07:47:59.131Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-30T11:24:36.848Z" - } - ], - "cooldownUntil": "2026-05-02T11:24:36.848Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T11:24:36.848Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "denmark-pet-news": { - "provider": "Danish Security and Intelligence Service - News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T12:10:27.497Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 5, - "consecutiveFailures": 5, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T12:10:27.497Z", - "lastEmptyAt": null, - "lastErrorCategory": "not-found-404", - "lastErrorMessage": "HTTP 404", - "recentErrors": [ - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T18:18:46.639Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-27T09:47:00.583Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-29T11:50:06.590Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-05-01T12:10:27.497Z" - } - ], - "cooldownUntil": "2026-05-03T12:10:27.497Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T12:10:27.497Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ecfr-feeds-index": { - "provider": "ECFR - Newsroom", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", + "lastCheckedAt": "2026-05-02T08:41:54.057Z", "lastBuiltCount": 0, "successfulRuns": 0, "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "enisa-news": { - "provider": "ENISA (EU Cybersecurity Agency) a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "cert-eu-security-advisories-rss": { - "provider": "CERT-EU - Security Advisories (RSS)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, + "consecutiveEmptyRuns": 1, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", + "lastEmptyAt": "2026-05-02T08:41:54.057Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], "cooldownUntil": null, "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "euiss-home": { - "provider": "EU Institute for Security Studies", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T04:51:21.217Z", - "lastBuiltCount": 0, - "successfulRuns": 4, - "emptyRuns": 27, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 10, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-01T12:10:27.497Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T04:51:21.217Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T16:51:21.217Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 39, + "healthScore": 77, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-05-02T16:51:21.217Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" + "nextFetchAt": "2026-05-02T11:18:54.057Z" }, - "euractiv-security-rss": { - "provider": "BBC News - Europe", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, + "fixture-atom-oversight": { + "provider": "Fixture Oversight Feed", + "lane": "oversight", + "kind": "atom", + "lastCheckedAt": "2026-05-02T08:41:54.057Z", + "lastBuiltCount": 1, "successfulRuns": 1, - "emptyRuns": 27, + "emptyRuns": 0, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 15, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-28T07:47:59.131Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 9, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "eurojust-press-news-html": { - "provider": "Eurojust - Press Releases and News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "eurojust-press-releases": { - "provider": "Eurojust - Press Releases", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T21:34:23.032Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 5, - "consecutiveFailures": 5, "consecutiveEmptyRuns": 0, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T21:34:23.032Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "not-found-404", - "lastErrorMessage": "HTTP 404", - "recentErrors": [ - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-27T19:49:39.407Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-29T21:19:29.949Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-05-01T21:34:23.032Z" - } - ], - "cooldownUntil": "2026-05-03T21:34:23.032Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T21:34:23.032Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "europol-news-rss": { - "provider": "Europol - Newsroom (RSS)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, + "lastSuccessfulAt": "2026-05-02T08:41:54.057Z", "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", + "lastEmptyAt": null, "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], "cooldownUntil": null, "autoSkipReason": null, - "healthScore": 0, + "healthScore": 90, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" + "nextFetchAt": "2026-05-02T09:19:54.057Z" }, - "europol-newsroom-html": { - "provider": "Europol - Newsroom", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, + "fixture-json-prevention": { + "provider": "Fixture Prevention Feed", + "lane": "prevention", + "kind": "json", + "lastCheckedAt": "2026-05-02T08:41:54.057Z", + "lastBuiltCount": 1, + "successfulRuns": 1, + "emptyRuns": 0, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, + "consecutiveEmptyRuns": 0, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, + "lastSuccessfulAt": "2026-05-02T08:41:54.057Z", "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", + "lastEmptyAt": null, "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], "cooldownUntil": null, "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "finland-supo-news": { - "provider": "Finnish Security Intelligence Service - News and Press Releases", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "german-bfv-news": { - "provider": "German BfV - Press", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "german-interior-ministry-press": { - "provider": "German Federal Ministry for Economic Cooperation and Development - Feed", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "icct-home": { - "provider": "ICCT - Home", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "nctv-english-rss": { - "provider": "NCTV Netherlands - Latest News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "paris-prefecture-police-rss-page": { - "provider": "Paris Prefecture of Police - RSS", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-04-30T23:05:08.470Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 15, - "failedRuns": 5, - "consecutiveFailures": 2, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastEmptyAt": "2026-04-28T20:58:08.387Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "cooldownUntil": "2026-05-02T23:05:08.470Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T23:05:08.470Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "statewatch-news": { - "provider": "Statewatch - News", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T15:47:12.538Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "cooldownUntil": "2026-05-02T15:47:12.538Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T15:47:12.538Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "breakingnews-ie": { - "provider": "BreakingNews.ie", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "independent-ie": { - "provider": "Independent.ie", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 5, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 2, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T01:21:35.839Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 70, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T10:36:34.064Z" - }, - "de-bfv-islamist-extremism": { - "provider": "BfV - Islamist Extremism and Terrorism", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-04-30T21:41:21.778Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 15, - "failedRuns": 4, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 1, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T21:41:21.778Z", - "lastEmptyAt": "2026-04-30T20:20:15.237Z", - "lastErrorCategory": "timeout", - "lastErrorMessage": "This operation was aborted", - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-26T13:27:52.538Z" - }, - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-26T21:13:53.336Z" - }, - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-30T21:41:21.778Z" - } - ], - "cooldownUntil": "2026-05-02T21:41:21.778Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T21:41:21.778Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "de-bayern-stmi-press-rss": { - "provider": "Bavarian Interior Ministry - Press RSS", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "de-bmj-press-rss": { - "provider": "German Federal Ministry of Justice - RSS", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T09:27:37.716Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "cooldownUntil": "2026-05-02T09:27:37.716Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T09:27:37.716Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "de-bdk-bka-rss": { - "provider": "Bund Deutscher Kriminalbeamter - BKA RSS", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T15:47:12.538Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "cooldownUntil": "2026-05-02T15:47:12.538Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T15:47:12.538Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "me-ministry-defence": { - "provider": "Montenegro Ministry of Defence", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T21:34:23.032Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T21:34:23.032Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T19:49:39.407Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T21:19:29.949Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T21:34:23.032Z" - } - ], - "cooldownUntil": "2026-05-03T21:34:23.032Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T21:34:23.032Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T21:34:23.032Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "me-osce-montenegro-security": { - "provider": "OSCE Mission to Montenegro", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "me-moneyval-aml-cft": { - "provider": "Council of Europe MONEYVAL", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "sk-minv-press": { - "provider": "Slovak Ministry of Interior - Press", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 51, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 16, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-28T22:11:06.030Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-28T22:11:06.030Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "sk-sis-news": { - "provider": "Slovak Information Service - News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-04-30T19:01:21.418Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T19:01:21.418Z", - "lastEmptyAt": null, - "lastErrorCategory": "network-failure", - "lastErrorMessage": "fetch failed", - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-28T20:58:08.387Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-30T19:01:21.418Z" - } - ], - "cooldownUntil": "2026-05-02T19:01:21.418Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T19:01:21.418Z", - "quarantineReason": "Persistent network failures — DNS/connection issues; infrastructure may be down", - "nextFetchAt": "2026-05-02T19:01:21.418Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "sk-sis-annual-report": { - "provider": "Slovak Information Service - Annual Report", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T04:19:52.575Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T04:19:52.575Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "network-failure", - "lastErrorMessage": "fetch failed", - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-05-01T04:19:52.575Z" - } - ], - "cooldownUntil": "2026-05-03T04:19:52.575Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T04:19:52.575Z", - "quarantineReason": "Persistent network failures — DNS/connection issues; infrastructure may be down", - "nextFetchAt": "2026-05-03T04:19:52.575Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "sk-general-prosecutor-news": { - "provider": "Slovak General Prosecutor - News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "sk-justice-press": { - "provider": "Slovak Ministry of Justice - Press", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "sk-defence-press": { - "provider": "Slovak Ministry of Defence - Press", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-04-30T19:01:21.418Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T19:01:21.418Z", - "lastEmptyAt": null, - "lastErrorCategory": "network-failure", - "lastErrorMessage": "fetch failed", - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-28T20:58:08.387Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-30T19:01:21.418Z" - } - ], - "cooldownUntil": "2026-05-02T19:01:21.418Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T19:01:21.418Z", - "quarantineReason": "Persistent network failures — DNS/connection issues; infrastructure may be down", - "nextFetchAt": "2026-05-02T19:01:21.418Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "sk-mfa-all-news": { - "provider": "Slovak Foreign Ministry - All News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "sk-csirt": { - "provider": "Government CSIRT Slovakia", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "sk-iom-press-rss": { - "provider": "IOM Slovakia - Press RSS", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "sk-teraz-slovensko-rss": { - "provider": "Teraz.sk - Slovensko", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "germany-federal-prosecutor-current-press-en": { - "provider": "German Federal Public Prosecutor - Current Press Releases (EN)", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T04:51:21.217Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 2, - "failedRuns": 5, - "consecutiveFailures": 5, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-02T04:51:21.217Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "not-found-404", - "lastErrorMessage": "HTTP 404", - "recentErrors": [ - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-28T01:25:07.738Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-30T04:05:41.045Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-05-02T04:51:21.217Z" - } - ], - "cooldownUntil": "2026-05-04T04:51:21.217Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-04T04:51:21.217Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "netherlands-om-terrorisme": { - "provider": "Dutch Public Prosecution Service - Terrorisme", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "netherlands-om-terrorismefinanciering-nieuws": { - "provider": "Dutch Public Prosecution Service - Terrorismefinanciering Nieuws", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T04:51:21.217Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 2, - "failedRuns": 5, - "consecutiveFailures": 5, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-02T04:51:21.217Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "not-found-404", - "lastErrorMessage": "HTTP 404", - "recentErrors": [ - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-28T01:25:07.738Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-30T04:05:41.045Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-05-02T04:51:21.217Z" - } - ], - "cooldownUntil": "2026-05-04T04:51:21.217Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-04T04:51:21.217Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "guardia-civil-rss-list": { - "provider": "Guardia Civil - RSS List", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "belgian-federal-police-news": { - "provider": "Belgian Federal Police - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 56, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 35, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-27T09:47:00.583Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-27T09:47:00.583Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "czech-police-news": { - "provider": "Police of the Czech Republic - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "dutch-police-rss-index": { - "provider": "Dutch National Police - News (EN)", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "ertzaintza-news": { - "provider": "Ertzaintza - RSS", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "finland-police-news": { - "provider": "Finnish Police - Newsroom", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-04-30T23:05:08.470Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "cooldownUntil": "2026-05-02T23:05:08.470Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-02T23:05:08.470Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "german-bka-press": { - "provider": "German BKA - Press Releases (2026 archive)", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T18:47:33.071Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 31, - "failedRuns": 4, - "consecutiveFailures": 2, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T18:47:33.071Z", - "lastEmptyAt": "2026-04-29T16:23:03.474Z", - "lastErrorCategory": "network-failure", - "lastErrorMessage": "fetch failed", - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T00:07:42.332Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T06:28:15.261Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-29T18:05:32.084Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-05-01T18:47:33.071Z" - } - ], - "cooldownUntil": "2026-05-03T18:47:33.071Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T18:47:33.071Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "german-bka-press-releases-de": { - "provider": "BKA Germany - Press Releases", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T01:21:35.839Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 12, - "failedRuns": 5, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-02T01:21:35.839Z", - "lastEmptyAt": "2026-05-01T23:37:06.119Z", - "lastErrorCategory": "network-failure", - "lastErrorMessage": "fetch failed", - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-27T22:34:51.410Z" - }, - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-29T22:41:42.767Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-05-02T01:21:35.839Z" - } - ], - "cooldownUntil": "2026-05-04T01:21:35.839Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-04T01:21:35.839Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "guardia-civil-news": { - "provider": "El Pais English - Guardia Civil", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 55, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 25, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-28T05:06:43.550Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T05:06:43.550Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "mossos-news": { - "provider": "Mossos d'Esquadra - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "paris-prefecture-police-press-releases": { - "provider": "Paris Prefecture of Police - Press Releases", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 8, - "failedRuns": 6, - "consecutiveFailures": 2, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": "2026-04-29T01:25:57.440Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "policia-nacional-news": { - "provider": "Policia Nacional - Press", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "romanian-police-news": { - "provider": "Romanian Police - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 38, - "failedRuns": 2, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 1, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T06:43:12.994Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-26T19:36:49.596Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-30T06:43:12.994Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "de-bka-press": { - "provider": "BKA Germany - Press Releases", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 32, - "failedRuns": 4, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 1, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-05-01T14:08:38.783Z", - "lastErrorCategory": "timeout", - "lastErrorMessage": "This operation was aborted", - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-27T19:49:39.407Z" - }, - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "de-bka-current-alerts": { - "provider": "BKA Germany - Current Notices", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 48, - "failedRuns": 3, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 29, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-27T19:49:39.407Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T00:07:42.332Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-27T19:49:39.407Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "de-bundespolizei-presseportal": { - "provider": "Bundespolizei via Presseportal", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "de-zoll-press": { - "provider": "German Customs (Zoll) - Press", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "de-zoll-press-rss": { - "provider": "German Customs (Zoll) - Press RSS", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "de-berlin-police-rss": { - "provider": "Berlin Police - Press RSS", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "de-brandenburg-police-overregional-rss": { - "provider": "Brandenburg Police - Overregional RSS", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 19, - "failedRuns": 4, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 7, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-29T18:05:32.084Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-26T00:07:42.332Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-29T18:05:32.084Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "de-sachsen-police-rss": { - "provider": "Saxony Police - RSS", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-05-01T12:10:27.497Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 5, - "consecutiveFailures": 5, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T12:10:27.497Z", - "lastEmptyAt": null, - "lastErrorCategory": "not-found-404", - "lastErrorMessage": "HTTP 404", - "recentErrors": [ - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T18:18:46.639Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-27T09:47:00.583Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-29T11:50:06.590Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-05-01T12:10:27.497Z" - } - ], - "cooldownUntil": "2026-05-03T12:10:27.497Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T12:10:27.497Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "de-sachsen-generalstaatsanwaltschaft": { - "provider": "General Prosecutor Dresden - Press 2026", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "de-sachsen-zesa-archive": { - "provider": "General Prosecutor Dresden - Press 2025 Archive", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "de-bayern-police-press": { - "provider": "Bavarian Police - Press Releases", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-04-30T15:47:12.538Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "cooldownUntil": "2026-05-02T15:47:12.538Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T15:47:12.538Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "me-police-administration": { - "provider": "Montenegro Police Directorate", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "me-ministry-interior": { - "provider": "Montenegro Ministry of the Interior", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "me-govme-all-news": { - "provider": "Government of Montenegro - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "me-national-security-agency": { - "provider": "Montenegro National Security Agency", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "me-national-security-authority": { - "provider": "Montenegro National Security Authority", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "me-customs-administration": { - "provider": "Montenegro Customs Administration", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "me-vijesti-black-chronicle": { - "provider": "Vijesti - Black Chronicle", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "me-rtcg-hronika": { - "provider": "RTCG - Hronika", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "curia-press-rss-en": { - "provider": "Court of Justice of the European Union - RSS (EN/FR)", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 74, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 67, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-26T08:16:04.847Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "eppo-news-node-7": { - "provider": "European Public Prosecutor's Office - News (RSS)", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "eu-cellar-rss-atom": { - "provider": "Publications Office of the European Union (CELLAR) a RSS/Atom Feeds", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 38, - "failedRuns": 2, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 1, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": "2026-05-01T04:19:52.575Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-29T01:25:57.440Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "eu-commission-counter-terrorism-measures-2026": { - "provider": "European Commission - Counter Terrorism Measures 2026", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 51, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 8, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-29T16:23:03.474Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "http-status-error", - "message": "HTTP 503", - "at": "2026-04-29T16:23:03.474Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "eu-commission-home-affairs-topic": { - "provider": "European Commission - Home Affairs News", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "eu-commission-presscorner-home": { - "provider": "Council of the EU - Press Releases (RSS)", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "eu-council-fight-against-terrorism": { - "provider": "Europol - News Feed", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "eu-council-jha-meetings": { - "provider": "Council of the EU - JHA Press Releases", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "eu-council-jha-register-rss": { - "provider": "Council of the EU - Latest Documents RSS", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "eu-council-press-releases": { - "provider": "Council of the European Union a Press Releases (RSS)", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "eu-council-press-releases-html": { - "provider": "Council of the EU - Press Releases", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 50, - "failedRuns": 2, - "consecutiveFailures": 2, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 1, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-02T07:12:34.064Z", - "lastEmptyAt": "2026-04-30T04:05:41.045Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "http-status-error", - "message": "HTTP 503", - "at": "2026-04-30T06:43:12.994Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-02T07:12:34.064Z" - } - ], - "cooldownUntil": "2026-05-04T07:12:34.064Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-04T07:12:34.064Z" - }, - "eu-council-rss-index": { - "provider": "Europol - News Feed", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "eu-ct-coordinator": { - "provider": "Europol - News Feed", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "eu-ejustice-news-rss": { - "provider": "European e-Justice - News RSS", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "eu-eppo-news": { - "provider": "European Public Prosecutor's Office - News", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "eu-fra-rss": { - "provider": "OHCHR - Terrorism and Violent Extremism", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "eu-home-affairs-news": { - "provider": "European Commission - Home Affairs News", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-04-30T11:24:36.848Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 29, - "failedRuns": 2, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T11:24:36.848Z", - "lastEmptyAt": "2026-04-30T09:27:37.716Z", - "lastErrorCategory": "http-status-error", - "lastErrorMessage": "HTTP 429", - "recentErrors": [ - { - "category": "http-status-error", - "message": "HTTP 429", - "at": "2026-04-28T01:25:07.738Z" - }, - { - "category": "http-status-error", - "message": "HTTP 429", - "at": "2026-04-30T11:24:36.848Z" - } - ], - "cooldownUntil": "2026-05-02T11:24:36.848Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T11:24:36.848Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "eu-olaf-news": { - "provider": "OLAF (EU Anti-Fraud Office) a News", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "eu-security-union-strategy": { - "provider": "European Commission - Home Affairs News", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "eucrim-counter-terrorism-agenda": { - "provider": "eucrim - Commission Counter Terrorism Agenda", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "eucrim-judicial-counter-terrorism-register": { - "provider": "eucrim - Judicial Counter Terrorism Register", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "eurojust-publications": { - "provider": "Eurojust a Publications (RSS)", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 1, - "successfulRuns": 84, - "emptyRuns": 0, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": null, - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "eurojust-rss-feeds-page": { - "provider": "Eurojust - Press Releases and News RSS", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "europarl-committee-libe": { - "provider": "European Parliament - LIBE Press Releases", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 1, - "successfulRuns": 35, - "emptyRuns": 41, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-04-29T09:45:37.215Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "europarl-committee-sede": { - "provider": "European Parliament - SEDE Press Releases", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "europarl-pressreleases-committees": { - "provider": "European Parliament a Press Releases (Committees) (RSS)", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "europol-tesat-report": { - "provider": "Europol - TESAT Report", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "fra-rss": { - "provider": "Human Rights Watch - Terrorism and Counterterrorism", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 25, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 17, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-26T15:18:30.552Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-26T15:18:30.552Z" - } - ], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "europol-eu-iru": { - "provider": "Europol a EU Internet Referral Unit (EU IRU)", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ncsc-nl-rss": { - "provider": "NCSC Netherlands - RSS", - "lane": "prevention", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "de-cemas-digital-seismograph": { - "provider": "CeMAS - Digital Seismograph", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "de-cemas-right-terror-database": { - "provider": "CeMAS - Right-Wing Terrorism Database", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "de-knix-islamism-prevention": { - "provider": "KN:IX - Islamism Prevention Network", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "eu-council-terrorism-sanctions": { - "provider": "Eurojust - Press Releases", - "lane": "sanctions", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "unhcr-europe-news": { - "provider": "UNHCR Europe a News", - "lane": "border", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "clingendael-publications": { - "provider": "European Council on Foreign Relations (ECFR)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "dw-europe-rss": { - "provider": "Deutsche Welle a Europe (RSS)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T09:27:37.716Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "cooldownUntil": "2026-05-02T09:27:37.716Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T09:27:37.716Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ecfr-publications": { - "provider": "European Council on Foreign Relations (ECFR) a Publications", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "euronews-europe": { - "provider": "Euronews a Europe", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T04:51:21.217Z", - "lastBuiltCount": 1, - "successfulRuns": 17, - "emptyRuns": 12, - "failedRuns": 5, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T04:51:21.217Z", - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastEmptyAt": "2026-04-29T21:19:29.949Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T07:33:21.217Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 21, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T07:33:21.217Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "financial-times-world": { - "provider": "Reuters - World News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T20:16:16.792Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 2, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T20:16:16.792Z", - "lastEmptyAt": "2026-04-26T04:16:22.766Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 401", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 401", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 401", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 401", - "at": "2026-04-27T18:01:23.816Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 401", - "at": "2026-04-29T19:55:57.182Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 401", - "at": "2026-05-01T20:16:16.792Z" - } - ], - "cooldownUntil": "2026-05-03T20:16:16.792Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T20:16:16.792Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T20:16:16.792Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "france24-europe-rss": { - "provider": "France 24 a Europe (RSS)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T04:51:21.217Z", - "lastBuiltCount": 0, - "successfulRuns": 6, - "emptyRuns": 17, - "failedRuns": 4, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 11, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-30T13:14:38.243Z", - "lastFailureAt": "2026-04-27T04:20:08.357Z", - "lastEmptyAt": "2026-05-02T04:51:21.217Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T16:51:21.217Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 29, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T16:51:21.217Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "french-interior-ministry-news": { - "provider": "Royal Canadian Mounted Police - News Feed", - "lane": "context", - "kind": "atom", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "icct-perspectives-on-terrorism": { - "provider": "Perspectives on Terrorism (ICCT) a Journal", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "icct-publications": { - "provider": "International Centre for Counter-Terrorism (ICCT) - Publications", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "netherlands-nctv-news": { - "provider": "Dutch NCTV - News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "norway-pst-news": { - "provider": "Norwegian Government - News and Press Releases", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "politico-europe": { - "provider": "Politico Europe", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "rte-ireland-news-rss": { - "provider": "RTE News - Ireland (RSS)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "switzerland-fedpol-news": { - "provider": "Swiss fedpol - News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "telegraph-world-news": { - "provider": "The Telegraph a World News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 2, - "successfulRuns": 8, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T07:23:12.181Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T09:26:34.064Z" - }, - "vox-pol-publications": { - "provider": "VOX-Pol Network a Publications", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "french-gendarmerie-news": { - "provider": "Royal Canadian Mounted Police - News Feed", - "lane": "incidents", - "kind": "atom", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "french-police-nationale-news": { - "provider": "Police Nationale - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ireland-gardai-press": { - "provider": "An Garda Siochana - Press Releases", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "netherlands-police-news": { - "provider": "Dutch National Police - News (EN)", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "paris-police-prefecture-news": { - "provider": "France24 - France (RSS)", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "portugal-pj-news": { - "provider": "Policia Judiciaria Portugal - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "portugal-psp-news": { - "provider": "The Portugal News - Crime", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "coe-counter-terrorism": { - "provider": "Eurojust - Press Releases", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "echr-key-judgments-rss": { - "provider": "European Court of Human Rights - Key Judgments RSS", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "echr-press-releases-rss": { - "provider": "UK Judiciary - Judgments Feed", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-01T12:10:27.497Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 66, - "failedRuns": 1, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 1, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T12:10:27.497Z", - "lastEmptyAt": "2026-05-01T11:01:29.469Z", - "lastErrorCategory": "timeout", - "lastErrorMessage": "This operation was aborted", - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-05-01T12:10:27.497Z" - } - ], - "cooldownUntil": "2026-05-03T12:10:27.497Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T12:10:27.497Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "french-justice-ministry-news": { - "provider": "French Ministry of Justice - News", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 55, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 37, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-27T09:47:00.583Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T09:47:00.583Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "netherlands-prosecution-news": { - "provider": "Dutch Public Prosecution Service - News", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "bfv-de-english": { - "provider": "BfV service page (Federal Office for the Protection of the Constitution)", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 37, - "failedRuns": 2, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 18, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-28T19:16:18.483Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-26T21:13:53.336Z" - }, - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-28T19:16:18.483Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "dsn-at-english": { - "provider": "DSN Austria - Aktuelles", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "isd-global": { - "provider": "Institute for Strategic Dialogue (ISD) - Publications", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "ocam-be-english": { - "provider": "CUTA (Belgium) threat analysis", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-04-30T23:05:08.470Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 19, - "failedRuns": 4, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastEmptyAt": "2026-04-30T21:41:21.778Z", - "lastErrorCategory": "network-failure", - "lastErrorMessage": "fetch failed", - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T15:18:30.552Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-28T10:29:28.246Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "cooldownUntil": "2026-05-02T23:05:08.470Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T23:05:08.470Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "pet-dk-english": { - "provider": "PET (Denmark) a English News", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T12:10:27.497Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 5, - "consecutiveFailures": 5, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T12:10:27.497Z", - "lastEmptyAt": null, - "lastErrorCategory": "not-found-404", - "lastErrorMessage": "HTTP 404", - "recentErrors": [ - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T18:18:46.639Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-27T09:47:00.583Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-29T11:50:06.590Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-05-01T12:10:27.497Z" - } - ], - "cooldownUntil": "2026-05-03T12:10:27.497Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T12:10:27.497Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "pst-no-english": { - "provider": "PST (Norway) English reporting page", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ran-network": { - "provider": "RUSI - Terrorism and Conflict", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 3, - "successfulRuns": 77, - "emptyRuns": 2, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T09:48:34.064Z" - }, - "sapo-se-english": { - "provider": "Swedish Security Service English news", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "supo-fi-english": { - "provider": "SUPO Finland news and press releases", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "iom-news": { - "provider": "IOM (International Organization for Migration) a News", - "lane": "border", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "acled-updates": { - "provider": "ACLED a Updates and Analysis", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "aljazeera-news-rss": { - "provider": "Al Jazeera English a Top Stories (RSS)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 7, - "emptyRuns": 43, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 12, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-29T19:55:57.182Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 21, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "ap-top-news": { - "provider": "BBC News - Top Stories", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T21:34:23.032Z", - "lastBuiltCount": 0, - "successfulRuns": 17, - "emptyRuns": 39, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 10, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-01T04:19:52.575Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T21:34:23.032Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T09:34:23.032Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 66, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T09:34:23.032Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "bbc-news-world": { - "provider": "BBC News a World", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T23:37:06.119Z", - "lastBuiltCount": 0, - "successfulRuns": 22, - "emptyRuns": 17, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 17, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-27T09:47:00.583Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T23:37:06.119Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T11:37:06.119Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 49, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T11:37:06.119Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "bbc-news-world-legacy": { - "provider": "BBC News a World (Legacy RSS)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T23:37:06.119Z", - "lastBuiltCount": 0, - "successfulRuns": 22, - "emptyRuns": 17, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 17, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-27T09:47:00.583Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T23:37:06.119Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T11:37:06.119Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 49, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T11:37:06.119Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "bellingcat": { - "provider": "Bellingcat a Investigations", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "chathamhouse-events": { - "provider": "Chatham House a Events (RSS)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "chathamhouse-intl-security-feed": { - "provider": "Chatham House a International Security Programme (RSS)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T04:51:21.217Z", - "lastBuiltCount": 0, - "successfulRuns": 2, - "emptyRuns": 24, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 7, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-01T09:24:40.004Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T04:51:21.217Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T07:48:21.217Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 28, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T07:48:21.217Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "chathamhouse-news-releases": { - "provider": "Chatham House a News Releases (RSS)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "counter-extremism-project-news": { - "provider": "Counter Extremism Project a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-26T04:16:22.766Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "crisis-group": { - "provider": "International Crisis Group a Research & Analysis", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T09:27:37.716Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "cooldownUntil": "2026-05-02T09:27:37.716Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-02T09:27:37.716Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "crisis-group-europe": { - "provider": "European Council on Foreign Relations (ECFR)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "global-initiative-news": { - "provider": "Global Initiative Against Transnational Organized Crime a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "interpol-news-events": { - "provider": "INTERPOL a News and Events", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "just-security": { - "provider": "Just Security a Law, Rights & National Security", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "lawfare-blog": { - "provider": "Just Security - National Security Analysis", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "long-war-journal": { - "provider": "Long War Journal a News Feed", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 1, - "successfulRuns": 1, - "emptyRuns": 19, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 33, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T10:55:34.064Z" - }, - "jamestown-terrorism-monitor": { - "provider": "Jamestown Foundation - Terrorism Monitor", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T04:51:21.217Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 9, - "failedRuns": 5, - "consecutiveFailures": 4, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-02T04:51:21.217Z", - "lastEmptyAt": "2026-04-26T14:33:01.586Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-26T18:12:56.662Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-28T05:06:43.550Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-30T04:05:41.045Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-02T04:51:21.217Z" - } - ], - "cooldownUntil": "2026-05-04T04:51:21.217Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-04T04:51:21.217Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "nato-news-rss": { - "provider": "NATO - News and Events", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T12:10:27.497Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 5, - "consecutiveFailures": 5, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T12:10:27.497Z", - "lastEmptyAt": null, - "lastErrorCategory": "not-found-404", - "lastErrorMessage": "HTTP 404", - "recentErrors": [ - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T18:18:46.639Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-27T09:47:00.583Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-29T11:50:06.590Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-05-01T12:10:27.497Z" - } - ], - "cooldownUntil": "2026-05-03T12:10:27.497Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T12:10:27.497Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "occrp-news": { - "provider": "OCCRP a Organized Crime and Corruption Reporting Project", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "osce-press-releases": { - "provider": "OSCE a Press Releases", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "resolve-network-research": { - "provider": "RAND - Terrorism Topic", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-26T04:16:22.766Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "reuters-uk": { - "provider": "Reuters a UK News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 401", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 401", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 401", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 401", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 401", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 401", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "rferl-security-news-rss": { - "provider": "Radio Free Europe/Radio Liberty a Security (RSS)", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T21:34:23.032Z", - "lastBuiltCount": 0, - "successfulRuns": 25, - "emptyRuns": 25, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 11, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-30T11:24:36.848Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T21:34:23.032Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T09:34:23.032Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 67, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T09:34:23.032Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "soufan-center-intelbrief": { - "provider": "The Soufan Center a IntelBrief", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-26T04:16:22.766Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "tech-against-terrorism-podcast": { - "provider": "Tech Against Terrorism - Podcast", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T15:47:12.538Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-26T00:07:42.332Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "cooldownUntil": "2026-05-02T15:47:12.538Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T15:47:12.538Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "unodc-news": { - "provider": "UNODC (UN Office on Drugs and Crime) a Press Releases", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T18:47:33.071Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 69, - "failedRuns": 1, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 1, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T18:47:33.071Z", - "lastEmptyAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "timeout", - "lastErrorMessage": "This operation was aborted", - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-05-01T18:47:33.071Z" - } - ], - "cooldownUntil": "2026-05-03T18:47:33.071Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T18:47:33.071Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "war-on-the-rocks": { - "provider": "War on the Rocks a National Security & CT Analysis", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 11, - "emptyRuns": 26, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 12, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-30T06:43:12.994Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 64, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "usgs-earthquakes-all-hour": { - "provider": "USGS - Earthquakes (All Hour)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "krebs-on-security": { - "provider": "Krebs on Security", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T15:47:12.538Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "cooldownUntil": "2026-05-02T15:47:12.538Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-02T15:47:12.538Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "sans-isc-diary": { - "provider": "SANS Internet Storm Center", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "aviation-herald-rss": { - "provider": "The Aviation Herald", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T12:10:27.497Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 5, - "consecutiveFailures": 5, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T12:10:27.497Z", - "lastEmptyAt": null, - "lastErrorCategory": "not-found-404", - "lastErrorMessage": "HTTP 404", - "recentErrors": [ - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T18:18:46.639Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-27T09:47:00.583Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-29T11:50:06.590Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-05-01T12:10:27.497Z" - } - ], - "cooldownUntil": "2026-05-03T12:10:27.497Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T12:10:27.497Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "broadcastify-feeds-rss": { - "provider": "Broadcastify - Feeds", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T12:10:27.497Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 5, - "consecutiveFailures": 5, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T12:10:27.497Z", - "lastEmptyAt": null, - "lastErrorCategory": "not-found-404", - "lastErrorMessage": "HTTP 404", - "recentErrors": [ - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T18:18:46.639Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-27T09:47:00.583Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-29T11:50:06.590Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-05-01T12:10:27.497Z" - } - ], - "cooldownUntil": "2026-05-03T12:10:27.497Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T12:10:27.497Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "maritime-executive-rss": { - "provider": "The Maritime Executive", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T12:10:27.497Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 5, - "consecutiveFailures": 5, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T12:10:27.497Z", - "lastEmptyAt": null, - "lastErrorCategory": "not-found-404", - "lastErrorMessage": "HTTP 404", - "recentErrors": [ - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T18:18:46.639Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-27T09:47:00.583Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-29T11:50:06.590Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-05-01T12:10:27.497Z" - } - ], - "cooldownUntil": "2026-05-03T12:10:27.497Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T12:10:27.497Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "above-top-secret-rss": { - "provider": "AboveTopSecret Forum", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 6, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "timeout", - "lastErrorMessage": "This operation was aborted", - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-27T04:20:08.357Z", - "quarantineReason": "Persistent timeouts — endpoint may be overloaded or unreachable", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "godlike-productions-rss": { - "provider": "Godlike Productions", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T12:10:27.497Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 5, - "consecutiveFailures": 5, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T12:10:27.497Z", - "lastEmptyAt": null, - "lastErrorCategory": "not-found-404", - "lastErrorMessage": "HTTP 404", - "recentErrors": [ - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T18:18:46.639Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-27T09:47:00.583Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-29T11:50:06.590Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-05-01T12:10:27.497Z" - } - ], - "cooldownUntil": "2026-05-03T12:10:27.497Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T12:10:27.497Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "hacker-news-rss": { - "provider": "Hacker News", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "lobsters-rss": { - "provider": "Lobsters", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 23, - "failedRuns": 2, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 12, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-27T19:49:39.407Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T18:18:46.639Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-27T19:49:39.407Z" - } - ], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "zerohedge-feed": { - "provider": "ZeroHedge", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 2, - "successfulRuns": 11, - "emptyRuns": 5, - "failedRuns": 5, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": "2026-04-29T05:04:06.775Z", - "lastEmptyAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T09:14:34.064Z" - }, - "moon-of-alabama-atom": { - "provider": "Moon of Alabama", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T12:10:27.497Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 5, - "consecutiveFailures": 5, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T12:10:27.497Z", - "lastEmptyAt": null, - "lastErrorCategory": "not-found-404", - "lastErrorMessage": "HTTP 404", - "recentErrors": [ - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T18:18:46.639Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-27T09:47:00.583Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-29T11:50:06.590Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-05-01T12:10:27.497Z" - } - ], - "cooldownUntil": "2026-05-03T12:10:27.497Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T12:10:27.497Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "volcano-discovery-rss": { - "provider": "Volcano Discovery", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T15:47:12.538Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T00:07:42.332Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "cooldownUntil": "2026-05-02T15:47:12.538Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-02T15:47:12.538Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "sans-isc-full": { - "provider": "SANS Internet Storm Center (Full Feed)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 11, - "failedRuns": 5, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 11, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-28T12:19:51.902Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T18:18:46.639Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T12:19:51.902Z" - } - ], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "ec-police-news": { - "provider": "Policía Nacional del Ecuador - Noticias", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-04-30T19:01:21.418Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T19:01:21.418Z", - "lastEmptyAt": null, - "lastErrorCategory": "network-failure", - "lastErrorMessage": "fetch failed", - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-28T20:58:08.387Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-30T19:01:21.418Z" - } - ], - "cooldownUntil": "2026-05-02T19:01:21.418Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T19:01:21.418Z", - "quarantineReason": "Persistent network failures — DNS/connection issues; infrastructure may be down", - "nextFetchAt": "2026-05-02T19:01:21.418Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ec-police-organised-crime": { - "provider": "Policía Nacional del Ecuador - Lucha contra el crimen organizado", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T04:19:52.575Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T04:19:52.575Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "network-failure", - "lastErrorMessage": "fetch failed", - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-05-01T04:19:52.575Z" - } - ], - "cooldownUntil": "2026-05-03T04:19:52.575Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T04:19:52.575Z", - "quarantineReason": "Persistent network failures — DNS/connection issues; infrastructure may be down", - "nextFetchAt": "2026-05-03T04:19:52.575Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ec-fiscalia-news": { - "provider": "Fiscalía General del Estado - Noticias", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 76, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 76, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "ec-ministry-interior-open-data": { - "provider": "Ecuador Open Data - Ministerio del Interior", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T21:34:23.032Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 46, - "failedRuns": 2, - "consecutiveFailures": 2, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 2, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T21:34:23.032Z", - "lastEmptyAt": "2026-04-29T19:55:57.182Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "Blocked by blocked access page", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-29T21:19:29.949Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-05-01T21:34:23.032Z" - } - ], - "cooldownUntil": "2026-05-03T21:34:23.032Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T21:34:23.032Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ec-uafe-aml-cft": { - "provider": "UAFE Ecuador", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-04-30T19:01:21.418Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 2, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T19:01:21.418Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T20:58:08.387Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T19:01:21.418Z" - } - ], - "cooldownUntil": "2026-05-02T19:01:21.418Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T19:01:21.418Z", - "quarantineReason": "Infrastructure instability — mixed timeout and network errors; auto-retry likely to recover", - "nextFetchAt": "2026-05-02T19:01:21.418Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ec-aduana-senae": { - "provider": "Aduana del Ecuador (SENAE)", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ec-ecu911-news": { - "provider": "ECU 911", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ec-cancilleria-security": { - "provider": "Cancillería del Ecuador", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T04:19:52.575Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T04:19:52.575Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "network-failure", - "lastErrorMessage": "fetch failed", - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-05-01T04:19:52.575Z" - } - ], - "cooldownUntil": "2026-05-03T04:19:52.575Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T04:19:52.575Z", - "quarantineReason": "Persistent network failures — DNS/connection issues; infrastructure may be down", - "nextFetchAt": "2026-05-03T04:19:52.575Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ec-primicias-seguridad": { - "provider": "Primicias - Seguridad", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-26T04:16:22.766Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ec-planv-crimen-organizado": { - "provider": "Plan V - Crimen Organizado", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-26T04:16:22.766Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ec-eluniverso-rss": { - "provider": "El Universo - RSS", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T15:47:12.538Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "cooldownUntil": "2026-05-02T15:47:12.538Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-02T15:47:12.538Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ec-ap-latin-america": { - "provider": "Associated Press - Latin America", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T20:16:16.792Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 2, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T20:16:16.792Z", - "lastEmptyAt": "2026-04-26T04:16:22.766Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T18:01:23.816Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T19:55:57.182Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T20:16:16.792Z" - } - ], - "cooldownUntil": "2026-05-03T20:16:16.792Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T20:16:16.792Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T20:16:16.792Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ec-aljazeera-ecuador-gangs": { - "provider": "Al Jazeera - Ecuador gangs analysis", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "ec-guardian-ecuador": { - "provider": "The Guardian - Ecuador", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T20:16:16.792Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 2, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T20:16:16.792Z", - "lastEmptyAt": "2026-04-26T04:16:22.766Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T18:01:23.816Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T19:55:57.182Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T20:16:16.792Z" - } - ], - "cooldownUntil": "2026-05-03T20:16:16.792Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T20:16:16.792Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T20:16:16.792Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ec-cfr-ecuador-narco-state": { - "provider": "Council on Foreign Relations - Ecuador", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-26T04:16:22.766Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ec-wola-ecuador-bukele-model": { - "provider": "WOLA - Ecuador security analysis", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T04:51:21.217Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 5, - "failedRuns": 5, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 4, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-29T16:23:03.474Z", - "lastEmptyAt": "2026-05-02T04:51:21.217Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T16:23:03.474Z" - } - ], - "cooldownUntil": "2026-05-02T08:00:21.217Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:00:21.217Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ec-fcdo-ecuador-safety-security": { - "provider": "UK FCDO - Ecuador travel advice", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ec-nctc-los-lobos": { - "provider": "US NCTC - Los Lobos", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-04-30T19:01:21.418Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T19:01:21.418Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T20:58:08.387Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T19:01:21.418Z" - } - ], - "cooldownUntil": "2026-05-02T19:01:21.418Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T19:01:21.418Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T19:01:21.418Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ec-us-treasury-los-lobos": { - "provider": "US Treasury - Los Lobos sanctions", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "ec-us-treasury-los-choneros": { - "provider": "US Treasury - Los Choneros sanctions", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "ec-csis-ecuador-crises": { - "provider": "CSIS - Ecuador compounding crises", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T09:24:40.004Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 5, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 5, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T09:24:40.004Z", - "lastEmptyAt": "2026-04-26T04:16:22.766Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T07:35:36.877Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T09:24:40.004Z" - } - ], - "cooldownUntil": "2026-05-03T09:24:40.004Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T09:24:40.004Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "jamestown-foundation-feed": { - "provider": "Jamestown Foundation - Main Feed", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 19, - "failedRuns": 1, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-02T07:12:34.064Z", - "lastEmptyAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-02T07:12:34.064Z" - } - ], - "cooldownUntil": "2026-05-04T02:24:34.064Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 8, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-04T02:24:34.064Z" - }, - "kyle-orton-blog-feed": { - "provider": "Kyle Orton's Blog", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "caert-feed": { - "provider": "African Centre for the Study and Research on Terrorism (ACSRT/CAERT)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "security-magazine-rss": { - "provider": "Security Magazine", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "leiden-security-global-affairs-feed": { - "provider": "Leiden Security and Global Affairs Blog", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T23:37:06.119Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 24, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 12, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-28T07:47:59.131Z", - "lastEmptyAt": "2026-05-01T23:37:06.119Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-28T07:47:59.131Z" - } - ], - "cooldownUntil": "2026-05-02T11:37:06.119Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T11:37:06.119Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "borealis-threat-risk-feed": { - "provider": "Borealis Threat and Risk Consulting", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T23:37:06.119Z", - "lastBuiltCount": 0, - "successfulRuns": 20, - "emptyRuns": 25, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 13, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-29T11:50:06.590Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T23:37:06.119Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T11:37:06.119Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 61, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T11:37:06.119Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "insight-crime-feed": { - "provider": "InSight Crime", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "southfront-feed": { - "provider": "SouthFront", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T15:47:12.538Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastEmptyAt": null, - "lastErrorCategory": "network-failure", - "lastErrorMessage": "fetch failed", - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T00:07:42.332Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "cooldownUntil": "2026-05-02T15:47:12.538Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "quarantineReason": "Persistent network failures — DNS/connection issues; infrastructure may be down", - "nextFetchAt": "2026-05-02T15:47:12.538Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "inteltechniques-blog-feed": { - "provider": "IntelTechniques Blog", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T15:47:12.538Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "cooldownUntil": "2026-05-02T15:47:12.538Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-02T15:47:12.538Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "reddit-worldnews-rss": { - "provider": "Reddit - r/worldnews", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "urban-terrorism-europe-feed": { - "provider": "Urban Terrorism in Europe (University of Birmingham)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T20:16:16.792Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 23, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 11, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-28T07:47:59.131Z", - "lastEmptyAt": "2026-05-01T20:16:16.792Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-28T07:47:59.131Z" - } - ], - "cooldownUntil": "2026-05-02T08:16:16.792Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:16:16.792Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "investigative-project-terrorism-rss": { - "provider": "Investigative Project on Terrorism", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "allafrica-international-terrorism-rdf": { - "provider": "AllAfrica - International Terrorism", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T04:51:21.217Z", - "lastBuiltCount": 0, - "successfulRuns": 36, - "emptyRuns": 30, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 11, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-30T17:09:38.083Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T04:51:21.217Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T16:51:21.217Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 67, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T16:51:21.217Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "strategic-intelligence-terrorism-war-feed": { - "provider": "Strategic Intelligence Service - Terrorism and War Updates", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "intelnews-feed": { - "provider": "IntelNews", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "aymennaltamimi-substack-feed": { - "provider": "Aymenn's Monstrous Publications", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 1, - "successfulRuns": 8, - "emptyRuns": 18, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T04:19:52.575Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T09:13:34.064Z" - }, - "ict-israel-feed": { - "provider": "International Institute for Counter-Terrorism (ICT)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "interpol-news-page-en": { - "provider": "INTERPOL - News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "gctf-news": { - "provider": "UN Security Council Counter-Terrorism Committee - News Articles", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "unoct-news": { - "provider": "UN Office of Counter-Terrorism (UNOCT) - News", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 31, - "emptyRuns": 47, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 32, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-29T14:19:24.095Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 4, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "unsc-counter-terrorism-committee": { - "provider": "UN Security Council - Counter-Terrorism Committee (CTC) Updates", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-01T20:16:16.792Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 2, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T20:16:16.792Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T18:01:23.816Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T19:55:57.182Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T20:16:16.792Z" - } - ], - "cooldownUntil": "2026-05-03T20:16:16.792Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T20:16:16.792Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T20:16:16.792Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "gnet-artificial-intelligence-rss": { - "provider": "Global Network on Extremism & Technology (GNET) a Artificial Intelligence (RSS)", - "lane": "prevention", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 20, - "emptyRuns": 27, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 16, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-28T01:25:07.738Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 52, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "gnet-radicalisation-rss": { - "provider": "Global Network on Extremism & Technology (GNET) a Radicalisation", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "gnet-youth-rss": { - "provider": "Global Network on Extremism & Technology (GNET) a Insights", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "tech-against-terrorism": { - "provider": "Tech Against Terrorism - Analysis", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 1, - "successfulRuns": 23, - "emptyRuns": 16, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-04-30T00:06:38.934Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T10:53:34.064Z" - }, - "tech-against-terrorism-home": { - "provider": "Tech Against Terrorism - Home", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "fatf-news": { - "provider": "National Crime Agency - News", - "lane": "sanctions", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "interpol-notices": { - "provider": "Europol - News Feed", - "lane": "sanctions", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "unsc-1267-press-releases": { - "provider": "UN Security Council - ISIL/Da'esh & Al-Qaeda Sanctions Committee Press Releases", - "lane": "sanctions", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "unsc-consolidated-list": { - "provider": "UN Security Council - Consolidated Sanctions List", - "lane": "sanctions", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "barking-dagenham-council-news": { - "provider": "Barking and Dagenham Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 4, - "failedRuns": 6, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 1, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-27T19:49:39.407Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "barnet-council-news": { - "provider": "Barnet Post", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T20:16:16.792Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 2, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T20:16:16.792Z", - "lastEmptyAt": "2026-04-26T04:16:22.766Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T18:01:23.816Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T19:55:57.182Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T20:16:16.792Z" - } - ], - "cooldownUntil": "2026-05-03T20:16:16.792Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T20:16:16.792Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T20:16:16.792Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "barts-health-news": { - "provider": "Barts Health NHS Trust a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 52, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 24, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-28T07:47:59.131Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-28T07:47:59.131Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "bbc-news-london-rss": { - "provider": "BBC News - London RSS", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T21:34:23.032Z", - "lastBuiltCount": 0, - "successfulRuns": 13, - "emptyRuns": 26, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 10, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-01T04:19:52.575Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T21:34:23.032Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T09:34:23.032Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 70, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T09:34:23.032Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "bexley-council-news": { - "provider": "Bexley Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "brent-council-news": { - "provider": "Brent Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 76, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 76, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "bromley-council-news": { - "provider": "Bromley Council a Newsroom", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "camden-council-news": { - "provider": "Camden Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "chelsea-westminster-news": { - "provider": "Chelsea and Westminster Hospital NHS Foundation Trust a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "city-of-london-police-fraud-reporting": { - "provider": "Serious Fraud Office - Atom Feed", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "cnwl-news": { - "provider": "Central and North West London NHS Foundation Trust a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "croydon-council-news": { - "provider": "Croydon Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "ealing-council-news": { - "provider": "Ealing Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 51, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 1, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T06:43:12.994Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-30T06:43:12.994Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "east-london-nhs-news": { - "provider": "East London NHS Foundation Trust a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "enfield-council-news": { - "provider": "London Assembly - Press Releases", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "gosh-news": { - "provider": "Great Ormond Street Hospital a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "guys-st-thomas-news": { - "provider": "Guy's and St Thomas' NHS Foundation Trust a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "hackney-council-news": { - "provider": "Hackney Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 14, - "emptyRuns": 62, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 3, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-01T23:37:06.119Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 83, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "hammersmith-fulham-news": { - "provider": "Hammersmith and Fulham Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 21, - "failedRuns": 5, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-02T07:12:34.064Z", - "lastEmptyAt": "2026-05-02T04:51:21.217Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-05-02T07:12:34.064Z" - } - ], - "cooldownUntil": "2026-05-04T07:12:34.064Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-04T07:12:34.064Z" - }, - "haringey-council-news": { - "provider": "Metropolitan Police - Haringey Tag", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "harrow-council-news": { - "provider": "Harrow Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "Blocked by blocked access page", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "havering-council-news": { - "provider": "Havering Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "heathrow-media-centre": { - "provider": "Heathrow a Media Centre", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "hillingdon-council-news": { - "provider": "Hillingdon Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 76, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 76, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "homerton-healthcare-news": { - "provider": "Homerton Healthcare NHS Foundation Trust a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 42, - "failedRuns": 2, - "consecutiveFailures": 2, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-29T11:50:06.590Z", - "lastErrorCategory": "not-found-404", - "lastErrorMessage": "HTTP 404", - "recentErrors": [ - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "hounslow-council-news": { - "provider": "Hounslow Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "imperial-healthcare-news": { - "provider": "Imperial College Healthcare NHS Trust a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "islington-council-news": { - "provider": "Islington Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 5, - "emptyRuns": 71, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 27, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-29T22:41:42.767Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "kensington-chelsea-newsroom": { - "provider": "Royal Borough of Kensington and Chelsea a Newsroom", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "kings-college-hospital-news": { - "provider": "King's College Hospital NHS Foundation Trust a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "kingston-council-news": { - "provider": "Kingston Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "lambeth-council-news": { - "provider": "Lambeth Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 76, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 76, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "lewisham-council-news": { - "provider": "Metropolitan Police - Lewisham Tag", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "lnwh-news": { - "provider": "London North West University Healthcare NHS Trust a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "london-ambulance-news": { - "provider": "London Ambulance Service a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "london-city-airport-media-centre": { - "provider": "London City Airport a Media Centre", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T20:16:16.792Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 2, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T20:16:16.792Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T18:01:23.816Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T19:55:57.182Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T20:16:16.792Z" - } - ], - "cooldownUntil": "2026-05-03T20:16:16.792Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T20:16:16.792Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T20:16:16.792Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "london-councils-news": { - "provider": "London Councils a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "london-fire-brigade-news": { - "provider": "London Fire Brigade a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "london-gov-home": { - "provider": "London.gov.uk", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "london-gov-press-releases-html": { - "provider": "London.gov.uk - News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T12:10:27.497Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T12:10:27.497Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T06:28:15.261Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T11:57:19.950Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T11:50:06.590Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T12:10:27.497Z" - } - ], - "cooldownUntil": "2026-05-03T12:10:27.497Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T12:10:27.497Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T12:10:27.497Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "london-gov-rss-80603": { - "provider": "Mayor of London - Press Releases", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "london-gov-rss-80632": { - "provider": "London Assembly - Press Releases", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "mayor-of-london-press-releases": { - "provider": "Mayor of London a Press Releases", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "merton-council-news": { - "provider": "Merton Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "met-police-the-met-tag": { - "provider": "Metropolitan Police - The Met Tag", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 25, - "emptyRuns": 51, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 21, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-30T15:47:12.538Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 37, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "moorfields-news": { - "provider": "Moorfields Eye Hospital NHS Foundation Trust a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 51, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 16, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-28T22:11:06.030Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "http-status-error", - "message": "HTTP 500", - "at": "2026-04-28T22:11:06.030Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "nelft-news": { - "provider": "North East London NHS Foundation Trust a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "newham-council-news": { - "provider": "Newham Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "nhs-london-ncl-news": { - "provider": "NHS West and North London a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "nhs-london-nel-news": { - "provider": "NHS North East London a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "nhs-london-nwl-news": { - "provider": "NHS North West London a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "nhs-london-sel-news": { - "provider": "NHS South East London a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "nhs-london-swl-news": { - "provider": "NHS South West London a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "north-middlesex-news": { - "provider": "Royal Free London NHS Foundation Trust a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 2, - "failedRuns": 6, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 1, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "oxleas-news": { - "provider": "Oxleas NHS Foundation Trust a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "port-of-london-authority-news": { - "provider": "Port of London Authority a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "redbridge-council-news": { - "provider": "Redbridge Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "richmond-council-news": { - "provider": "Richmond Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 51, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 16, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-28T22:11:06.030Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-28T22:11:06.030Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "royal-free-london-news": { - "provider": "Royal Free London NHS Foundation Trust a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "royal-greenwich-news": { - "provider": "Royal Borough of Greenwich a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 4, - "failedRuns": 6, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 1, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-27T19:49:39.407Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "slam-news": { - "provider": "South London and Maudsley NHS Foundation Trust a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "southwark-newsroom": { - "provider": "Southwark Council - News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "st-georges-news": { - "provider": "St George's University Hospitals NHS Foundation Trust a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "sutton-council-news": { - "provider": "Sutton Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 52, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 30, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-27T18:01:23.816Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-27T18:01:23.816Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "swlstg-news": { - "provider": "South West London and St George's Mental Health NHS Trust a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "tavistock-portman-news": { - "provider": "North London NHS Foundation Trust - News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "tfl-press-releases": { - "provider": "Mayor of London - Press Releases", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "tfl-press-releases-html": { - "provider": "London Assembly - Press Releases", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "tower-hamlets-council-news": { - "provider": "Tower Hamlets Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "uclh-news": { - "provider": "University College London Hospitals a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 14, - "failedRuns": 5, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-29T05:04:06.775Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T18:18:46.639Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "waltham-forest-council-news": { - "provider": "Waltham Forest Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "wandsworth-council-news": { - "provider": "Wandsworth Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "westminster-city-council-news": { - "provider": "Westminster City Council a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "whittington-health-news": { - "provider": "Whittington Health a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "londonist-rss": { - "provider": "Londonist", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "ian-visits-rss": { - "provider": "IanVisits", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "secret-london-rss": { - "provider": "Secret London", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T14:08:38.783Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 3, - "failedRuns": 6, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T14:08:38.783Z", - "lastEmptyAt": "2026-05-01T09:24:40.004Z", - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-29T07:35:36.877Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-05-01T14:08:38.783Z" - } - ], - "cooldownUntil": "2026-05-03T14:08:38.783Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T14:08:38.783Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "time-out-london-rss": { - "provider": "Time Out London", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T12:10:27.497Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 5, - "consecutiveFailures": 5, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T12:10:27.497Z", - "lastEmptyAt": null, - "lastErrorCategory": "not-found-404", - "lastErrorMessage": "HTTP 404", - "recentErrors": [ - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T18:18:46.639Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-27T09:47:00.583Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-29T11:50:06.590Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-05-01T12:10:27.497Z" - } - ], - "cooldownUntil": "2026-05-03T12:10:27.497Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T12:10:27.497Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "diamond-geezer-rss": { - "provider": "Diamond Geezer", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "city-of-london-police-news": { - "provider": "City of London Police - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "city-of-london-police-news-html": { - "provider": "City of London Police - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "city-of-london-police-newsroom": { - "provider": "City of London Police - Newsroom", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ct-policing-london": { - "provider": "Counter Terrorism Policing London", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T09:24:40.004Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T09:24:40.004Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T07:35:36.877Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T09:24:40.004Z" - } - ], - "cooldownUntil": "2026-05-03T09:24:40.004Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T09:24:40.004Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T09:24:40.004Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "met-police-latest-news": { - "provider": "Metropolitan Police - Latest News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 5, - "successfulRuns": 85, - "emptyRuns": 0, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": null, - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "met-police-news": { - "provider": "Metropolitan Police Service a News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 5, - "successfulRuns": 85, - "emptyRuns": 0, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": null, - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "london-assembly-press-releases": { - "provider": "London Assembly a Press Releases", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "mopac-html": { - "provider": "London.gov.uk - Media Centre", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "london-resilience": { - "provider": "Resilience First - Latest Updates", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "gov-uk-fcdo-travel-advice": { - "provider": "FCDO a Foreign Travel Advice Index", - "lane": "border", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "uk-border-force": { - "provider": "Border Force (UK) a Announcements and Publications", - "lane": "border", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "uk-ukvi": { - "provider": "UK Visas and Immigration a Announcements and Publications", - "lane": "border", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "bbc-news-england-legacy": { - "provider": "BBC News a England (Legacy RSS)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T21:34:23.032Z", - "lastBuiltCount": 0, - "successfulRuns": 12, - "emptyRuns": 27, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 10, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-01T04:19:52.575Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T21:34:23.032Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T09:34:23.032Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 70, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T09:34:23.032Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "bbc-news-front-page-legacy": { - "provider": "BBC News a Front Page (Legacy RSS)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T21:34:23.032Z", - "lastBuiltCount": 0, - "successfulRuns": 17, - "emptyRuns": 39, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 10, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-01T04:19:52.575Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T21:34:23.032Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T09:34:23.032Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 66, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T09:34:23.032Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "bbc-news-uk": { - "provider": "BBC News a UK", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 1, - "successfulRuns": 34, - "emptyRuns": 32, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T09:31:34.064Z" - }, - "bbc-news-uk-politics-legacy": { - "provider": "BBC News a UK Politics (Legacy RSS)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T04:51:21.217Z", - "lastBuiltCount": 0, - "successfulRuns": 13, - "emptyRuns": 26, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 10, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-01T12:10:27.497Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T04:51:21.217Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T16:51:21.217Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 70, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T16:51:21.217Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "chatham-house-home": { - "provider": "Chatham House", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "chatham-house-security-defence": { - "provider": "RUSI - Latest Commentary", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "essex-police-news": { - "provider": "Essex PFCC - News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "gov-uk-defence-intelligence": { - "provider": "UK Defence Intelligence a GOV.UK", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "gov-uk-terrorism-search": { - "provider": "GOV.UK Search - Terrorism", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "guardian-uk": { - "provider": "The Guardian a UK News", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 1, - "successfulRuns": 32, - "emptyRuns": 34, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T18:47:33.071Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T11:04:34.064Z" - }, - "henry-jackson-society-news": { - "provider": "RUSI - Latest Publications", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "hope-not-hate-home": { - "provider": "Hope not hate podcast", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "institute-global-home": { - "provider": "Institute for Global Change", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T20:16:16.792Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 2, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T20:16:16.792Z", - "lastEmptyAt": "2026-04-26T04:16:22.766Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T18:01:23.816Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T19:55:57.182Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T20:16:16.792Z" - } - ], - "cooldownUntil": "2026-05-03T20:16:16.792Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T20:16:16.792Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T20:16:16.792Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "kent-police-news": { - "provider": "Kent Police a News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "mi5-news": { - "provider": "MI5 - News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "mi5-news-rss-direct": { - "provider": "MI5 - News RSS", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "national-crime-agency-news": { - "provider": "National Crime Agency - News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "npcc-releases": { - "provider": "National Police Chiefs' Council - Releases", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "police-uk-all-crime-leicester": { - "provider": "Police.uk - Street Crime Around Leicester", - "lane": "context", - "kind": "json", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "police-uk-stops-force-leicestershire": { - "provider": "Police.uk - Force Stops (Leicestershire)", - "lane": "context", - "kind": "json", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "police-uk-stops-street-leicester": { - "provider": "Police.uk - Street Stops Around Leicester", - "lane": "context", - "kind": "json", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "report-fraud-home": { - "provider": "Report Fraud", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "report-fraud-newsroom": { - "provider": "Report Fraud - Newsroom", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "rusi-home": { - "provider": "RUSI", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "rusi-publications": { - "provider": "RUSI (Royal United Services Institute) a Publications", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "rusi-terrorism-conflict": { - "provider": "RUSI - Latest Publications", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "skwawkbox": { - "provider": "Skwawkbox", - "lane": "context", - "kind": "playwright_html", - "lastCheckedAt": "2026-04-26T11:01:40.415Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 3, - "consecutiveFailures": 3, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-26T11:01:40.415Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T11:01:40.415Z" - } - ], - "cooldownUntil": "2026-05-02T09:24:00.000Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 32, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T09:24:00.000Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "sky-news-uk-rss": { - "provider": "Sky News UK a Top Stories (RSS)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T21:34:23.032Z", - "lastBuiltCount": 0, - "successfulRuns": 12, - "emptyRuns": 33, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 10, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-01T04:19:52.575Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T21:34:23.032Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T09:34:23.032Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 70, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T09:34:23.032Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "the-sun-all": { - "provider": "The Sun", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T09:27:37.716Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "cooldownUntil": "2026-05-02T09:27:37.716Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T09:27:37.716Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "the-sun-all-english": { - "provider": "The Sun", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T15:47:12.538Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-26T00:07:42.332Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "cooldownUntil": "2026-05-02T15:47:12.538Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T15:47:12.538Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "the-sun-homepage": { - "provider": "The Sun", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T15:47:12.538Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-26T00:07:42.332Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "cooldownUntil": "2026-05-02T15:47:12.538Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T15:47:12.538Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "the-sun-news-english": { - "provider": "The Sun", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T15:47:12.538Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "cooldownUntil": "2026-05-02T15:47:12.538Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T15:47:12.538Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "west-yorkshire-police-coroner-appeals-rss": { - "provider": "West Yorkshire Police - Coroner Appeals Feed", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 24, - "failedRuns": 5, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 24, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-28T12:19:51.902Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T18:18:46.639Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "wiltshire-999s": { - "provider": "Wiltshire 999s", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "belfast-live": { - "provider": "Belfast Live", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T20:16:16.792Z", - "lastBuiltCount": 0, - "successfulRuns": 1, - "emptyRuns": 24, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 13, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-28T12:19:51.902Z", - "lastFailureAt": "2026-04-27T04:20:08.357Z", - "lastEmptyAt": "2026-05-01T20:16:16.792Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T08:16:16.792Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 3, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:16:16.792Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "birmingham-mail": { - "provider": "Birmingham Mail", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "breaking-news-today": { - "provider": "Breaking News Today", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "cambridge-news": { - "provider": "Cambridge News", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "channel-4-news": { - "provider": "Channel 4 News", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 1, - "successfulRuns": 12, - "emptyRuns": 25, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T15:41:41.977Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 90, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T09:18:34.064Z" - }, - "consett-magazine": { - "provider": "Consett Magazine", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "daily-echo": { - "provider": "Daily Echo", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "daily-express": { - "provider": "Daily Express", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "daily-mail-online": { - "provider": "Daily Mail Online - Popular Stories", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T04:51:21.217Z", - "lastBuiltCount": 0, - "successfulRuns": 2, - "emptyRuns": 23, - "failedRuns": 2, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 6, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-01T04:19:52.575Z", - "lastFailureAt": "2026-04-26T09:42:47.504Z", - "lastEmptyAt": "2026-05-02T04:51:21.217Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T07:46:21.217Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 1, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T07:46:21.217Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "daily-mirror": { - "provider": "Daily Mirror", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T04:19:52.575Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 17, - "failedRuns": 1, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T04:19:52.575Z", - "lastEmptyAt": "2026-04-30T11:24:36.848Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T04:19:52.575Z" - } - ], - "cooldownUntil": "2026-05-02T19:55:52.575Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 14, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:55:52.575Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "daily-politics": { - "provider": "Daily Politics", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "deadline-news": { - "provider": "Deadline News", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T21:34:23.032Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 23, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 11, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-28T07:47:59.131Z", - "lastEmptyAt": "2026-05-01T21:34:23.032Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-28T07:47:59.131Z" - } - ], - "cooldownUntil": "2026-05-02T09:34:23.032Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T09:34:23.032Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "evening-standard": { - "provider": "Evening Standard", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 8, - "emptyRuns": 33, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 7, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-01T18:47:33.071Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 61, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T10:54:34.064Z" - }, - "glasgow-times": { - "provider": "Glasgow Times", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T23:37:06.119Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T23:37:06.119Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T11:37:06.119Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T11:37:06.119Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "grimsby-telegraph": { - "provider": "Grimsby Telegraph", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "herald-scotland-news": { - "provider": "Herald Scotland - News", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 1, - "emptyRuns": 27, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 17, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-27T04:20:08.357Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 9, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "huffpost-uk": { - "provider": "HuffPost UK", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T04:51:21.217Z", - "lastBuiltCount": 0, - "successfulRuns": 4, - "emptyRuns": 16, - "failedRuns": 3, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 5, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-01T04:19:52.575Z", - "lastFailureAt": "2026-04-27T14:17:09.800Z", - "lastEmptyAt": "2026-05-02T04:51:21.217Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T08:39:21.217Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 27, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:39:21.217Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "larne-times": { - "provider": "Larne Times", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 1, - "successfulRuns": 1, - "emptyRuns": 19, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T17:13:17.765Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 33, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T11:04:34.064Z" - }, - "manchester-evening-news": { - "provider": "Manchester Evening News", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "news-uk": { - "provider": "News UK", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "pinknews": { - "provider": "PinkNews", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 2, - "emptyRuns": 24, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 7, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-01T09:24:40.004Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 28, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T11:09:34.064Z" - }, - "politics-co-uk": { - "provider": "Politics.co.uk", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "positive-news": { - "provider": "Positive News", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "scottish-field": { - "provider": "Scottish Field", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "surgezirc-uk": { - "provider": "SurgeZirc UK", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 23, - "failedRuns": 2, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-05-01T04:19:52.575Z", - "lastErrorCategory": "network-failure", - "lastErrorMessage": "fetch failed", - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "the-argus-news": { - "provider": "The Argus", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "the-bolton-news": { - "provider": "The Bolton News - News", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "church-of-england-newspaper": { - "provider": "Church of England Newspaper", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "the-daily-mash": { - "provider": "The Daily Mash", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "daily-record": { - "provider": "Daily Record", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T04:19:52.575Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 17, - "failedRuns": 1, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T04:19:52.575Z", - "lastEmptyAt": "2026-04-30T11:24:36.848Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T04:19:52.575Z" - } - ], - "cooldownUntil": "2026-05-02T19:55:52.575Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 14, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:55:52.575Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "guardian-uk-top-stories": { - "provider": "The Guardian - UK Top Stories", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T12:10:27.497Z", - "lastBuiltCount": 0, - "successfulRuns": 2, - "emptyRuns": 22, - "failedRuns": 2, - "consecutiveFailures": 2, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-28T10:29:28.246Z", - "lastFailureAt": "2026-05-01T12:10:27.497Z", - "lastEmptyAt": "2026-04-29T09:45:37.215Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "Blocked by blocked access page", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-29T22:41:42.767Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-05-01T12:10:27.497Z" - } - ], - "cooldownUntil": "2026-05-03T09:46:27.497Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 4, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T09:46:27.497Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "independent-top-stories": { - "provider": "The Independent - Top Stories", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T11:01:29.469Z", - "lastBuiltCount": 0, - "successfulRuns": 2, - "emptyRuns": 12, - "failedRuns": 5, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-01T07:23:12.181Z", - "lastFailureAt": "2026-05-01T11:01:29.469Z", - "lastEmptyAt": "2026-05-01T04:19:52.575Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T11:01:29.469Z" - } - ], - "cooldownUntil": "2026-05-03T11:01:29.469Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T11:01:29.469Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "northern-echo-news": { - "provider": "The Northern Echo - News", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "the-poke": { - "provider": "The Poke", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "scarborough-news": { - "provider": "The Scarborough News", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "the-scotsman-news": { - "provider": "The Scotsman - News", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 18, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 2, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T11:24:36.848Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T11:24:36.848Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 11, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T10:35:34.064Z" - }, - "the-scottish-sun": { - "provider": "The Scottish Sun", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T15:47:12.538Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "cooldownUntil": "2026-05-02T15:47:12.538Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T15:47:12.538Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "the-sun": { - "provider": "The Sun", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T09:27:37.716Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "cooldownUntil": "2026-05-02T09:27:37.716Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T09:27:37.716Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "the-week-uk": { - "provider": "The Week UK", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T23:37:06.119Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 21, - "failedRuns": 2, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 10, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-28T23:36:43.458Z", - "lastEmptyAt": "2026-05-01T23:37:06.119Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T18:01:23.816Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T23:36:43.458Z" - } - ], - "cooldownUntil": "2026-05-02T11:37:06.119Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T11:37:06.119Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "the-york-press-news": { - "provider": "The York Press - News", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "wales-online": { - "provider": "WalesOnline", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T23:37:06.119Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T23:37:06.119Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T11:37:06.119Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T11:37:06.119Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "a-lady-in-london": { - "provider": "A Lady in London", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "a-luxury-travel-blog": { - "provider": "A Luxury Travel Blog", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "age-uk-discover": { - "provider": "Age UK", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "alan-malcher": { - "provider": "Alan Malcher", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "arcticdry": { - "provider": "ArcticDry", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T20:16:16.792Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 24, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 17, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-26T11:01:40.415Z", - "lastEmptyAt": "2026-05-01T20:16:16.792Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T11:01:40.415Z" - } - ], - "cooldownUntil": "2026-05-02T08:16:16.792Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:16:16.792Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "britishbeautyblogger": { - "provider": "British Beauty Blogger", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "buy-firewood-direct": { - "provider": "Buy Firewood Direct", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "carly-rowena": { - "provider": "Carly Rowena", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "cherished-holiday-homes": { - "provider": "Cherished Holiday Homes", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "chique-home-living": { - "provider": "Chique Home Living", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "clubwise-blog": { - "provider": "ClubWise Blog", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "disneyrollergirl": { - "provider": "Disneyrollergirl", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "elluminet-press": { - "provider": "9to5Mac", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "england-naturally": { - "provider": "England, Naturally", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "evening-shire": { - "provider": "Evening Shire", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T17:09:38.083Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 12, - "failedRuns": 4, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T17:09:38.083Z", - "lastEmptyAt": "2026-04-30T13:14:38.243Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T00:07:42.332Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T13:27:52.538Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T05:06:43.550Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T17:09:38.083Z" - } - ], - "cooldownUntil": "2026-05-02T17:09:38.083Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T17:09:38.083Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "everything-zany": { - "provider": "Everything Zany", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "faded-spring": { - "provider": "Emily Underworld", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T23:37:06.119Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T23:37:06.119Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T11:37:06.119Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T11:37:06.119Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "fmcg-gurus": { - "provider": "Europol - Newsroom", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "foreign-office-blogs": { - "provider": "Foreign Office Blogs", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "fresh-design-blog": { - "provider": "Fresh Design Blog", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "ian-neate-blog": { - "provider": "9to5Mac", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "jollydeck": { - "provider": "JollyDeck", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "lifestylelinked": { - "provider": "LifeStyleLinked", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T23:37:06.119Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 22, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 18, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-26T08:16:04.847Z", - "lastEmptyAt": "2026-05-01T23:37:06.119Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "network-failure", - "message": "fetch failed", - "at": "2026-04-26T08:16:04.847Z" - } - ], - "cooldownUntil": "2026-05-02T11:37:06.119Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T11:37:06.119Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "london-review-of-books": { - "provider": "London Review of Books", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "love-my-dress": { - "provider": "Love My Dress", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T23:37:06.119Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 19, - "failedRuns": 1, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T23:37:06.119Z", - "lastEmptyAt": "2026-05-01T11:01:29.469Z", - "lastErrorCategory": "http-status-error", - "lastErrorMessage": "HTTP 520", - "recentErrors": [ - { - "category": "http-status-error", - "message": "HTTP 520", - "at": "2026-05-01T23:37:06.119Z" - } - ], - "cooldownUntil": "2026-05-03T18:49:06.119Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 8, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T18:49:06.119Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "manic-mum-life": { - "provider": "Manic Mum Life", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "marie-claire-uk": { - "provider": "Marie Claire UK", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "office-breaks": { - "provider": "Office Breaks", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "on-the-think-of": { - "provider": "On The Think Of", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "quadrant2design-exhibiting-guides": { - "provider": "Quadrant2Design Exhibiting Guides", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "really-ree": { - "provider": "Really Ree", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T23:37:06.119Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T23:37:06.119Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T11:37:06.119Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T11:37:06.119Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "rocknroll-bride": { - "provider": "Rock n Roll Bride", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "semibold": { - "provider": "Semibold", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T04:51:21.217Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 16, - "failedRuns": 3, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 4, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-29T18:05:32.084Z", - "lastEmptyAt": "2026-05-02T04:51:21.217Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T13:27:52.538Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T01:25:07.738Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T18:05:32.084Z" - } - ], - "cooldownUntil": "2026-05-02T07:16:21.217Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T07:16:21.217Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "silly-old-sod": { - "provider": "Combating Terrorism Center at West Point - CTC Sentinel", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T20:16:16.792Z", - "lastBuiltCount": 0, - "successfulRuns": 11, - "emptyRuns": 25, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 13, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-29T07:35:36.877Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T20:16:16.792Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T08:16:16.792Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 61, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:16:16.792Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "silverspoon-london": { - "provider": "SilverSpoon London", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "sks-business-services": { - "provider": "UN Office of Counter-Terrorism - News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "hnd-assignment-help-uk-medium": { - "provider": "Stories by HND Assignment Help UK", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "streetspace": { - "provider": "Streetspace", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T09:27:37.716Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "cooldownUntil": "2026-05-02T09:27:37.716Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T09:27:37.716Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "tenura": { - "provider": "Tenura", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "thank-you-for-the-days": { - "provider": "Thank you for the days", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "the-curry-guy": { - "provider": "The Curry Guy", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "real-talk-uk": { - "provider": "The Real Talk UK", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "the-stratfordian": { - "provider": "The Stratfordian", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "training-express": { - "provider": "Training Express", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "uk-constitutional-law-association": { - "provider": "UK Constitutional Law Association", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "uk-fundraising-blog": { - "provider": "UK Fundraising", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "uk-human-rights-blog": { - "provider": "UK Human Rights Blog", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "vershd": { - "provider": "Vershd", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T04:19:52.575Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 17, - "failedRuns": 1, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T04:19:52.575Z", - "lastEmptyAt": "2026-04-30T11:24:36.848Z", - "lastErrorCategory": "http-status-error", - "lastErrorMessage": "HTTP 520", - "recentErrors": [ - { - "category": "http-status-error", - "message": "HTTP 520", - "at": "2026-05-01T04:19:52.575Z" - } - ], - "cooldownUntil": "2026-05-02T19:55:52.575Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 14, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:55:52.575Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "vuelio-uk": { - "provider": "Vuelio", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "ukhsa-updates-atom": { - "provider": "UK Health Security Agency", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "nitter-uk-incident-keywords": { - "provider": "Nitter - UK Incident Keyword Search", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T15:47:12.538Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "cooldownUntil": "2026-05-02T15:47:12.538Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T15:47:12.538Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "sky-business-rss": { - "provider": "Sky News - Business (RSS)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "mi5-news-rss": { - "provider": "MI5 - News and Updates (RSS)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T09:27:37.716Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "cooldownUntil": "2026-05-02T09:27:37.716Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-02T09:27:37.716Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "counter-terrorism-policing-uk-rss": { - "provider": "Counter Terrorism Policing UK", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 2, - "successfulRuns": 15, - "emptyRuns": 0, - "failedRuns": 5, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": "2026-04-29T05:04:06.775Z", - "lastEmptyAt": null, - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "act-campaign-feed": { - "provider": "Action Counters Terrorism (ACT)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T09:27:37.716Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "cooldownUntil": "2026-05-02T09:27:37.716Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T09:27:37.716Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "missing-people-uk-rss": { - "provider": "Missing People UK", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "home-office-atom": { - "provider": "UK Home Office", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 33, - "emptyRuns": 46, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 8, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-01T17:13:17.765Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 76, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "charity-commission-atom": { - "provider": "Charity Commission for England and Wales", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "national-trust-news-rss": { - "provider": "National Trust", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T12:10:27.497Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 5, - "consecutiveFailures": 5, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T12:10:27.497Z", - "lastEmptyAt": null, - "lastErrorCategory": "not-found-404", - "lastErrorMessage": "HTTP 404", - "recentErrors": [ - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T18:18:46.639Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-27T09:47:00.583Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-29T11:50:06.590Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-05-01T12:10:27.497Z" - } - ], - "cooldownUntil": "2026-05-03T12:10:27.497Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T12:10:27.497Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "visitbritain-rss": { - "provider": "VisitBritain", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T12:10:27.497Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 5, - "consecutiveFailures": 5, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T12:10:27.497Z", - "lastEmptyAt": null, - "lastErrorCategory": "not-found-404", - "lastErrorMessage": "HTTP 404", - "recentErrors": [ - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T18:18:46.639Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-27T09:47:00.583Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-29T11:50:06.590Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-05-01T12:10:27.497Z" - } - ], - "cooldownUntil": "2026-05-03T12:10:27.497Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T12:10:27.497Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "time-out-uk-rss": { - "provider": "Time Out UK", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T12:10:27.497Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 5, - "consecutiveFailures": 5, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T12:10:27.497Z", - "lastEmptyAt": null, - "lastErrorCategory": "not-found-404", - "lastErrorMessage": "HTTP 404", - "recentErrors": [ - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T18:18:46.639Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-27T09:47:00.583Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-29T11:50:06.590Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-05-01T12:10:27.497Z" - } - ], - "cooldownUntil": "2026-05-03T12:10:27.497Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T12:10:27.497Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "guido-fawkes-feed": { - "provider": "Guido Fawkes", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T04:51:21.217Z", - "lastBuiltCount": 0, - "successfulRuns": 18, - "emptyRuns": 25, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 10, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-01T12:10:27.497Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T04:51:21.217Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T16:51:21.217Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 70, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T16:51:21.217Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "wings-over-scotland-feed": { - "provider": "Wings Over Scotland", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "skwawkbox-feed": { - "provider": "Skwawkbox", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "breitbart-london-feed": { - "provider": "Breitbart London", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "gb-news-uk-politics-rss": { - "provider": "GB News - UK Politics", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 4, - "successfulRuns": 30, - "emptyRuns": 10, - "failedRuns": 3, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": "2026-04-27T18:01:23.816Z", - "lastEmptyAt": "2026-04-29T11:50:06.590Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T11:10:34.064Z" - }, - "the-canary-feed": { - "provider": "The Canary", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T04:51:21.217Z", - "lastBuiltCount": 1, - "successfulRuns": 4, - "emptyRuns": 21, - "failedRuns": 2, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T04:51:21.217Z", - "lastFailureAt": "2026-04-26T13:27:52.538Z", - "lastEmptyAt": "2026-05-01T18:47:33.071Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T08:48:21.217Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 31, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:48:21.217Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "sky-news-home-rss": { - "provider": "Sky News - Home", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T21:34:23.032Z", - "lastBuiltCount": 0, - "successfulRuns": 9, - "emptyRuns": 32, - "failedRuns": 2, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 10, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-01T04:19:52.575Z", - "lastFailureAt": "2026-04-26T09:42:47.504Z", - "lastEmptyAt": "2026-05-01T21:34:23.032Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T09:34:23.032Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 44, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T09:34:23.032Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "telegraph-all-news-rss": { - "provider": "The Telegraph - News", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "my-london-rss": { - "provider": "MyLondon", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T21:34:23.032Z", - "lastBuiltCount": 0, - "successfulRuns": 13, - "emptyRuns": 26, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 10, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-01T04:19:52.575Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T21:34:23.032Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T09:34:23.032Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 70, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T09:34:23.032Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "uk-data-police-api": { - "provider": "Police.uk - API root", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "uk-judiciary-sentencing-remarks": { - "provider": "Judiciary UK - Sentencing remarks", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "uk-college-policing-news": { - "provider": "College of Policing - News and views", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "uk-ons-crime-england-wales": { - "provider": "ONS - Crime in England and Wales", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "uk-serious-fraud-office-news": { - "provider": "Serious Fraud Office - GOV.UK organisation", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "uk-hmrc-news": { - "provider": "HM Revenue & Customs - News and communications", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "uk-ukfinance-fraud-news": { - "provider": "UK Finance - News and insight", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": "2026-04-26T04:16:22.766Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T16:18:17.647Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "uk-cifas-newsroom": { - "provider": "Cifas - Newsroom", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "politics-co-uk-rss": { - "provider": "Politics.co.uk", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "uk-met-office-rss-guides": { - "provider": "Met Office - RSS feeds guide", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 51, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 8, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-29T16:23:03.474Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-29T16:23:03.474Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "novara-media-feed": { - "provider": "Novara Media", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "byline-times-feed": { - "provider": "Byline Times", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T20:16:16.792Z", - "lastBuiltCount": 0, - "successfulRuns": 8, - "emptyRuns": 26, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 15, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-28T07:47:59.131Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T20:16:16.792Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T08:16:16.792Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 55, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:16:16.792Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "reddit-unitedkingdom-rss": { - "provider": "Reddit - r/unitedkingdom", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-01T23:37:06.119Z", - "lastBuiltCount": 0, - "successfulRuns": 10, - "emptyRuns": 38, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 11, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-30T13:14:38.243Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T23:37:06.119Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T11:37:06.119Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 65, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T11:37:06.119Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "avon-and-somerset-police-news-html": { - "provider": "Avon and Somerset Police - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "avon-somerset-police-news": { - "provider": "Avon & Somerset Police - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "bedfordshire-police-news": { - "provider": "Central Bedfordshire Council - News", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "bedfordshire-police-news-search": { - "provider": "Central Bedfordshire Council - News", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "british-transport-police-news": { - "provider": "British Transport Police Authority - News Feed", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "btp-british-transport-police-news-html": { - "provider": "British Transport Police Authority - News Feed", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "cambridgeshire-police-news-search": { - "provider": "Cambridgeshire Live - News RSS", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "cheshire-police-news": { - "provider": "North West Bylines - Cheshire", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-04-30T17:09:38.083Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 21, - "failedRuns": 4, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T17:09:38.083Z", - "lastEmptyAt": "2026-04-30T15:47:12.538Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T00:07:42.332Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T01:25:07.738Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T17:09:38.083Z" - } - ], - "cooldownUntil": "2026-05-02T17:09:38.083Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T17:09:38.083Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "cleveland-police-news": { - "provider": "National Police Chiefs' Council - News Feed", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "cps-news-centre": { - "provider": "Crown Prosecution Service a News Centre", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ct-policing-north-west": { - "provider": "Counter Terrorism Policing North West", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T09:24:40.004Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T09:24:40.004Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T07:35:36.877Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T09:24:40.004Z" - } - ], - "cooldownUntil": "2026-05-03T09:24:40.004Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T09:24:40.004Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T09:24:40.004Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ct-policing-uk-latest-news": { - "provider": "Counter Terrorism Policing UK a Latest News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T09:24:40.004Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T09:24:40.004Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T07:35:36.877Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T09:24:40.004Z" - } - ], - "cooldownUntil": "2026-05-03T09:24:40.004Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T09:24:40.004Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T09:24:40.004Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ct-policing-uk-rss-feed": { - "provider": "Counter Terrorism Policing UK - Latest News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T09:24:40.004Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T09:24:40.004Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T07:35:36.877Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T09:24:40.004Z" - } - ], - "cooldownUntil": "2026-05-03T09:24:40.004Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T09:24:40.004Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T09:24:40.004Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "cumbria-police-news": { - "provider": "Cumbria Police - News RSS", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-04-30T09:27:37.716Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "cooldownUntil": "2026-05-02T09:27:37.716Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-02T09:27:37.716Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "cumbria-police-newsroom": { - "provider": "Cumbria Police - Newsroom", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "derbyshire-police-news": { - "provider": "National Police Chiefs' Council - News Feed", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "devon-and-cornwall-police-newsroom": { - "provider": "Devon and Cornwall Police - Newsroom", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "devon-cornwall-police-news": { - "provider": "Devon and Cornwall Police - Newsroom", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "dorset-police-news": { - "provider": "Dorset Police - Newsroom", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "dorset-police-newsroom": { - "provider": "Dorset Police - Newsroom", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "durham-constabulary-news": { - "provider": "National Police Chiefs' Council - News Feed", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "durham-police-durham-news": { - "provider": "National Police Chiefs' Council - News Feed", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "dyfed-powys-police-news": { - "provider": "National Police Chiefs' Council - News Feed", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "essex-police-news-html": { - "provider": "Essex Police - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "gloucestershire-police-news": { - "provider": "National Police Chiefs' Council - News Feed", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "gmp-news": { - "provider": "Metropolitan Police Service - Latest News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 5, - "successfulRuns": 83, - "emptyRuns": 1, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-04-27T00:08:00.385Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "greater-manchester-police-news": { - "provider": "Metropolitan Police Service - Latest News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 5, - "successfulRuns": 80, - "emptyRuns": 0, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": null, - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "gwent-police-news": { - "provider": "National Police Chiefs' Council - News Feed", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "hampshire-police-news": { - "provider": "National Police Chiefs' Council - News Feed", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "hertfordshire-police-news": { - "provider": "National Police Chiefs' Council - News Feed", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "humberside-police-news-search": { - "provider": "National Police Chiefs' Council - News Feed", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "kent-police-news-html": { - "provider": "Kent Police - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "lancashire-constabulary-news": { - "provider": "Lancashire Police - Newsroom", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "leicestershire-police-news": { - "provider": "National Crime Agency - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "lincolnshire-police-news": { - "provider": "Lincolnshire Police - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "merseyside-police-news": { - "provider": "Merseyside Police a News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "merseyside-police-news-html": { - "provider": "Merseyside Police - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "norfolk-constabulary-news": { - "provider": "Norfolk Constabulary - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "north-wales-police-news": { - "provider": "North Wales Police - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "north-yorkshire-police-news-html": { - "provider": "North Yorkshire Police - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "northamptonshire-police-news-html": { - "provider": "Northamptonshire Police - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "northumbria-police-news": { - "provider": "North East Bylines", - "lane": "incidents", - "kind": "rss", - "lastCheckedAt": "2026-04-30T17:09:38.083Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 21, - "failedRuns": 4, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T17:09:38.083Z", - "lastEmptyAt": "2026-04-30T15:47:12.538Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T00:07:42.332Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T01:25:07.738Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T17:09:38.083Z" - } - ], - "cooldownUntil": "2026-05-02T17:09:38.083Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T17:09:38.083Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "northumbria-police-northumbria-news": { - "provider": "Northumbria Police - Northumbria News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "nottinghamshire-police-news": { - "provider": "Nottinghamshire Police a News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "nottinghamshire-police-nottinghamshire-news": { - "provider": "Nottinghamshire Police - Nottinghamshire News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "police-scotland-news": { - "provider": "Police Scotland news", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "psni-latest-news": { - "provider": "Police Service of Northern Ireland - Latest News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "psni-news": { - "provider": "Police Service of Northern Ireland a News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "south-wales-police-news": { - "provider": "South Wales Police - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-04-30T23:05:08.470Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "cooldownUntil": "2026-05-02T23:05:08.470Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-02T23:05:08.470Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "south-yorkshire-police-news": { - "provider": "South Yorkshire Police a News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-04-30T23:05:08.470Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "cooldownUntil": "2026-05-02T23:05:08.470Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-02T23:05:08.470Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "staffordshire-police-news": { - "provider": "Staffordshire Police a News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-04-30T23:05:08.470Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "cooldownUntil": "2026-05-02T23:05:08.470Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-02T23:05:08.470Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "staffordshire-police-staffordshire-news": { - "provider": "Staffordshire Police - Staffordshire News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-04-30T23:05:08.470Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "cooldownUntil": "2026-05-02T23:05:08.470Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-02T23:05:08.470Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "suffolk-constabulary-news": { - "provider": "Suffolk Constabulary - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-04-30T23:05:08.470Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "cooldownUntil": "2026-05-02T23:05:08.470Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-02T23:05:08.470Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "surrey-police-news": { - "provider": "Surrey Police a News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-04-30T23:05:08.470Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "cooldownUntil": "2026-05-02T23:05:08.470Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-02T23:05:08.470Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "sussex-police-news": { - "provider": "Sussex Police a News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-04-30T23:05:08.470Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "cooldownUntil": "2026-05-02T23:05:08.470Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-02T23:05:08.470Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "thames-valley-police-news": { - "provider": "Thames Valley Police a News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-04-30T23:05:08.470Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "cooldownUntil": "2026-05-02T23:05:08.470Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-02T23:05:08.470Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "thames-valley-police-news-html": { - "provider": "Thames Valley Police - Thames Valley News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-04-30T23:05:08.470Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "cooldownUntil": "2026-05-02T23:05:08.470Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-02T23:05:08.470Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "warwickshire-police-news": { - "provider": "Warwickshire Connected - Latest Alerts", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "west-mercia-police-news-html": { - "provider": "West Mercia Police - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-04-30T23:05:08.470Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "cooldownUntil": "2026-05-02T23:05:08.470Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-02T23:05:08.470Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "west-midlands-police-news": { - "provider": "West Midlands Police a News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-04-30T23:05:08.470Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "cooldownUntil": "2026-05-02T23:05:08.470Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-02T23:05:08.470Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "west-yorkshire-police-all-rss": { - "provider": "West Yorkshire Police - All News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "west-yorkshire-police-appeals-rss": { - "provider": "West Yorkshire Police - Appeals", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 2, - "failedRuns": 6, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 1, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": "2026-05-01T04:19:52.575Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "west-yorkshire-police-missing-rss": { - "provider": "West Yorkshire Police - Missing", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "west-yorkshire-police-news": { - "provider": "West Yorkshire Police a News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "west-yorkshire-police-news-appeals": { - "provider": "West Yorkshire Police - News Appeals", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 76, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 76, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "west-yorkshire-police-news-rss": { - "provider": "West Yorkshire Police - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "west-yorkshire-police-releases-rss": { - "provider": "West Yorkshire Police - RSS Feeds", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 10, - "failedRuns": 5, - "consecutiveFailures": 3, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 3, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": "2026-04-26T23:16:01.506Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T18:18:46.639Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "wiltshire-police-news": { - "provider": "Wiltshire Police - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-04-30T23:05:08.470Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "cooldownUntil": "2026-05-02T23:05:08.470Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-02T23:05:08.470Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "uk-npcc-news": { - "provider": "National Police Chiefs' Council - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "uk-npcc-county-lines": { - "provider": "National Police Chiefs' Council - Crime Operations releases", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 78, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 78, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "uk-btp-england-news": { - "provider": "British Transport Police - England news", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-04-30T23:05:08.470Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "cooldownUntil": "2026-05-02T23:05:08.470Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-02T23:05:08.470Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "uk-city-london-police-news": { - "provider": "City of London Police - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-04-30T23:05:08.470Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "cooldownUntil": "2026-05-02T23:05:08.470Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-02T23:05:08.470Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "uk-city-london-police-fraud": { - "provider": "City of London Police - Fraud category", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-04-30T23:05:08.470Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "cooldownUntil": "2026-05-02T23:05:08.470Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-02T23:05:08.470Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "uk-west-mercia-police-news": { - "provider": "West Mercia Police - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-04-30T23:05:08.470Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "cooldownUntil": "2026-05-02T23:05:08.470Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-02T23:05:08.470Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "uk-british-transport-police-search": { - "provider": "British Transport Police - News search", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-04-30T23:05:08.470Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "cooldownUntil": "2026-05-02T23:05:08.470Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-02T23:05:08.470Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "mi5-terrorism-news-category": { - "provider": "MI5 - Terrorism News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-04-30T23:05:08.470Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T23:05:08.470Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-28T22:11:06.030Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-30T23:05:08.470Z" - } - ], - "cooldownUntil": "2026-05-02T23:05:08.470Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T23:05:08.470Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-02T23:05:08.470Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "cps-news-category-feed": { - "provider": "Crown Prosecution Service - News", - "lane": "incidents", - "kind": "html", - "lastCheckedAt": "2026-05-01T12:10:27.497Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 5, - "consecutiveFailures": 5, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T12:10:27.497Z", - "lastEmptyAt": null, - "lastErrorCategory": "not-found-404", - "lastErrorMessage": "HTTP 404", - "recentErrors": [ - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T18:18:46.639Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-27T09:47:00.583Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-29T11:50:06.590Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-05-01T12:10:27.497Z" - } - ], - "cooldownUntil": "2026-05-03T12:10:27.497Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T12:10:27.497Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "attorney-generals-office-html": { - "provider": "Attorney General's Office", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "cabinet-office-html": { - "provider": "Cabinet Office", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "cps-homepage": { - "provider": "Crown Prosecution Service", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "crown-office-news": { - "provider": "Crown Office and Procurator Fiscal Service - News", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "echr-uk-grand-chamber-rss": { - "provider": "European Court of Human Rights - HUDOC", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "extremism-commission-blog": { - "provider": "Commission for Countering Extremism - Blog", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "fcdo-html": { - "provider": "Foreign, Commonwealth & Development Office", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "gov-scot-access-to-justice-latest": { - "provider": "Scottish Government - Access to Justice Latest", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "gov-uk-cabinet-office-atom": { - "provider": "Cabinet Office", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "gov-uk-hmcts": { - "provider": "HMCTS a Courts and Tribunals Announcements", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "gov-uk-hmic": { - "provider": "Criminal Justice Joint Inspection - HMICFRS", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "gov-uk-home-office-atom": { - "provider": "UK Home Office", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 1, - "successfulRuns": 78, - "emptyRuns": 2, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-04-27T00:08:00.385Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "gov-uk-ipco": { - "provider": "Investigatory Powers Commissioner's Office a GOV.UK", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "gov-uk-mod-atom": { - "provider": "Ministry of Defence", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "gov-uk-moj-atom": { - "provider": "Ministry of Justice", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "gov-uk-news-and-communications-atom": { - "provider": "GOV.UK - News and Communications", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 1, - "successfulRuns": 22, - "emptyRuns": 54, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T11:01:29.469Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "gov-uk-parliament-jcnss": { - "provider": "GovWire - Home Office", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-01T23:37:06.119Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T23:37:06.119Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T11:37:06.119Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T11:37:06.119Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "hmiprisons-news": { - "provider": "HM Inspectorate of Prisons - News", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "hmiprobation-news": { - "provider": "HM Inspectorate of Probation - News", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "home-office-media-blog": { - "provider": "Home Office Media Blog", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "independent-reviewer-terrorism-legislation": { - "provider": "Independent Reviewer of Terrorism Legislation a Reports", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "independent-reviewer-terrorism-legislation-html": { - "provider": "Independent Reviewer of Terrorism Legislation", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 1, - "successfulRuns": 35, - "emptyRuns": 41, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-04-29T09:45:37.215Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "joint-committee-human-rights-html": { - "provider": "Joint Committee on Human Rights", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-04-30T21:41:21.778Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 35, - "failedRuns": 2, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 1, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T21:41:21.778Z", - "lastEmptyAt": "2026-04-30T20:20:15.237Z", - "lastErrorCategory": "timeout", - "lastErrorMessage": "This operation was aborted", - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-27T21:16:05.058Z" - }, - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-30T21:41:21.778Z" - } - ], - "cooldownUntil": "2026-05-02T21:41:21.778Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T21:41:21.778Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "judiciary-rss-feeds-page": { - "provider": "Judiciary UK - RSS Feeds", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "judiciary-uk-announcements-feed": { - "provider": "Judiciary UK - Announcements Feed", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-01T12:10:27.497Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 66, - "failedRuns": 1, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 1, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T12:10:27.497Z", - "lastEmptyAt": "2026-05-01T11:01:29.469Z", - "lastErrorCategory": "timeout", - "lastErrorMessage": "This operation was aborted", - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-05-01T12:10:27.497Z" - } - ], - "cooldownUntil": "2026-05-03T12:10:27.497Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T12:10:27.497Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "judiciary-uk-judgments-feed": { - "provider": "Judiciary UK - Judgments Feed", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-01T12:10:27.497Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 66, - "failedRuns": 1, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 1, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T12:10:27.497Z", - "lastEmptyAt": "2026-05-01T11:01:29.469Z", - "lastErrorCategory": "timeout", - "lastErrorMessage": "This operation was aborted", - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-05-01T12:10:27.497Z" - } - ], - "cooldownUntil": "2026-05-03T12:10:27.497Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T12:10:27.497Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "judiciary-uk-news": { - "provider": "Judiciary of England and Wales a News", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-04-30T09:27:37.716Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastEmptyAt": null, - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "Blocked by blocked access page", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "cooldownUntil": "2026-05-02T09:27:37.716Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-02T09:27:37.716Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "judiciary-uk-publications-feed": { - "provider": "Judiciary UK - Publications Feed", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-01T12:10:27.497Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 66, - "failedRuns": 1, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 1, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T12:10:27.497Z", - "lastEmptyAt": "2026-05-01T11:01:29.469Z", - "lastErrorCategory": "timeout", - "lastErrorMessage": "This operation was aborted", - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-05-01T12:10:27.497Z" - } - ], - "cooldownUntil": "2026-05-03T12:10:27.497Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T12:10:27.497Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "lords-in-focus-rss": { - "provider": "Hansard Society - Despatch Box", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "lords-library-notes-rss": { - "provider": "Hansard Society - Despatch Box", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "ministry-of-defence-html": { - "provider": "Ministry of Defence", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "ons-html": { - "provider": "Office for National Statistics", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "parliament-all-bills-rss": { - "provider": "Parliament - All Bills RSS", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 53, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 5, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-29T21:19:29.949Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-29T21:19:29.949Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "parliament-private-bills-rss": { - "provider": "Parliament - Private Bills RSS", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "parliament-public-bills-rss": { - "provider": "Parliament - Public Bills RSS", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "police-ombudsman-current-investigations": { - "provider": "Police Ombudsman - Current Investigations", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 3, - "failedRuns": 6, - "consecutiveFailures": 3, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 3, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-27T18:01:23.816Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T19:49:39.407Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "police-uk-crime-categories-2024-01": { - "provider": "Police.uk - Crime Categories (2024-01)", - "lane": "oversight", - "kind": "json", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "police-uk-crimes-street-dates": { - "provider": "Police.uk - Street Crime Dataset Dates", - "lane": "oversight", - "kind": "json", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "police-uk-outcomes-at-location-1609590": { - "provider": "Police Data UK - Outcomes At Location API Docs", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "police-uk-outcomes-for-crime-e11dade0": { - "provider": "Police.uk - Outcomes For Crime e11dade0", - "lane": "oversight", - "kind": "json", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "scotcourts-fai-determinations-rss": { - "provider": "Scottish Courts - Fatal Accident Inquiry Determinations RSS", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "scotcourts-fai-hearings-rss": { - "provider": "Scottish Courts - Fatal Accident Inquiry Hearings RSS", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "scotcourts-high-court-justiciary-judgments-rss": { - "provider": "Scottish Courts - High Court of Justiciary Judgments RSS", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "scotcourts-high-court-practice-notes-rss": { - "provider": "Scottish Courts - High Court of Justiciary Practice Notes RSS", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "scotcourts-judgments-rss": { - "provider": "Scottish Courts - Judgments RSS", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "scotcourts-news-articles-rss": { - "provider": "Scottish Courts - News Articles RSS", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "scotcourts-publications-rss": { - "provider": "Scottish Courts - Publications RSS", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "scotcourts-rss-feeds-page": { - "provider": "Scottish Courts and Tribunals - RSS Feeds", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "scotcourts-sheriff-criminal-practice-notes-rss": { - "provider": "Scottish Courts - Sheriff Court Criminal Practice Notes RSS", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "scottish-government-justice-news": { - "provider": "Scottish Government - Justice and Safety", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "serious-fraud-office-news": { - "provider": "Serious Fraud Office a News", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "uk-home-office": { - "provider": "UK Home Office a Announcements and Publications", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 1, - "successfulRuns": 79, - "emptyRuns": 1, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-04-27T00:08:00.385Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "uk-iopc-news": { - "provider": "Independent Office for Police Conduct a News", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "uk-ncsc-news": { - "provider": "National Cyber Security Centre (UK) a News", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 5, - "successfulRuns": 84, - "emptyRuns": 0, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": null, - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "uk-ncsc-threat-reports": { - "provider": "National Cyber Security Centre (UK) - Threat Reports", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "uk-parliament-business-news": { - "provider": "UK Parliament - Business News", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "uk-parliament-defence-committee": { - "provider": "UK Parliament a Defence Select Committee", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 72, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 69, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-26T08:16:04.847Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-26T08:16:04.847Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "uk-parliament-foreign-affairs-committee": { - "provider": "GovWire - Foreign, Commonwealth & Development Office", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-04-30T15:47:12.538Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T21:08:24.775Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "cooldownUntil": "2026-05-02T15:47:12.538Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T15:47:12.538Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "uk-parliament-home-affairs-committee": { - "provider": "UK Parliament a Home Affairs Committee (News)", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "uk-parliament-isc": { - "provider": "UK Parliament a Intelligence and Security Committee (Reports & News)", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-01T11:01:29.469Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 3, - "failedRuns": 6, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 1, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T11:01:29.469Z", - "lastEmptyAt": "2026-05-01T09:24:40.004Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "Blocked by blocked access page", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-05-01T11:01:29.469Z" - } - ], - "cooldownUntil": "2026-05-03T11:01:29.469Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T11:01:29.469Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "uk-parliament-justice-committee": { - "provider": "GovWire - Ministry of Justice", - "lane": "oversight", - "kind": "rss", - "lastCheckedAt": "2026-05-01T23:37:06.119Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-01T23:37:06.119Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T11:37:06.119Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T11:37:06.119Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "uk-parliament-rss-feeds-index": { - "provider": "UK Parliament - RSS Feeds", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "HTTP 403", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "blocked-or-auth", - "message": "HTTP 403", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "act-campaign": { - "provider": "ACT Awareness Campaign", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "cheshire-police-alert": { - "provider": "Cheshire Police Alert", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "ct-policing-prevent-programme": { - "provider": "Counter Terrorism Policing - Prevent", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ct-policing-what-you-can-do": { - "provider": "Counter Terrorism Policing - What You Can Do", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T17:13:17.765Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T17:13:17.765Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T17:13:17.765Z" - } - ], - "cooldownUntil": "2026-05-03T17:13:17.765Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T17:13:17.765Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T17:13:17.765Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "dc-police-community-messaging": { - "provider": "Dorset and Cornwall Police - Community Messaging", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "devon-cornwall-alerts": { - "provider": "Devon and Cornwall Alerts", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "gnet-research": { - "provider": "Global Network on Extremism & Technology (GNET) a Main Feed", - "lane": "prevention", - "kind": "rss", - "lastCheckedAt": "2026-05-01T23:37:06.119Z", - "lastBuiltCount": 0, - "successfulRuns": 29, - "emptyRuns": 7, - "failedRuns": 6, - "consecutiveFailures": 5, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-28T01:25:07.738Z", - "lastFailureAt": "2026-05-01T23:37:06.119Z", - "lastEmptyAt": "2026-04-28T15:12:49.336Z", - "lastErrorCategory": "blocked-or-auth", - "lastErrorMessage": "Blocked by blocked access page", - "recentErrors": [ - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-28T19:16:18.483Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-28T20:58:08.387Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-04-30T06:43:12.994Z" - }, - { - "category": "blocked-or-auth", - "message": "Blocked by blocked access page", - "at": "2026-05-01T23:37:06.119Z" - } - ], - "cooldownUntil": "2026-05-03T23:37:06.119Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T23:37:06.119Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "gov-uk-contest-strategy": { - "provider": "GOV.UK a CONTEST Counter-Terrorism Strategy", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "gov-uk-counter-extremism-commissioner": { - "provider": "Counter Extremism Commissioner a GOV.UK", - "lane": "prevention", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 54, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 13, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-29T07:35:36.877Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "timeout", - "message": "This operation was aborted", - "at": "2026-04-29T07:35:36.877Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "gov-uk-prevent-strategy": { - "provider": "UK Home Office - Prevent duty guidance", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "gov-uk-report-terrorism": { - "provider": "GOV.UK - Report Terrorism", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "gov-uk-terrorism-national-emergency": { - "provider": "GOV.UK - Terrorism National Emergency", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "icsr-kcl": { - "provider": "Centre for Statecraft & National Security - Publications", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T20:16:16.792Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 2, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T20:16:16.792Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T18:01:23.816Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T19:55:57.182Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T20:16:16.792Z" - } - ], - "cooldownUntil": "2026-05-03T20:16:16.792Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T20:16:16.792Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T20:16:16.792Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "met-office-seasonal-advice": { - "provider": "Met Office - Seasonal Advice", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "mi5-terrorism-threat-levels": { - "provider": "MI5 - Terrorism Threat Levels", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "mi5-uk-threat-level": { - "provider": "MI5 (Security Service) a UK Threat Level", - "lane": "prevention", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "my-community-alert": { - "provider": "My Community Alert", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "north-wales-community-alert": { - "provider": "North Wales Community Alert", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T04:19:52.575Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 40, - "failedRuns": 2, - "consecutiveFailures": 1, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T04:19:52.575Z", - "lastEmptyAt": "2026-04-30T23:05:08.470Z", - "lastErrorCategory": "http-status-error", - "lastErrorMessage": "HTTP 429", - "recentErrors": [ - { - "category": "http-status-error", - "message": "HTTP 429", - "at": "2026-04-27T09:47:00.583Z" - }, - { - "category": "http-status-error", - "message": "HTTP 429", - "at": "2026-05-01T04:19:52.575Z" - } - ], - "cooldownUntil": "2026-05-03T04:19:52.575Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-03T04:19:52.575Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "northamptonshire-talking": { - "provider": "Northamptonshire Talking", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "npsa-blog": { - "provider": "NPSA - Blog", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "npsa-blog-news": { - "provider": "NPSA - Blog News", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "npsa-national-protective-security-authority": { - "provider": "NPSA - Activity on GOV.UK", - "lane": "prevention", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "protectuk": { - "provider": "ProtectUK (NPSA) a Protective Security Guidance", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "south-yorkshire-police-alerts": { - "provider": "South Yorkshire Police Alerts", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "stay-in-the-know-home": { - "provider": "Stay In The Know - Community Alerts", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 51, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 8, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-29T16:23:03.474Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "stay-in-the-know-latest-alerts": { - "provider": "Stay In The Know - Latest Alerts", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 51, - "failedRuns": 1, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 8, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-29T16:23:03.474Z", - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T16:23:03.474Z" - } - ], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "uk-ncsc-all-rss": { - "provider": "UK NCSC - All Updates RSS", - "lane": "prevention", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 77, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 77, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "uk-ncsc-homepage": { - "provider": "UK NCSC - Homepage", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "uk-prevent-duty-guidance": { - "provider": "GOV.UK a Prevent Duty Guidance (Collection)", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "west-midlands-community-alerts": { - "provider": "WMNow - Community Alerts", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "west-yorkshire-community-alert": { - "provider": "West Yorkshire Community Alert", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "protectuk-news": { - "provider": "ProtectUK - News", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "home-office-terrorism-police-powers-collection": { - "provider": "UK Home Office - Operation of Police Powers under the Terrorism Act 2000", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "npsa-national-security-threats": { - "provider": "National Protective Security Authority - National Security Threats", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-01T07:23:12.181Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T07:23:12.181Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T05:04:06.775Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T07:23:12.181Z" - } - ], - "cooldownUntil": "2026-05-03T07:23:12.181Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T07:23:12.181Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T07:23:12.181Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "hedayah-news": { - "provider": "Hedayah - News", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T01:21:35.839Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 5, - "consecutiveFailures": 5, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-02T01:21:35.839Z", - "lastEmptyAt": "2026-04-25T19:40:51.795Z", - "lastErrorCategory": "not-found-404", - "lastErrorMessage": "HTTP 404", - "recentErrors": [ - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-27T22:34:51.410Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-04-30T00:06:38.934Z" - }, - { - "category": "not-found-404", - "message": "HTTP 404", - "at": "2026-05-02T01:21:35.839Z" - } - ], - "cooldownUntil": "2026-05-04T01:21:35.839Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-04T01:21:35.839Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "tech-against-terrorism-news": { - "provider": "Tech Against Terrorism - News", - "lane": "prevention", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 1, - "successfulRuns": 23, - "emptyRuns": 16, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-04-30T00:06:38.934Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T09:49:34.064Z" - }, - "gov-uk-proscribed-terrorist-orgs": { - "provider": "GOV.UK a Proscribed Terrorist Organisations", - "lane": "sanctions", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "hm-treasury-html": { - "provider": "HM Treasury", - "lane": "sanctions", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "ofsi-blog-home": { - "provider": "OFSI - Blog", - "lane": "sanctions", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "otsi-blog-home": { - "provider": "OTSI - Blog", - "lane": "sanctions", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 57, - "emptyRuns": 23, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 22, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-30T13:14:38.243Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 34, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "uk-ofsi-blog": { - "provider": "Office of Financial Sanctions Implementation (OFSI) a Blog", - "lane": "sanctions", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 2, - "successfulRuns": 84, - "emptyRuns": 0, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-05-02T07:12:34.064Z", - "lastFailureAt": null, - "lastEmptyAt": null, - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 100, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "uk-sanctions-list": { - "provider": "UK Sanctions List (FCDO) a Consolidated List (XML Service)", - "lane": "sanctions", - "kind": "html", - "lastCheckedAt": "2026-04-30T19:01:21.418Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T19:01:21.418Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T07:25:44.774Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T20:58:08.387Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T19:01:21.418Z" - } - ], - "cooldownUntil": "2026-05-02T19:01:21.418Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T19:01:21.418Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T19:01:21.418Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "ctc-sentinel": { - "provider": "Combating Terrorism Center at West Point - CTC Sentinel", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T09:27:37.716Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "cooldownUntil": "2026-05-02T09:27:37.716Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T09:27:37.716Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "dhs-press-releases": { - "provider": "US Department of Homeland Security - News", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "dni-press-releases": { - "provider": "Office of the Director of National Intelligence - Press Releases", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "doj-nsd-press-releases": { - "provider": "U.S. Department of Justice - National Security Division Press Releases", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 11, - "emptyRuns": 65, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 18, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-30T20:20:15.237Z", - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 46, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "fbi-national-press-releases": { - "provider": "FBI - National Press Releases (RSS)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T09:27:37.716Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "cooldownUntil": "2026-05-02T09:27:37.716Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T09:27:37.716Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "fbi-stories": { - "provider": "FBI - Top Stories (RSS)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T09:27:37.716Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "cooldownUntil": "2026-05-02T09:27:37.716Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T09:27:37.716Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "fbi-top-stories": { - "provider": "FBI - Top Stories (RSS)", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T09:27:37.716Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T09:27:37.716Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T20:09:19.283Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T00:08:00.385Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T12:19:51.902Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T09:27:37.716Z" - } - ], - "cooldownUntil": "2026-05-02T09:27:37.716Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T09:27:37.716Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T09:27:37.716Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "gw-program-extremism": { - "provider": "George Washington University - Program on Extremism", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "nsa-cybersecurity-news": { - "provider": "NSA - Cybersecurity Advisories & Guidance", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "rand-terrorism-topic": { - "provider": "RAND - Terrorism Topic", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-01T20:16:16.792Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 2, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T20:16:16.792Z", - "lastEmptyAt": "2026-04-26T04:16:22.766Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T09:42:47.504Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T11:01:40.415Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T18:01:23.816Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T19:55:57.182Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T20:16:16.792Z" - } - ], - "cooldownUntil": "2026-05-03T20:16:16.792Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T20:16:16.792Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T20:16:16.792Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "rewards-for-justice": { - "provider": "U.S. Department of State - Rewards for Justice", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "state-dept-terrorism": { - "provider": "US State Department - Bureau of Counterterrorism", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "cisa-cybersecurity-advisories": { - "provider": "CISA - Cybersecurity Alerts & Advisories", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "us-house-homeland-security": { - "provider": "US House Committee on Homeland Security - Press", - "lane": "oversight", - "kind": "html", - "lastCheckedAt": "2026-05-01T15:41:41.977Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 1, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 6, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-05-01T15:41:41.977Z", - "lastEmptyAt": "2026-04-25T18:18:46.639Z", - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T04:16:22.766Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-26T08:16:04.847Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T14:17:09.800Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-29T14:19:24.095Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-05-01T15:41:41.977Z" - } - ], - "cooldownUntil": "2026-05-03T15:41:41.977Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-05-01T15:41:41.977Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-03T15:41:41.977Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "us-treasury-ofac-press-releases": { - "provider": "U.S. Treasury (OFAC) - Press Releases", - "lane": "sanctions", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "us-treasury-ofac-recent-actions": { - "provider": "U.S. Treasury (OFAC) - Recent Actions", - "lane": "sanctions", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 75, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 75, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T08:12:34.064Z" - }, - "requested-rss-feed-48d28e8f4091": { - "provider": "RSS Feed", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T15:47:12.538Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "cooldownUntil": "2026-05-02T15:47:12.538Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T15:47:12.538Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "requested-rss-feed-c34c5c93b43b": { - "provider": "RSS Feed", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T15:47:12.538Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T22:06:21.687Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "cooldownUntil": "2026-05-02T15:47:12.538Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T15:47:12.538Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "requested-rss-feed-b3c5f204dee8": { - "provider": "RSS Feed", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "requested-neighbourhood-alerts-feed-8ad5321239de": { - "provider": "Neighbourhood Alerts Feed", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T15:47:12.538Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastEmptyAt": null, - "lastErrorCategory": "anti-bot-protection", - "lastErrorMessage": "Blocked by anti-bot protection", - "recentErrors": [ - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-25T23:11:29.749Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "anti-bot-protection", - "message": "Blocked by anti-bot protection", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "cooldownUntil": "2026-05-02T15:47:12.538Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", - "nextFetchAt": "2026-05-02T15:47:12.538Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "requested-rss-feed-364751d1cc8d": { - "provider": "RSS Feed", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" - }, - "requested-news-national-police-air-service-4c2fff6ba6c7": { - "provider": "News | National Police Air Service", - "lane": "context", - "kind": "html", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 79, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 79, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 0, - "quarantined": false, - "quarantinedAt": null, - "quarantineReason": null, - "nextFetchAt": "2026-05-02T07:49:34.064Z" - }, - "requested-rss-feed-3f8b8535297b": { - "provider": "RSS Feed", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-04-30T15:47:12.538Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 0, - "failedRuns": 6, - "consecutiveFailures": 6, - "consecutiveEmptyRuns": 0, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": "2026-04-30T15:47:12.538Z", - "lastEmptyAt": null, - "lastErrorCategory": "brittle-selectors-or-js-rendering", - "lastErrorMessage": "No items parsed from source payload", - "recentErrors": [ - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-25T19:40:51.795Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-26T00:07:42.332Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-27T04:20:08.357Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-28T17:20:23.454Z" - }, - { - "category": "brittle-selectors-or-js-rendering", - "message": "No items parsed from source payload", - "at": "2026-04-30T15:47:12.538Z" - } - ], - "cooldownUntil": "2026-05-02T15:47:12.538Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 0, - "quarantined": true, - "quarantinedAt": "2026-04-30T15:47:12.538Z", - "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", - "nextFetchAt": "2026-05-02T15:47:12.538Z", - "lastDeferredAt": "2026-05-02T07:12:34.064Z" - }, - "requested-bsc-policing-network-f5c77a83a91e": { - "provider": "BSC Policing Network", - "lane": "context", - "kind": "rss", - "lastCheckedAt": "2026-05-02T07:12:34.064Z", - "lastBuiltCount": 0, - "successfulRuns": 0, - "emptyRuns": 20, - "failedRuns": 0, - "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, - "consecutiveBlockedFailures": 0, - "consecutiveDeadUrlFailures": 0, - "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": null, - "lastFailureAt": null, - "lastEmptyAt": "2026-05-02T07:12:34.064Z", - "lastErrorCategory": null, - "lastErrorMessage": null, - "recentErrors": [], - "cooldownUntil": "2026-05-02T19:12:34.064Z", - "autoSkipReason": "empty-cooldown", - "healthScore": 20, + "healthScore": 90, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-05-02T19:12:34.064Z" + "nextFetchAt": "2026-05-02T12:09:54.057Z" } } } diff --git a/source-quarantine.html b/source-quarantine.html index 8ba3fa13..ea7f073d 100644 --- a/source-quarantine.html +++ b/source-quarantine.html @@ -269,13 +269,13 @@

Source Quarantine Review

- Generated: 2026-05-02T07:12:34.064Z - Low-health sources: 205 + Generated: 2026-05-02T08:41:54.057Z + Low-health sources: 0 Pending suggestions: 0 SLA: deprioritised, auto-recheck 24h+ - New this week: 202 - Avg health score: 1/100 - Avg time in quarantine: 25h + New this week: 0 + Avg health score: 0/100 + Avg time in quarantine: 0h Re-quarantine rate: 0%
@@ -455,7 +455,7 @@

Feed Audit

? 'Data mode: live API (restore enabled)' : 'Data mode: live read-only (restore unavailable)'; meta.innerHTML = [ - 'Generated: ' + escapeHtml(payload.generatedAt || '2026-05-02T07:12:34.064Z') + '', + 'Generated: ' + escapeHtml(payload.generatedAt || '2026-05-02T08:41:54.057Z') + '', 'Low-health sources: ' + escapeHtml(currentEntries.length) + '', 'Pending suggestions: ' + escapeHtml(currentSuggestions.length) + '', 'SLA: deprioritised, auto-recheck 24h+', From ff3530f5c43f8c111f4ffb2317c0981443207cbb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 2 May 2026 08:47:19 +0000 Subject: [PATCH 2/4] Replace Leaflet with locations panel Agent-Logs-Url: https://github.com/potemkin666/AlbertAlert/sessions/c41dfd9b-638a-42ed-a740-0645eb9fa650 Co-authored-by: potemkin666 <183807833+potemkin666@users.noreply.github.com> --- app/boot/elements.mjs | 2 +- assets/vendor/leaflet/LICENSE | 26 - assets/vendor/leaflet/leaflet.css | 661 ------------------ assets/vendor/leaflet/leaflet.js | 6 - index.html | 14 +- shared/map-watch.mjs | 919 ++++++------------------- styles.css | 403 +++-------- tests/leaflet-sri.test.mjs | 39 +- tests/location-panel.test.mjs | 110 +++ tests/map-improvements.test.mjs | 300 -------- tests/map-popup-accessibility.test.mjs | 79 --- tests/nearby-map-mode.test.mjs | 2 +- 12 files changed, 435 insertions(+), 2126 deletions(-) delete mode 100644 assets/vendor/leaflet/LICENSE delete mode 100644 assets/vendor/leaflet/leaflet.css delete mode 100644 assets/vendor/leaflet/leaflet.js create mode 100644 tests/location-panel.test.mjs delete mode 100644 tests/map-improvements.test.mjs delete mode 100644 tests/map-popup-accessibility.test.mjs diff --git a/app/boot/elements.mjs b/app/boot/elements.mjs index 6807f7cb..0a2c45bf 100644 --- a/app/boot/elements.mjs +++ b/app/boot/elements.mjs @@ -19,7 +19,7 @@ export function createElements() { heroWeatherTemp: document.getElementById('hero-weather-temp'), heroWeatherSummary: document.getElementById('hero-weather-summary'), heroWeatherMeta: document.getElementById('hero-weather-meta'), - mapElement: document.getElementById('leaflet-map'), + mapElement: document.getElementById('locations-panel'), mapPanelSurface: document.getElementById('map-panel-surface'), mapStatusLine: document.getElementById('map-status-line'), mapEmptyState: document.getElementById('map-empty-state'), diff --git a/assets/vendor/leaflet/LICENSE b/assets/vendor/leaflet/LICENSE deleted file mode 100644 index bcb3ba1a..00000000 --- a/assets/vendor/leaflet/LICENSE +++ /dev/null @@ -1,26 +0,0 @@ -BSD 2-Clause License - -Copyright (c) 2010-2023, Volodymyr Agafonkin -Copyright (c) 2010-2011, CloudMade -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/assets/vendor/leaflet/leaflet.css b/assets/vendor/leaflet/leaflet.css deleted file mode 100644 index 2961b761..00000000 --- a/assets/vendor/leaflet/leaflet.css +++ /dev/null @@ -1,661 +0,0 @@ -/* required styles */ - -.leaflet-pane, -.leaflet-tile, -.leaflet-marker-icon, -.leaflet-marker-shadow, -.leaflet-tile-container, -.leaflet-pane > svg, -.leaflet-pane > canvas, -.leaflet-zoom-box, -.leaflet-image-layer, -.leaflet-layer { - position: absolute; - left: 0; - top: 0; - } -.leaflet-container { - overflow: hidden; - } -.leaflet-tile, -.leaflet-marker-icon, -.leaflet-marker-shadow { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - -webkit-user-drag: none; - } -/* Prevents IE11 from highlighting tiles in blue */ -.leaflet-tile::selection { - background: transparent; -} -/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ -.leaflet-safari .leaflet-tile { - image-rendering: -webkit-optimize-contrast; - } -/* hack that prevents hw layers "stretching" when loading new tiles */ -.leaflet-safari .leaflet-tile-container { - width: 1600px; - height: 1600px; - -webkit-transform-origin: 0 0; - } -.leaflet-marker-icon, -.leaflet-marker-shadow { - display: block; - } -/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ -/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ -.leaflet-container .leaflet-overlay-pane svg { - max-width: none !important; - max-height: none !important; - } -.leaflet-container .leaflet-marker-pane img, -.leaflet-container .leaflet-shadow-pane img, -.leaflet-container .leaflet-tile-pane img, -.leaflet-container img.leaflet-image-layer, -.leaflet-container .leaflet-tile { - max-width: none !important; - max-height: none !important; - width: auto; - padding: 0; - } - -.leaflet-container img.leaflet-tile { - /* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */ - mix-blend-mode: plus-lighter; -} - -.leaflet-container.leaflet-touch-zoom { - -ms-touch-action: pan-x pan-y; - touch-action: pan-x pan-y; - } -.leaflet-container.leaflet-touch-drag { - -ms-touch-action: pinch-zoom; - /* Fallback for FF which doesn't support pinch-zoom */ - touch-action: none; - touch-action: pinch-zoom; -} -.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { - -ms-touch-action: none; - touch-action: none; -} -.leaflet-container { - -webkit-tap-highlight-color: transparent; -} -.leaflet-container a { - -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); -} -.leaflet-tile { - filter: inherit; - visibility: hidden; - } -.leaflet-tile-loaded { - visibility: inherit; - } -.leaflet-zoom-box { - width: 0; - height: 0; - -moz-box-sizing: border-box; - box-sizing: border-box; - z-index: 800; - } -/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ -.leaflet-overlay-pane svg { - -moz-user-select: none; - } - -.leaflet-pane { z-index: 400; } - -.leaflet-tile-pane { z-index: 200; } -.leaflet-overlay-pane { z-index: 400; } -.leaflet-shadow-pane { z-index: 500; } -.leaflet-marker-pane { z-index: 600; } -.leaflet-tooltip-pane { z-index: 650; } -.leaflet-popup-pane { z-index: 700; } - -.leaflet-map-pane canvas { z-index: 100; } -.leaflet-map-pane svg { z-index: 200; } - -.leaflet-vml-shape { - width: 1px; - height: 1px; - } -.lvml { - behavior: url(#default#VML); - display: inline-block; - position: absolute; - } - - -/* control positioning */ - -.leaflet-control { - position: relative; - z-index: 800; - pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ - pointer-events: auto; - } -.leaflet-top, -.leaflet-bottom { - position: absolute; - z-index: 1000; - pointer-events: none; - } -.leaflet-top { - top: 0; - } -.leaflet-right { - right: 0; - } -.leaflet-bottom { - bottom: 0; - } -.leaflet-left { - left: 0; - } -.leaflet-control { - float: left; - clear: both; - } -.leaflet-right .leaflet-control { - float: right; - } -.leaflet-top .leaflet-control { - margin-top: 10px; - } -.leaflet-bottom .leaflet-control { - margin-bottom: 10px; - } -.leaflet-left .leaflet-control { - margin-left: 10px; - } -.leaflet-right .leaflet-control { - margin-right: 10px; - } - - -/* zoom and fade animations */ - -.leaflet-fade-anim .leaflet-popup { - opacity: 0; - -webkit-transition: opacity 0.2s linear; - -moz-transition: opacity 0.2s linear; - transition: opacity 0.2s linear; - } -.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { - opacity: 1; - } -.leaflet-zoom-animated { - -webkit-transform-origin: 0 0; - -ms-transform-origin: 0 0; - transform-origin: 0 0; - } -svg.leaflet-zoom-animated { - will-change: transform; -} - -.leaflet-zoom-anim .leaflet-zoom-animated { - -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); - -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); - transition: transform 0.25s cubic-bezier(0,0,0.25,1); - } -.leaflet-zoom-anim .leaflet-tile, -.leaflet-pan-anim .leaflet-tile { - -webkit-transition: none; - -moz-transition: none; - transition: none; - } - -.leaflet-zoom-anim .leaflet-zoom-hide { - visibility: hidden; - } - - -/* cursors */ - -.leaflet-interactive { - cursor: pointer; - } -.leaflet-grab { - cursor: -webkit-grab; - cursor: -moz-grab; - cursor: grab; - } -.leaflet-crosshair, -.leaflet-crosshair .leaflet-interactive { - cursor: crosshair; - } -.leaflet-popup-pane, -.leaflet-control { - cursor: auto; - } -.leaflet-dragging .leaflet-grab, -.leaflet-dragging .leaflet-grab .leaflet-interactive, -.leaflet-dragging .leaflet-marker-draggable { - cursor: move; - cursor: -webkit-grabbing; - cursor: -moz-grabbing; - cursor: grabbing; - } - -/* marker & overlays interactivity */ -.leaflet-marker-icon, -.leaflet-marker-shadow, -.leaflet-image-layer, -.leaflet-pane > svg path, -.leaflet-tile-container { - pointer-events: none; - } - -.leaflet-marker-icon.leaflet-interactive, -.leaflet-image-layer.leaflet-interactive, -.leaflet-pane > svg path.leaflet-interactive, -svg.leaflet-image-layer.leaflet-interactive path { - pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ - pointer-events: auto; - } - -/* visual tweaks */ - -.leaflet-container { - background: #ddd; - outline-offset: 1px; - } -.leaflet-container a { - color: #0078A8; - } -.leaflet-zoom-box { - border: 2px dotted #38f; - background: rgba(255,255,255,0.5); - } - - -/* general typography */ -.leaflet-container { - font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; - font-size: 12px; - font-size: 0.75rem; - line-height: 1.5; - } - - -/* general toolbar styles */ - -.leaflet-bar { - box-shadow: 0 1px 5px rgba(0,0,0,0.65); - border-radius: 4px; - } -.leaflet-bar a { - background-color: #fff; - border-bottom: 1px solid #ccc; - width: 26px; - height: 26px; - line-height: 26px; - display: block; - text-align: center; - text-decoration: none; - color: black; - } -.leaflet-bar a, -.leaflet-control-layers-toggle { - background-position: 50% 50%; - background-repeat: no-repeat; - display: block; - } -.leaflet-bar a:hover, -.leaflet-bar a:focus { - background-color: #f4f4f4; - } -.leaflet-bar a:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; - } -.leaflet-bar a:last-child { - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - border-bottom: none; - } -.leaflet-bar a.leaflet-disabled { - cursor: default; - background-color: #f4f4f4; - color: #bbb; - } - -.leaflet-touch .leaflet-bar a { - width: 30px; - height: 30px; - line-height: 30px; - } -.leaflet-touch .leaflet-bar a:first-child { - border-top-left-radius: 2px; - border-top-right-radius: 2px; - } -.leaflet-touch .leaflet-bar a:last-child { - border-bottom-left-radius: 2px; - border-bottom-right-radius: 2px; - } - -/* zoom control */ - -.leaflet-control-zoom-in, -.leaflet-control-zoom-out { - font: bold 18px 'Lucida Console', Monaco, monospace; - text-indent: 1px; - } - -.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out { - font-size: 22px; - } - - -/* layers control */ - -.leaflet-control-layers { - box-shadow: 0 1px 5px rgba(0,0,0,0.4); - background: #fff; - border-radius: 5px; - } -.leaflet-control-layers-toggle { - background-image: url(images/layers.png); - width: 36px; - height: 36px; - } -.leaflet-retina .leaflet-control-layers-toggle { - background-image: url(images/layers-2x.png); - background-size: 26px 26px; - } -.leaflet-touch .leaflet-control-layers-toggle { - width: 44px; - height: 44px; - } -.leaflet-control-layers .leaflet-control-layers-list, -.leaflet-control-layers-expanded .leaflet-control-layers-toggle { - display: none; - } -.leaflet-control-layers-expanded .leaflet-control-layers-list { - display: block; - position: relative; - } -.leaflet-control-layers-expanded { - padding: 6px 10px 6px 6px; - color: #333; - background: #fff; - } -.leaflet-control-layers-scrollbar { - overflow-y: scroll; - overflow-x: hidden; - padding-right: 5px; - } -.leaflet-control-layers-selector { - margin-top: 2px; - position: relative; - top: 1px; - } -.leaflet-control-layers label { - display: block; - font-size: 13px; - font-size: 1.08333em; - } -.leaflet-control-layers-separator { - height: 0; - border-top: 1px solid #ddd; - margin: 5px -10px 5px -6px; - } - -/* Default icon URLs */ -.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */ - background-image: url(images/marker-icon.png); - } - - -/* attribution and scale controls */ - -.leaflet-container .leaflet-control-attribution { - background: #fff; - background: rgba(255, 255, 255, 0.8); - margin: 0; - } -.leaflet-control-attribution, -.leaflet-control-scale-line { - padding: 0 5px; - color: #333; - line-height: 1.4; - } -.leaflet-control-attribution a { - text-decoration: none; - } -.leaflet-control-attribution a:hover, -.leaflet-control-attribution a:focus { - text-decoration: underline; - } -.leaflet-attribution-flag { - display: inline !important; - vertical-align: baseline !important; - width: 1em; - height: 0.6669em; - } -.leaflet-left .leaflet-control-scale { - margin-left: 5px; - } -.leaflet-bottom .leaflet-control-scale { - margin-bottom: 5px; - } -.leaflet-control-scale-line { - border: 2px solid #777; - border-top: none; - line-height: 1.1; - padding: 2px 5px 1px; - white-space: nowrap; - -moz-box-sizing: border-box; - box-sizing: border-box; - background: rgba(255, 255, 255, 0.8); - text-shadow: 1px 1px #fff; - } -.leaflet-control-scale-line:not(:first-child) { - border-top: 2px solid #777; - border-bottom: none; - margin-top: -2px; - } -.leaflet-control-scale-line:not(:first-child):not(:last-child) { - border-bottom: 2px solid #777; - } - -.leaflet-touch .leaflet-control-attribution, -.leaflet-touch .leaflet-control-layers, -.leaflet-touch .leaflet-bar { - box-shadow: none; - } -.leaflet-touch .leaflet-control-layers, -.leaflet-touch .leaflet-bar { - border: 2px solid rgba(0,0,0,0.2); - background-clip: padding-box; - } - - -/* popup */ - -.leaflet-popup { - position: absolute; - text-align: center; - margin-bottom: 20px; - } -.leaflet-popup-content-wrapper { - padding: 1px; - text-align: left; - border-radius: 12px; - } -.leaflet-popup-content { - margin: 13px 24px 13px 20px; - line-height: 1.3; - font-size: 13px; - font-size: 1.08333em; - min-height: 1px; - } -.leaflet-popup-content p { - margin: 17px 0; - margin: 1.3em 0; - } -.leaflet-popup-tip-container { - width: 40px; - height: 20px; - position: absolute; - left: 50%; - margin-top: -1px; - margin-left: -20px; - overflow: hidden; - pointer-events: none; - } -.leaflet-popup-tip { - width: 17px; - height: 17px; - padding: 1px; - - margin: -10px auto 0; - pointer-events: auto; - - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - -ms-transform: rotate(45deg); - transform: rotate(45deg); - } -.leaflet-popup-content-wrapper, -.leaflet-popup-tip { - background: white; - color: #333; - box-shadow: 0 3px 14px rgba(0,0,0,0.4); - } -.leaflet-container a.leaflet-popup-close-button { - position: absolute; - top: 0; - right: 0; - border: none; - text-align: center; - width: 24px; - height: 24px; - font: 16px/24px Tahoma, Verdana, sans-serif; - color: #757575; - text-decoration: none; - background: transparent; - } -.leaflet-container a.leaflet-popup-close-button:hover, -.leaflet-container a.leaflet-popup-close-button:focus { - color: #585858; - } -.leaflet-popup-scrolled { - overflow: auto; - } - -.leaflet-oldie .leaflet-popup-content-wrapper { - -ms-zoom: 1; - } -.leaflet-oldie .leaflet-popup-tip { - width: 24px; - margin: 0 auto; - - -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; - filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); - } - -.leaflet-oldie .leaflet-control-zoom, -.leaflet-oldie .leaflet-control-layers, -.leaflet-oldie .leaflet-popup-content-wrapper, -.leaflet-oldie .leaflet-popup-tip { - border: 1px solid #999; - } - - -/* div icon */ - -.leaflet-div-icon { - background: #fff; - border: 1px solid #666; - } - - -/* Tooltip */ -/* Base styles for the element that has a tooltip */ -.leaflet-tooltip { - position: absolute; - padding: 6px; - background-color: #fff; - border: 1px solid #fff; - border-radius: 3px; - color: #222; - white-space: nowrap; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - pointer-events: none; - box-shadow: 0 1px 3px rgba(0,0,0,0.4); - } -.leaflet-tooltip.leaflet-interactive { - cursor: pointer; - pointer-events: auto; - } -.leaflet-tooltip-top:before, -.leaflet-tooltip-bottom:before, -.leaflet-tooltip-left:before, -.leaflet-tooltip-right:before { - position: absolute; - pointer-events: none; - border: 6px solid transparent; - background: transparent; - content: ""; - } - -/* Directions */ - -.leaflet-tooltip-bottom { - margin-top: 6px; -} -.leaflet-tooltip-top { - margin-top: -6px; -} -.leaflet-tooltip-bottom:before, -.leaflet-tooltip-top:before { - left: 50%; - margin-left: -6px; - } -.leaflet-tooltip-top:before { - bottom: 0; - margin-bottom: -12px; - border-top-color: #fff; - } -.leaflet-tooltip-bottom:before { - top: 0; - margin-top: -12px; - margin-left: -6px; - border-bottom-color: #fff; - } -.leaflet-tooltip-left { - margin-left: -6px; -} -.leaflet-tooltip-right { - margin-left: 6px; -} -.leaflet-tooltip-left:before, -.leaflet-tooltip-right:before { - top: 50%; - margin-top: -6px; - } -.leaflet-tooltip-left:before { - right: 0; - margin-right: -12px; - border-left-color: #fff; - } -.leaflet-tooltip-right:before { - left: 0; - margin-left: -12px; - border-right-color: #fff; - } - -/* Printing */ - -@media print { - /* Prevent printers from removing background-images of controls. */ - .leaflet-control { - -webkit-print-color-adjust: exact; - print-color-adjust: exact; - } - } diff --git a/assets/vendor/leaflet/leaflet.js b/assets/vendor/leaflet/leaflet.js deleted file mode 100644 index a3bf693d..00000000 --- a/assets/vendor/leaflet/leaflet.js +++ /dev/null @@ -1,6 +0,0 @@ -/* @preserve - * Leaflet 1.9.4, a JS library for interactive maps. https://leafletjs.com - * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade - */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).leaflet={})}(this,function(t){"use strict";function l(t){for(var e,i,n=1,o=arguments.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>=e.x&&n.x<=i.x,t=t.y>=e.y&&n.y<=i.y;return o&&t},overlaps:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>=e.lat&&n.lat<=i.lat,t=t.lng>=e.lng&&n.lng<=i.lng;return o&&t},overlaps:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>e.lat&&n.late.lng&&n.lng","http://www.w3.org/2000/svg"===(Wt.firstChild&&Wt.firstChild.namespaceURI));function y(t){return 0<=navigator.userAgent.toLowerCase().indexOf(t)}var b={ie:pt,ielt9:mt,edge:n,webkit:ft,android:gt,android23:vt,androidStock:yt,opera:xt,chrome:wt,gecko:bt,safari:Pt,phantom:Lt,opera12:o,win:Tt,ie3d:Mt,webkit3d:zt,gecko3d:_t,any3d:Ct,mobile:Zt,mobileWebkit:St,mobileWebkit3d:Et,msPointer:kt,pointer:Ot,touch:Bt,touchNative:At,mobileOpera:It,mobileGecko:Rt,retina:Nt,passiveEvents:Dt,canvas:jt,svg:Ht,vml:!Ht&&function(){try{var t=document.createElement("div"),e=(t.innerHTML='',t.firstChild);return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}(),inlineSvg:Wt,mac:0===navigator.platform.indexOf("Mac"),linux:0===navigator.platform.indexOf("Linux")},Ft=b.msPointer?"MSPointerDown":"pointerdown",Ut=b.msPointer?"MSPointerMove":"pointermove",Vt=b.msPointer?"MSPointerUp":"pointerup",qt=b.msPointer?"MSPointerCancel":"pointercancel",Gt={touchstart:Ft,touchmove:Ut,touchend:Vt,touchcancel:qt},Kt={touchstart:function(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&O(e);ee(t,e)},touchmove:ee,touchend:ee,touchcancel:ee},Yt={},Xt=!1;function Jt(t,e,i){return"touchstart"!==e||Xt||(document.addEventListener(Ft,$t,!0),document.addEventListener(Ut,Qt,!0),document.addEventListener(Vt,te,!0),document.addEventListener(qt,te,!0),Xt=!0),Kt[e]?(i=Kt[e].bind(this,i),t.addEventListener(Gt[e],i,!1),i):(console.warn("wrong event specified:",e),u)}function $t(t){Yt[t.pointerId]=t}function Qt(t){Yt[t.pointerId]&&(Yt[t.pointerId]=t)}function te(t){delete Yt[t.pointerId]}function ee(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){for(var i in e.touches=[],Yt)e.touches.push(Yt[i]);e.changedTouches=[e],t(e)}}var ie=200;function ne(t,i){t.addEventListener("dblclick",i);var n,o=0;function e(t){var e;1!==t.detail?n=t.detail:"mouse"===t.pointerType||t.sourceCapabilities&&!t.sourceCapabilities.firesTouchEvents||((e=Ne(t)).some(function(t){return t instanceof HTMLLabelElement&&t.attributes.for})&&!e.some(function(t){return t instanceof HTMLInputElement||t instanceof HTMLSelectElement})||((e=Date.now())-o<=ie?2===++n&&i(function(t){var e,i,n={};for(i in t)e=t[i],n[i]=e&&e.bind?e.bind(t):e;return(t=n).type="dblclick",n.detail=2,n.isTrusted=!1,n._simulated=!0,n}(t)):n=1,o=e))}return t.addEventListener("click",e),{dblclick:i,simDblclick:e}}var oe,se,re,ae,he,le,ue=we(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),ce=we(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),de="webkitTransition"===ce||"OTransition"===ce?ce+"End":"transitionend";function _e(t){return"string"==typeof t?document.getElementById(t):t}function pe(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];return"auto"===(i=i&&"auto"!==i||!document.defaultView?i:(t=document.defaultView.getComputedStyle(t,null))?t[e]:null)?null:i}function P(t,e,i){t=document.createElement(t);return t.className=e||"",i&&i.appendChild(t),t}function T(t){var e=t.parentNode;e&&e.removeChild(t)}function me(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function fe(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function ge(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function ve(t,e){return void 0!==t.classList?t.classList.contains(e):0<(t=xe(t)).length&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(t)}function M(t,e){var i;if(void 0!==t.classList)for(var n=F(e),o=0,s=n.length;othis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),t=this._limitCenter(i,this._zoom,g(t));return i.equals(t)||this.panTo(t,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=m((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=m(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),t=this.project(t),s=this.getPixelBounds(),i=_([s.min.add(i),s.max.subtract(n)]),s=i.getSize();return i.contains(t)||(this._enforcingBounds=!0,n=t.subtract(i.getCenter()),i=i.extend(t).getSize().subtract(s),o.x+=n.x<0?-i.x:i.x,o.y+=n.y<0?-i.y:i.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1),this},invalidateSize:function(t){if(!this._loaded)return this;t=l({animate:!1,pan:!0},!0===t?{animate:!0}:t);var e=this.getSize(),i=(this._sizeChanged=!0,this._lastCenter=null,this.getSize()),n=e.divideBy(2).round(),o=i.divideBy(2).round(),n=n.subtract(o);return n.x||n.y?(t.animate&&t.pan?this.panBy(n):(t.pan&&this._rawPanBy(n),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(a(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:i})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){var e,i;return t=this._locateOptions=l({timeout:1e4,watch:!1},t),"geolocation"in navigator?(e=a(this._handleGeolocationResponse,this),i=a(this._handleGeolocationError,this),t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t)):this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e;this._container._leaflet_id&&(e=t.code,t=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout"),this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+t+"."}))},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e,i,n=new v(t.coords.latitude,t.coords.longitude),o=n.toBounds(2*t.coords.accuracy),s=this._locateOptions,r=(s.setView&&(e=this.getBoundsZoom(o),this.setView(n,s.maxZoom?Math.min(e,s.maxZoom):e)),{latlng:n,bounds:o,timestamp:t.timestamp});for(i in t.coords)"number"==typeof t.coords[i]&&(r[i]=t.coords[i]);this.fire("locationfound",r)}},addHandler:function(t,e){return e&&(e=this[t]=new e(this),this._handlers.push(e),this.options[t]&&e.enable()),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}for(var t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),T(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(r(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)T(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){e=P("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=e),e},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new s(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=g(t),i=m(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),t=t.getSouthEast(),i=this.getSize().subtract(i),t=_(this.project(t,n),this.project(r,n)).getSize(),r=b.any3d?this.options.zoomSnap:1,a=i.x/t.x,i=i.y/t.y,t=e?Math.max(a,i):Math.min(a,i),n=this.getScaleZoom(t,n);return r&&(n=Math.round(n/(r/100))*(r/100),n=e?Math.ceil(n/r)*r:Math.floor(n/r)*r),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new p(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){t=this._getTopLeftPoint(t,e);return new f(t,t.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs,t=(e=void 0===e?this._zoom:e,i.zoom(t*i.scale(e)));return isNaN(t)?1/0:t},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(w(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(m(t),e)},layerPointToLatLng:function(t){t=m(t).add(this.getPixelOrigin());return this.unproject(t)},latLngToLayerPoint:function(t){return this.project(w(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(w(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(g(t))},distance:function(t,e){return this.options.crs.distance(w(t),w(e))},containerPointToLayerPoint:function(t){return m(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return m(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){t=this.containerPointToLayerPoint(m(t));return this.layerPointToLatLng(t)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(w(t)))},mouseEventToContainerPoint:function(t){return De(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){t=this._container=_e(t);if(!t)throw new Error("Map container not found.");if(t._leaflet_id)throw new Error("Map container is already initialized.");S(t,"scroll",this._onScroll,this),this._containerId=h(t)},_initLayout:function(){var t=this._container,e=(this._fadeAnimated=this.options.fadeAnimation&&b.any3d,M(t,"leaflet-container"+(b.touch?" leaflet-touch":"")+(b.retina?" leaflet-retina":"")+(b.ielt9?" leaflet-oldie":"")+(b.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":"")),pe(t,"position"));"absolute"!==e&&"relative"!==e&&"fixed"!==e&&"sticky"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Z(this._mapPane,new p(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(M(t.markerPane,"leaflet-zoom-hide"),M(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e,i){Z(this._mapPane,new p(0,0));var n=!this._loaded,o=(this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset"),this._zoom!==e);this._moveStart(o,i)._move(t,e)._moveEnd(o),this.fire("viewreset"),n&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i,n){void 0===e&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire("zoom",i):((o||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return r(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Z(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={};var e=t?k:S;e((this._targets[h(this._container)]=this)._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),b.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){r(this._resizeRequest),this._resizeRequest=x(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,s=t.target||t.srcElement,r=!1;s;){if((i=this._targets[h(s)])&&("click"===e||"preclick"===e)&&this._draggableMoved(i)){r=!0;break}if(i&&i.listens(e,!0)){if(o&&!We(s,t))break;if(n.push(i),o)break}if(s===this._container)break;s=s.parentNode}return n=n.length||r||o||!this.listens(e,!0)?n:[this]},_isClickDisabled:function(t){for(;t&&t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e,i=t.target||t.srcElement;!this._loaded||i._leaflet_disable_events||"click"===t.type&&this._isClickDisabled(i)||("mousedown"===(e=t.type)&&Me(i),this._fireDOMEvent(t,e))},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,i){"click"===t.type&&((a=l({},t)).type="preclick",this._fireDOMEvent(a,a.type,i));var n=this._findEventTargets(t,e);if(i){for(var o=[],s=0;sthis.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),n=this._getCenterOffset(t)._divideBy(1-1/n);if(!0!==i.animate&&!this.getSize().contains(n))return!1;x(function(){this._moveStart(!0,i.noMoveStart||!1)._animateZoom(t,e,!0)},this)}return!0},_animateZoom:function(t,e,i,n){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,M(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(a(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&z(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function Ue(t){return new B(t)}var B=et.extend({options:{position:"topright"},initialize:function(t){c(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),t=t._controlCorners[i];return M(e,"leaflet-control"),-1!==i.indexOf("bottom")?t.insertBefore(e,t.firstChild):t.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map&&(T(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null),this},_refocusOnMap:function(t){this._map&&t&&0",e=document.createElement("div");return e.innerHTML=t,e.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer),n=(t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+h(this),n),this._layerControlInputs.push(e),e.layerId=h(t.layer),S(e,"click",this._onInputClick,this),document.createElement("span")),o=(n.innerHTML=" "+t.name,document.createElement("span"));return i.appendChild(o),o.appendChild(e),o.appendChild(n),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){if(!this._preventClick){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;0<=s;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;se.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section,e=(this._preventClick=!0,S(t,"click",O),this.expand(),this);setTimeout(function(){k(t,"click",O),e._preventClick=!1})}})),qe=B.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=P("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){i=P("a",i,n);return i.innerHTML=t,i.href="#",i.title=e,i.setAttribute("role","button"),i.setAttribute("aria-label",e),Ie(i),S(i,"click",Re),S(i,"click",o,this),S(i,"click",this._refocusOnMap,this),i},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";z(this._zoomInButton,e),z(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),!this._disabled&&t._zoom!==t.getMinZoom()||(M(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),!this._disabled&&t._zoom!==t.getMaxZoom()||(M(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}}),Ge=(A.mergeOptions({zoomControl:!0}),A.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new qe,this.addControl(this.zoomControl))}),B.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=P("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=P("div",e,i)),t.imperial&&(this._iScale=P("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,t=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(t)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t);this._updateScale(this._mScale,e<1e3?e+" m":e/1e3+" km",e/t)},_updateImperial:function(t){var e,i,t=3.2808399*t;5280'+(b.inlineSvg?' ':"")+"Leaflet"},initialize:function(t){c(this,t),this._attributions={}},onAdd:function(t){for(var e in(t.attributionControl=this)._container=P("div","leaflet-control-attribution"),Ie(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",function(){this.removeAttribution(t.layer.getAttribution())},this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t&&(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update()),this},removeAttribution:function(t){return t&&this._attributions[t]&&(this._attributions[t]--,this._update()),this},_update:function(){if(this._map){var t,e=[];for(t in this._attributions)this._attributions[t]&&e.push(t);var i=[];this.options.prefix&&i.push(this.options.prefix),e.length&&i.push(e.join(", ")),this._container.innerHTML=i.join(' ')}}}),n=(A.mergeOptions({attributionControl:!0}),A.addInitHook(function(){this.options.attributionControl&&(new Ke).addTo(this)}),B.Layers=Ve,B.Zoom=qe,B.Scale=Ge,B.Attribution=Ke,Ue.layers=function(t,e,i){return new Ve(t,e,i)},Ue.zoom=function(t){return new qe(t)},Ue.scale=function(t){return new Ge(t)},Ue.attribution=function(t){return new Ke(t)},et.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled&&(this._enabled=!1,this.removeHooks()),this},enabled:function(){return!!this._enabled}})),ft=(n.addTo=function(t,e){return t.addHandler(e,this),this},{Events:e}),Ye=b.touch?"touchstart mousedown":"mousedown",Xe=it.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){c(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(S(this._dragStartTarget,Ye,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Xe._dragging===this&&this.finishDrag(!0),k(this._dragStartTarget,Ye,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){var e,i;this._enabled&&(this._moved=!1,ve(this._element,"leaflet-zoom-anim")||(t.touches&&1!==t.touches.length?Xe._dragging===this&&this.finishDrag():Xe._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||((Xe._dragging=this)._preventOutline&&Me(this._element),Le(),re(),this._moving||(this.fire("down"),i=t.touches?t.touches[0]:t,e=Ce(this._element),this._startPoint=new p(i.clientX,i.clientY),this._startPos=Pe(this._element),this._parentScale=Ze(e),i="mousedown"===t.type,S(document,i?"mousemove":"touchmove",this._onMove,this),S(document,i?"mouseup":"touchend touchcancel",this._onUp,this)))))},_onMove:function(t){var e;this._enabled&&(t.touches&&1e&&(i.push(t[n]),o=n);oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function ri(t,e,i,n){var o=e.x,e=e.y,s=i.x-o,r=i.y-e,a=s*s+r*r;return 0this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()t.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(l=!l);return l||yi.prototype._containsPoint.call(this,t,!0)}});var wi=ci.extend({initialize:function(t,e){c(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=d(t)?t:t.features;if(o){for(e=0,i=o.length;es.x&&(r=i.x+a-s.x+o.x),i.x-r-n.x<(a=0)&&(r=i.x-n.x),i.y+e+o.y>s.y&&(a=i.y+e-s.y+o.y),i.y-a-n.y<0&&(a=i.y-n.y),(r||a)&&(this.options.keepInView&&(this._autopanning=!0),t.fire("autopanstart").panBy([r,a]))))},_getAnchor:function(){return m(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}})),Ii=(A.mergeOptions({closePopupOnClick:!0}),A.include({openPopup:function(t,e,i){return this._initOverlay(Bi,t,e,i).openOn(this),this},closePopup:function(t){return(t=arguments.length?t:this._popup)&&t.close(),this}}),o.include({bindPopup:function(t,e){return this._popup=this._initOverlay(Bi,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof ci||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e;this._popup&&this._map&&(Re(t),e=t.layer||t.target,this._popup._source!==e||e instanceof fi?(this._popup._source=e,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}}),Ai.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){Ai.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){Ai.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=Ai.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=P("div",t),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+h(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i=this._map,n=this._container,o=i.latLngToContainerPoint(i.getCenter()),i=i.layerPointToContainerPoint(t),s=this.options.direction,r=n.offsetWidth,a=n.offsetHeight,h=m(this.options.offset),l=this._getAnchor(),i="top"===s?(e=r/2,a):"bottom"===s?(e=r/2,0):(e="center"===s?r/2:"right"===s?0:"left"===s?r:i.xthis.options.maxZoom||nthis.options.maxZoom||void 0!==this.options.minZoom&&oi.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}return!this.options.bounds||(e=this._tileCoordsToBounds(t),g(this.options.bounds).overlaps(e))},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),i=n.add(i);return[e.unproject(n,t.z),e.unproject(i,t.z)]},_tileCoordsToBounds:function(t){t=this._tileCoordsToNwSe(t),t=new s(t[0],t[1]);return t=this.options.noWrap?t:this._map.wrapLatLngBounds(t)},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var t=t.split(":"),e=new p(+t[0],+t[1]);return e.z=+t[2],e},_removeTile:function(t){var e=this._tiles[t];e&&(T(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){M(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=u,t.onmousemove=u,b.ielt9&&this.options.opacity<1&&C(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),a(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&x(a(this._tileReady,this,t,null,o)),Z(o,i),this._tiles[n]={el:o,coords:t,current:!0},e.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);(i=this._tiles[n])&&(i.loaded=+new Date,this._map._fadeAnimated?(C(i.el,0),r(this._fadeFrame),this._fadeFrame=x(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(M(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),b.ielt9||!this._map._fadeAnimated?x(this._pruneTiles,this):setTimeout(a(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new p(this._wrapX?H(t.x,this._wrapX):t.x,this._wrapY?H(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new f(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var Di=Ni.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,(e=c(this,e)).detectRetina&&b.retina&&0')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),zt={_initContainer:function(){this._container=P("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(Wi.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=Vi("shape");M(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=Vi("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;T(e),t.removeInteractiveTarget(e),delete this._layers[h(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e=e||(t._stroke=Vi("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=d(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i=i||(t._fill=Vi("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){fe(t._container)},_bringToBack:function(t){ge(t._container)}},qi=b.vml?Vi:ct,Gi=Wi.extend({_initContainer:function(){this._container=qi("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=qi("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){T(this._container),k(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){var t,e,i;this._map._animatingZoom&&this._bounds||(Wi.prototype._update.call(this),e=(t=this._bounds).getSize(),i=this._container,this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),Z(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update"))},_initPath:function(t){var e=t._path=qi("path");t.options.className&&M(e,t.options.className),t.options.interactive&&M(e,"leaflet-interactive"),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){T(t._path),t.removeInteractiveTarget(t._path),delete this._layers[h(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,t=t.options;e&&(t.stroke?(e.setAttribute("stroke",t.color),e.setAttribute("stroke-opacity",t.opacity),e.setAttribute("stroke-width",t.weight),e.setAttribute("stroke-linecap",t.lineCap),e.setAttribute("stroke-linejoin",t.lineJoin),t.dashArray?e.setAttribute("stroke-dasharray",t.dashArray):e.removeAttribute("stroke-dasharray"),t.dashOffset?e.setAttribute("stroke-dashoffset",t.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),t.fill?(e.setAttribute("fill",t.fillColor||t.color),e.setAttribute("fill-opacity",t.fillOpacity),e.setAttribute("fill-rule",t.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,dt(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",e=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+n+2*i+",0 "+n+2*-i+",0 ";this._setPath(t,e)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){fe(t._path)},_bringToBack:function(t){ge(t._path)}});function Ki(t){return b.svg||b.vml?new Gi(t):null}b.vml&&Gi.include(zt),A.include({getRenderer:function(t){t=(t=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer)||(this._renderer=this._createRenderer());return this.hasLayer(t)||this.addLayer(t),t},_getPaneRenderer:function(t){var e;return"overlayPane"!==t&&void 0!==t&&(void 0===(e=this._paneRenderers[t])&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e)},_createRenderer:function(t){return this.options.preferCanvas&&Ui(t)||Ki(t)}});var Yi=xi.extend({initialize:function(t,e){xi.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=g(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});Gi.create=qi,Gi.pointsToPath=dt,wi.geometryToLayer=bi,wi.coordsToLatLng=Li,wi.coordsToLatLngs=Ti,wi.latLngToCoords=Mi,wi.latLngsToCoords=zi,wi.getFeature=Ci,wi.asFeature=Zi,A.mergeOptions({boxZoom:!0});var _t=n.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){S(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){k(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){T(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),re(),Le(),this._startPoint=this._map.mouseEventToContainerPoint(t),S(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=P("div","leaflet-zoom-box",this._container),M(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var t=new f(this._point,this._startPoint),e=t.getSize();Z(this._box,t.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(T(this._box),z(this._container,"leaflet-crosshair")),ae(),Te(),k(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){1!==t.which&&1!==t.button||(this._finish(),this._moved&&(this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(a(this._resetState,this),0),t=new s(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point)),this._map.fitBounds(t).fire("boxzoomend",{boxZoomBounds:t})))},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}}),Ct=(A.addInitHook("addHandler","boxZoom",_t),A.mergeOptions({doubleClickZoom:!0}),n.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,i=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(i):e.setZoomAround(t.containerPoint,i)}})),Zt=(A.addInitHook("addHandler","doubleClickZoom",Ct),A.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0}),n.extend({addHooks:function(){var t;this._draggable||(t=this._map,this._draggable=new Xe(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))),M(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){z(this._map._container,"leaflet-grab"),z(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t,e=this._map;e._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity?(t=g(this._map.options.maxBounds),this._offsetLimit=_(this._map.latLngToContainerPoint(t.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(t.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))):this._offsetLimit=null,e.fire("movestart").fire("dragstart"),e.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){var e,i;this._map.options.inertia&&(e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos,this._positions.push(i),this._times.push(e),this._prunePositions(e)),this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;1e.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t))},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,n=(n+e+i)%t-e-i,t=Math.abs(o+i)e.getMaxZoom()&&1 - + AlbertAlert @@ -13,7 +13,6 @@ - @@ -65,7 +64,7 @@

Albert watches