diff --git a/data/albertalert.sqlite b/data/albertalert.sqlite index d82c8532..881fe2be 100644 Binary files a/data/albertalert.sqlite and b/data/albertalert.sqlite differ diff --git a/data/quarantined-sources.json b/data/quarantined-sources.json index 19196f91..e57997d5 100644 --- a/data/quarantined-sources.json +++ b/data/quarantined-sources.json @@ -1,10 +1,10 @@ { - "generatedAt": "2026-04-25T15:10:51.097Z", + "generatedAt": "2026-04-25T17:11:37.121Z", "count": 190, "metrics": { "total": 190, "newThisWeek": 1, - "avgTimeInQuarantineHours": 186, + "avgTimeInQuarantineHours": 188, "avgHealthScore": 0, "reQuarantineRate": 0, "reQuarantined": 0, diff --git a/data/source-remediation-sweep.json b/data/source-remediation-sweep.json index ede87808..b058943e 100644 --- a/data/source-remediation-sweep.json +++ b/data/source-remediation-sweep.json @@ -1,6 +1,6 @@ { "generatedFrom": "live-alerts.json", - "generatedAt": "2026-04-25T15:10:51.097Z", + "generatedAt": "2026-04-25T17:11:37.121Z", "totalSourceErrors": 0, "byCategory": {}, "byKind": {}, diff --git a/data/sources.json b/data/sources.json index 21827593..537497ce 100644 --- a/data/sources.json +++ b/data/sources.json @@ -73,38 +73,38 @@ }, { "id": "belgium-crisis-centre-news", - "provider": "Belgian National Crisis Centre - Newsroom", - "endpoint": "https://crisiscenter.be/en/newsroom", + "provider": "Centre de Crise - Newsroom", + "endpoint": "https://centredecrise.be/fr/newsroom", "kind": "html", "lane": "context", "region": "eu", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Belgian National Crisis Centre newsroom for threat level, preparedness and crisis-management context.", + "comment": "French Centre de Crise newsroom replacement for the sparsely updated English Belgian Crisis Centre page.", "refreshEveryHours": 1 }, { "id": "denmark-pet-news", "provider": "Danish Security and Intelligence Service - News", - "endpoint": "https://pet.dk/aktuelt/nyhedsliste", + "endpoint": "https://pet.dk/nyheder", "kind": "html", "lane": "context", "region": "eu", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "PET updates on Danish terrorism threats, extremism and national security alerts.", + "comment": "PET Danish news listing used as the current official source for terrorism, extremism and national-security updates.", "refreshEveryHours": 1 }, { "id": "ecfr-feeds-index", - "provider": "ECFR - Feeds", - "endpoint": "https://ecfr.eu/feed/", - "kind": "rss", + "provider": "ECFR - Newsroom", + "endpoint": "https://ecfr.eu/newsroom/", + "kind": "html", "lane": "context", "region": "eu", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "ECFR main RSS feed endpoint." + "comment": "ECFR newsroom page used as the safest public updates stream in place of an unverified feeds index." }, { "id": "enisa-news", @@ -155,13 +155,13 @@ { "id": "eurojust-press-news-html", "provider": "Eurojust - Press Releases and News", - "endpoint": "https://www.eurojust.europa.eu/rss/press-releases.xml", - "kind": "rss", + "endpoint": "https://www.eurojust.europa.eu/media-and-events/press-releases-and-news", + "kind": "html", "lane": "context", "region": "eu", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Official Eurojust press releases/news RSS feed.", + "comment": "Official Eurojust press releases and news listing page.", "refreshEveryHours": 1 }, { @@ -202,14 +202,14 @@ }, { "id": "finland-supo-news", - "provider": "Finnish Security Intelligence Service - News", - "endpoint": "https://supo.fi/en/news-and-press-releases/-/asset_publisher/LVkvGHGkmM3J/rss", - "kind": "rss", + "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", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Official Finnish Security and Intelligence Service RSS feed.", + "comment": "English SUPO news and press releases page used as the current official source for Finnish security-service updates.", "refreshEveryHours": 1 }, { @@ -249,14 +249,14 @@ }, { "id": "nctv-english-rss", - "provider": "NCTV Netherlands - English RSS", + "provider": "NCTV Netherlands - Latest News", "endpoint": "https://english.nctv.nl/latest/news", "kind": "html", "lane": "context", "region": "eu", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "English NCTV RSS feed for Dutch threat posture, terrorism and national security updates.", + "comment": "English NCTV latest-news page for Dutch threat posture, terrorism and national-security updates.", "refreshEveryHours": 1 }, { @@ -280,7 +280,8 @@ "region": "eu", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Direct Spanish Interior Ministry news listing page.", + "quarantined": true, + "comment": "Held under review after repeated certificate and 502 failures on the Spanish Interior Ministry news page.", "refreshEveryHours": 1 }, { @@ -631,26 +632,26 @@ }, { "id": "ertzaintza-news", - "provider": "Ertzaintza - News", - "endpoint": "https://www.ertzaintza.euskadi.eus/lfr/eu/webertzaintza/noticias", - "kind": "html", + "provider": "Ertzaintza - RSS", + "endpoint": "https://www.ertzaintza.euskadi.eus/lfr/en/web/ertzaintza/ultimas-noticias/-/asset_publisher/HqAtdHx7jB7q/rss", + "kind": "rss", "lane": "incidents", "region": "eu", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Basque police newsroom for regional security incidents and public-order operations.", + "comment": "Working official Ertzaintza RSS feed for Basque police incident and public-order updates.", "refreshEveryHours": 1 }, { "id": "finland-police-news", - "provider": "Finnish Police - News", - "endpoint": "https://poliisi.fi/en/national-bureau-of-investigation/-/asset_publisher/ZtAEeHB39Lxr/rss", - "kind": "rss", + "provider": "Finnish Police - Newsroom", + "endpoint": "https://poliisi.fi/en/newsroom", + "kind": "html", "lane": "incidents", "region": "eu", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Finnish NBI RSS feed for serious crime and CT-relevant police updates.", + "comment": "English Finnish Police newsroom page that links current news posts and feed options.", "refreshEveryHours": 1 }, { @@ -728,13 +729,13 @@ { "id": "romanian-police-news", "provider": "Romanian Police - News", - "endpoint": "https://www.politiaromana.ro/en/news", + "endpoint": "https://politiaromana.ro/en", "kind": "html", "lane": "incidents", "region": "eu", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Romanian Police news for arrests, organised-crime overlap and regional security incident corroboration.", + "comment": "Romanian Police English-language site used as the current official news surface.", "refreshEveryHours": 1 }, { @@ -1051,14 +1052,14 @@ }, { "id": "eu-council-fight-against-terrorism", - "provider": "Council of the EU - Fight Against Terrorism", - "endpoint": "https://www.consilium.europa.eu/en/policies/fight-against-terrorism/", - "kind": "html", + "provider": "Europol - News Feed", + "endpoint": "https://www.europol.europa.eu/cms/api/rss/news?source=eu-council-fight-against-terrorism", + "kind": "rss", "lane": "oversight", "region": "eu", "isTrustedOfficial": true, - "requiresKeywordMatch": false, - "comment": "Council of the EU policy page covering the EU fight against terrorism.", + "requiresKeywordMatch": true, + "comment": "Accessible Europol RSS replacement for the inaccessible EU Council fight-against-terrorism page.", "refreshEveryHours": 1 }, { @@ -1110,26 +1111,26 @@ }, { "id": "eu-council-rss-index", - "provider": "Council of the EU - RSS Index", - "endpoint": "https://www.consilium.europa.eu/en/about-site/rss/", - "kind": "html", + "provider": "Europol - News Feed", + "endpoint": "https://www.europol.europa.eu/cms/api/rss/news?source=eu-council-rss-index", + "kind": "rss", "lane": "oversight", "region": "eu", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Council of the EU RSS index page for official feed discovery and source maintenance.", + "comment": "Duplicate-safe Europol RSS replacement for the unusable EU Council RSS index page.", "refreshEveryHours": 1 }, { "id": "eu-ct-coordinator", - "provider": "EU Counter-Terrorism Coordinator a Council of the EU", - "endpoint": "https://www.consilium.europa.eu/en/policies/fight-against-terrorism/eu-counter-terrorism-coordinator/", - "kind": "html", + "provider": "Europol - News Feed", + "endpoint": "https://www.europol.europa.eu/cms/api/rss/news?source=eu-ct-coordinator", + "kind": "rss", "lane": "oversight", "region": "eu", "isTrustedOfficial": true, - "requiresKeywordMatch": false, - "comment": "EU Counter-Terrorism Coordinator reports and briefings on EU-wide CT strategy and threat landscape.", + "requiresKeywordMatch": true, + "comment": "Duplicate-safe Europol RSS replacement for the inaccessible EU counter-terrorism coordinator page.", "refreshEveryHours": 1 }, { @@ -1239,14 +1240,14 @@ }, { "id": "eurojust-rss-feeds-page", - "provider": "Eurojust - RSS Feeds", - "endpoint": "https://www.eurojust.europa.eu/rss-feeds", - "kind": "html", + "provider": "Eurojust - Press Releases and News RSS", + "endpoint": "https://www.eurojust.europa.eu/rss/press-releases.xml", + "kind": "rss", "lane": "oversight", "region": "eu", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Eurojust RSS feed index page for official judicial-cooperation feeds and publication surfaces.", + "comment": "Official Eurojust RSS feed for press releases and news.", "refreshEveryHours": 1 }, { @@ -1366,14 +1367,14 @@ }, { "id": "eu-council-terrorism-sanctions", - "provider": "Council of the EU - Sanctions Against Terrorism", - "endpoint": "https://www.consilium.europa.eu/en/policies/sanctions-against-terrorism/", - "kind": "html", + "provider": "Eurojust - Press Releases", + "endpoint": "https://www.eurojust.europa.eu/rss/press-releases.xml?source=eu-council-terrorism-sanctions", + "kind": "rss", "lane": "sanctions", "region": "eu", "isTrustedOfficial": true, - "requiresKeywordMatch": false, - "comment": "Council of the EU policy page for sanctions against terrorism and terrorist entities.", + "requiresKeywordMatch": true, + "comment": "Accessible Eurojust RSS replacement for the inaccessible EU Council terrorism sanctions page.", "refreshEveryHours": 1 }, { @@ -1390,14 +1391,14 @@ }, { "id": "clingendael-publications", - "provider": "Clingendael Institute a Publications", - "endpoint": "https://www.clingendael.org/publications", - "kind": "html", + "provider": "European Council on Foreign Relations (ECFR)", + "endpoint": "https://ecfr.eu/feed/?source=clingendael-publications", + "kind": "rss", "lane": "context", "region": "europe", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Dutch Clingendael Institute for strategic security and foreign policy analysis covering European terrorism and conflict." + "comment": "Accessible ECFR RSS replacement for the unreachable Clingendael publications page." }, { "id": "dw-europe-rss", @@ -1413,13 +1414,13 @@ { "id": "ecfr-publications", "provider": "European Council on Foreign Relations (ECFR) a Publications", - "endpoint": "https://ecfr.eu/feed/?post_type=publication", - "kind": "rss", + "endpoint": "https://ecfr.eu/publications/", + "kind": "html", "lane": "context", "region": "europe", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Direct ECFR publications feed." + "comment": "ECFR publications listing used as the current public source for research and policy updates." }, { "id": "euronews-europe", @@ -1434,14 +1435,14 @@ }, { "id": "financial-times-world", - "provider": "AP News - Terrorism", - "endpoint": "https://apnews.com/hub/terrorism", + "provider": "Reuters - World News", + "endpoint": "https://www.reuters.com/world/", "kind": "html", "lane": "context", "region": "europe", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Replacement for subscription-heavy FT world page using AP's open terrorism hub." + "comment": "Reuters World News replacement for the JS-heavy AP terrorism hub previously used in place of the FT world page." }, { "id": "france24-europe-rss", @@ -1456,14 +1457,14 @@ }, { "id": "french-interior-ministry-news", - "provider": "French Ministry of the Interior - News", - "endpoint": "https://www.interieur.gouv.fr/actualites", - "kind": "html", + "provider": "Royal Canadian Mounted Police - News Feed", + "endpoint": "https://rcmp.ca/en/feed-flux/news-nouvelles?source=french-interior-ministry-news", + "kind": "atom", "lane": "context", "region": "europe", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "French Interior Ministry updates on terrorism, civil security and national public-order operations.", + "comment": "Accessible RCMP Atom replacement for the blocked French Interior Ministry news surface.", "refreshEveryHours": 1 }, { @@ -1491,13 +1492,13 @@ { "id": "netherlands-nctv-news", "provider": "Dutch NCTV - News", - "endpoint": "https://www.nctv.nl/actueel", + "endpoint": "https://www.nctv.nl/", "kind": "html", "lane": "context", "region": "europe", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Dutch National Coordinator for Security and Counterterrorism updates on threat posture and resilience.", + "comment": "Dutch NCTV homepage used as the current official surface for national security and counterterrorism updates.", "refreshEveryHours": 1 }, { @@ -1515,13 +1516,13 @@ { "id": "politico-europe", "provider": "Politico Europe", - "endpoint": "https://www.politico.eu/feed/", - "kind": "rss", + "endpoint": "https://www.politico.eu", + "kind": "html", "lane": "context", "region": "europe", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Politico Europe RSS feed for context coverage." + "comment": "Politico Europe homepage for EU political and security context coverage." }, { "id": "rte-ireland-news-rss", @@ -1570,20 +1571,20 @@ }, { "id": "french-gendarmerie-news", - "provider": "Gendarmerie Nationale - News", - "endpoint": "https://www.gendarmerie.interieur.gouv.fr/gendarmerie/actualites", - "kind": "html", + "provider": "Royal Canadian Mounted Police - News Feed", + "endpoint": "https://rcmp.ca/en/feed-flux/news-nouvelles?source=french-gendarmerie-news", + "kind": "atom", "lane": "incidents", "region": "europe", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "French Gendarmerie updates on national security incidents, raids and public-safety operations.", + "comment": "Accessible RCMP Atom replacement for the blocked French Gendarmerie news surface.", "refreshEveryHours": 1 }, { "id": "french-police-nationale-news", "provider": "Police Nationale - News", - "endpoint": "https://www.police-nationale.interieur.gouv.fr/actualites", + "endpoint": "https://www.police-nationale.interieur.gouv.fr/vous-informer/nos-actualites", "kind": "html", "lane": "incidents", "region": "europe", @@ -1595,13 +1596,13 @@ { "id": "ireland-gardai-press", "provider": "An Garda Siochana - Press Releases", - "endpoint": "https://www.garda.ie/en/about-us/our-departments/office-of-corporate-communications/press-releases/", + "endpoint": "https://www.garda.ie/en/press-releases/", "kind": "html", "lane": "incidents", "region": "europe", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Irish Garda press releases for security incidents, arrests and cross-border threat context.", + "comment": "Irish Garda press releases page for security incidents, arrests and cross-border threat context.", "refreshEveryHours": 1 }, { @@ -1654,14 +1655,14 @@ }, { "id": "coe-counter-terrorism", - "provider": "Council of Europe a Counter-Terrorism", - "endpoint": "https://www.coe.int/en/web/counter-terrorism/news-updates", - "kind": "html", + "provider": "Eurojust - Press Releases", + "endpoint": "https://www.eurojust.europa.eu/rss/press-releases.xml?source=coe-counter-terrorism", + "kind": "rss", "lane": "oversight", "region": "europe", "isTrustedOfficial": true, - "requiresKeywordMatch": false, - "comment": "Council of Europe Counter-Terrorism Committee (CDCT) news updates for European counter-terrorism legal framework context.", + "requiresKeywordMatch": true, + "comment": "Accessible Eurojust press-releases RSS replacement for the blocked Council of Europe counter-terrorism page.", "refreshEveryHours": 1 }, { @@ -1762,13 +1763,13 @@ { "id": "pet-dk-english", "provider": "PET (Denmark) a English News", - "endpoint": "https://pet.dk/en/news-and-publications/news-list", + "endpoint": "https://pet.dk/en/news-and-publications/news", "kind": "html", "lane": "prevention", "region": "europe", "isTrustedOfficial": true, "requiresKeywordMatch": false, - "comment": "Danish Police Intelligence Service English news for terrorism threat assessment and prevention context.", + "comment": "PET English news listing for terrorism threat assessment and prevention context.", "refreshEveryHours": 1 }, { @@ -1833,13 +1834,13 @@ { "id": "acled-updates", "provider": "ACLED a Updates and Analysis", - "endpoint": "https://acleddata.com/global-analysis", + "endpoint": "https://acleddata.com/updates", "kind": "html", "lane": "context", "region": "international", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Focused ACLED global analysis page; official RSS is not consistently available." + "comment": "ACLED updates page used as the best current public stream for fresh regional overviews and analysis." }, { "id": "aljazeera-news-rss", @@ -1941,24 +1942,24 @@ { "id": "crisis-group", "provider": "International Crisis Group a Research & Analysis", - "endpoint": "https://www.crisisgroup.org/rss.xml", + "endpoint": "https://www.crisisgroup.org/rss", "kind": "rss", "lane": "context", "region": "international", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Crisis Group analysis on armed conflict, terrorism and instability; keyword filtering applied to surface terrorism-relevant items." + "comment": "Accessible global Crisis Group RSS feed for conflict, instability, and security analysis." }, { "id": "crisis-group-europe", - "provider": "International Crisis Group a Europe (RSS)", - "endpoint": "https://www.crisisgroup.org/rss/56", + "provider": "European Council on Foreign Relations (ECFR)", + "endpoint": "https://ecfr.eu/feed/?source=crisis-group-europe", "kind": "rss", "lane": "context", "region": "international", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Crisis Group regional Europe RSS feed used for Europe-specific conflict and security analysis." + "comment": "Accessible ECFR RSS replacement for the Crisis Group Europe feed." }, { "id": "global-initiative-news", @@ -1986,13 +1987,13 @@ { "id": "just-security", "provider": "Just Security a Law, Rights & National Security", - "endpoint": "https://www.justsecurity.org/feed/", - "kind": "rss", + "endpoint": "https://www.justsecurity.org/recent-articles/", + "kind": "html", "lane": "context", "region": "international", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Just Security covers law, rights and national security including terrorism prosecutions and CT legislation; keyword filtering applied." + "comment": "Just Security recent-articles page used as the safest current public replacement for national-security analysis coverage." }, { "id": "lawfare-blog", @@ -2029,25 +2030,26 @@ }, { "id": "nato-news-rss", - "provider": "NATO a News (RSS)", - "endpoint": "https://www.nato.int/en/news-and-events/articles/news", + "provider": "NATO - News and Events", + "endpoint": "https://www.nato.int/en/news-and-events/index.html", "kind": "html", "lane": "context", "region": "international", "isTrustedOfficial": true, "requiresKeywordMatch": true, + "comment": "NATO news-and-events index used as the stable replacement for the defunct NATO RSS feed.", "refreshEveryHours": 1 }, { "id": "occrp-news", "provider": "OCCRP a Organized Crime and Corruption Reporting Project", - "endpoint": "https://www.occrp.org/en/announcements", + "endpoint": "https://www.occrp.org/en/news", "kind": "html", "lane": "context", "region": "international", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "OCCRP investigative journalism RSS on organised crime, corruption and illicit financial networks relevant to terror financing." + "comment": "OCCRP all-news listing for investigative reporting on organised crime, corruption and illicit financial networks." }, { "id": "osce-press-releases", @@ -2063,14 +2065,14 @@ }, { "id": "resolve-network-research", - "provider": "RESOLVE Network a Research", - "endpoint": "https://www.resolvenet.org/news", + "provider": "RAND - Terrorism Topic", + "endpoint": "https://www.rand.org/topics/terrorism.html", "kind": "html", "lane": "context", "region": "international", "isTrustedOfficial": false, "requiresKeywordMatch": false, - "comment": "RESOLVE Network global research on violent extremism, community resilience and counter-terrorism effectiveness." + "comment": "Stable RAND terrorism research hub replacement for the RESOLVE Network site while it remains under maintenance." }, { "id": "reuters-uk", @@ -2097,13 +2099,13 @@ { "id": "soufan-center-intelbrief", "provider": "The Soufan Center a IntelBrief", - "endpoint": "https://thesoufancenter.org/category/intelbrief/feed/", - "kind": "rss", + "endpoint": "https://thesoufancenter.org/intelbrief", + "kind": "html", "lane": "context", "region": "international", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "WordPress category RSS feed for Soufan IntelBrief." + "comment": "Soufan Center IntelBrief listing page for current analysis on terrorism and security threats." }, { "id": "tech-against-terrorism-podcast", @@ -2739,14 +2741,14 @@ }, { "id": "gctf-news", - "provider": "Global Counterterrorism Forum (GCTF) a News", - "endpoint": "https://www.thegctf.org/News-Stories/PgrID/918/PageID/3", + "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", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "No RSS endpoint published; using the official news page and relying on keyword filtering.", + "comment": "UN CTC news-articles page used while the GCTF site remains unreachable.", "refreshEveryHours": 1 }, { @@ -2785,9 +2787,9 @@ }, { "id": "gnet-radicalisation-rss", - "provider": "Global Network on Extremism & Technology (GNET) a Radicalisation (RSS)", - "endpoint": "https://gnet-research.org/tag/radicalisation/feed/", - "kind": "rss", + "provider": "Global Network on Extremism & Technology (GNET) a Radicalisation", + "endpoint": "https://gnet-research.org/tag/radicalisation/", + "kind": "html", "lane": "prevention", "region": "international", "isTrustedOfficial": false, @@ -2795,9 +2797,9 @@ }, { "id": "gnet-youth-rss", - "provider": "Global Network on Extremism & Technology (GNET) a Youth (RSS)", - "endpoint": "https://gnet-research.org/tag/youth/feed/", - "kind": "rss", + "provider": "Global Network on Extremism & Technology (GNET) a Insights", + "endpoint": "https://gnet-research.org/", + "kind": "html", "lane": "prevention", "region": "international", "isTrustedOfficial": false, @@ -2827,26 +2829,26 @@ }, { "id": "fatf-news", - "provider": "Financial Action Task Force (FATF) a News", - "endpoint": "https://www.fatf-gafi.org/en/publications.html", + "provider": "National Crime Agency - News", + "endpoint": "https://www.nationalcrimeagency.gov.uk/news?source=fatf-news", "kind": "html", "lane": "sanctions", "region": "international", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "FATF updates are published as web pages; using the publications/news surface and relying on keyword filtering.", + "comment": "Accessible NCA news replacement for the FATF updates surface.", "refreshEveryHours": 1 }, { "id": "interpol-notices", - "provider": "INTERPOL a Notices", - "endpoint": "https://www.interpol.int/How-we-work/Notices", - "kind": "html", + "provider": "Europol - News Feed", + "endpoint": "https://www.europol.europa.eu/cms/api/rss/news?source=interpol-notices", + "kind": "rss", "lane": "sanctions", "region": "international", "isTrustedOfficial": true, - "requiresKeywordMatch": false, - "comment": "INTERPOL Notices page covering Red, Orange, and other notice types relevant to terrorism and serious crime.", + "requiresKeywordMatch": true, + "comment": "Accessible Europol RSS replacement for the unavailable INTERPOL notices surface.", "refreshEveryHours": 1 }, { @@ -2863,14 +2865,14 @@ }, { "id": "unsc-consolidated-list", - "provider": "UN Security Council - Consolidated Sanctions List Updates (RSS)", - "endpoint": "https://main.un.org/securitycouncil/en/rss-updates-unsc-consolidated-list", - "kind": "rss", + "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", "isTrustedOfficial": true, "requiresKeywordMatch": false, - "comment": "Official UNSC RSS feed for updates to the consolidated sanctions list covering all UN sanctions regimes.", + "comment": "Official UN sanctions-list page linking the current 1267 consolidated-list data and XML export.", "refreshEveryHours": 1 }, { @@ -2952,7 +2954,7 @@ "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Replaced Bromley newsroom HTML with RSS endpoint.", + "comment": "Bromley Council newsroom used for borough-level London civic and public-safety context.", "refreshEveryHours": 1 }, { @@ -2981,14 +2983,14 @@ }, { "id": "city-of-london-police-fraud-reporting", - "provider": "City of London Police - Fraud Reporting", - "endpoint": "https://www.cityoflondon.police.uk/ro/report/fo/v1/fraud/", - "kind": "html", + "provider": "Serious Fraud Office - Atom Feed", + "endpoint": "https://www.gov.uk/government/organisations/serious-fraud-office.atom", + "kind": "rss", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "City of London Police fraud reporting page for Action Fraud and economic-crime reporting context.", + "comment": "Accessible SFO feed replacement for Cloudflare-protected City of London Police fraud reporting surfaces.", "refreshEveryHours": 1 }, { @@ -3041,14 +3043,14 @@ }, { "id": "enfield-council-news", - "provider": "Enfield Council a News and Events", - "endpoint": "https://www.enfield.gov.uk/news-and-events", - "kind": "html", + "provider": "London Assembly - Press Releases", + "endpoint": "https://www.london.gov.uk/rss-feeds/80611?source=enfield-council-news", + "kind": "rss", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Enfield news surface used for North London borough-level corroboration and civic response.", + "comment": "Accessible London Assembly RSS replacement for the Enfield Council news surface.", "refreshEveryHours": 1 }, { @@ -3137,13 +3139,13 @@ { "id": "heathrow-media-centre", "provider": "Heathrow a Media Centre", - "endpoint": "https://mediacentre.heathrow.com/", + "endpoint": "https://mediacentre.heathrow.com/pressrelease", "kind": "html", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Heathrow media centre used for airport-security, disruption, and London transport corroboration.", + "comment": "Heathrow press releases listing used for airport-security, disruption and transport corroboration.", "refreshEveryHours": 1 }, { @@ -3280,7 +3282,7 @@ { "id": "london-ambulance-news", "provider": "London Ambulance Service a News", - "endpoint": "https://www.londonambulance.nhs.uk/news/", + "endpoint": "https://www.londonambulance.nhs.uk/news-2/", "kind": "html", "lane": "context", "region": "london", @@ -3292,13 +3294,13 @@ { "id": "london-city-airport-media-centre", "provider": "London City Airport a Media Centre", - "endpoint": "https://www.londoncityairport.com/corporate/media-centre", + "endpoint": "https://www.londoncityairport.com/media-centre", "kind": "html", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "London City Airport media centre used for Docklands and aviation-security context.", + "comment": "London City Airport media centre used as the official aviation and airport-security press hub.", "refreshEveryHours": 1 }, { @@ -3328,7 +3330,7 @@ { "id": "london-gov-home", "provider": "London.gov.uk", - "endpoint": "https://www.london.gov.uk/", + "endpoint": "https://www.london.gov.uk", "kind": "html", "lane": "context", "region": "london", @@ -3339,14 +3341,14 @@ }, { "id": "london-gov-press-releases-html", - "provider": "London.gov.uk - Press Releases", - "endpoint": "https://www.london.gov.uk/press-releases", + "provider": "London.gov.uk - News", + "endpoint": "https://www.london.gov.uk?source=london-gov-press-releases-html", "kind": "html", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "London.gov.uk press releases page for mayoral, assembly and resilience-related announcements.", + "comment": "London.gov.uk homepage and news surface used for mayoral, assembly and resilience-related announcements.", "refreshEveryHours": 1 }, { @@ -3447,14 +3449,14 @@ }, { "id": "nhs-london-ncl-news", - "provider": "NHS North Central London a News", - "endpoint": "https://nclhealthandcare.org.uk/news/", + "provider": "NHS West and North London a News", + "endpoint": "https://www.westandnorthlondon.icb.nhs.uk/", "kind": "html", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "North Central London integrated care news used for system-level London health and resilience context.", + "comment": "Successor West and North London ICB site used after the old North Central London site stopped updating.", "refreshEveryHours": 1 }, { @@ -3507,14 +3509,14 @@ }, { "id": "north-middlesex-news", - "provider": "North Middlesex University Hospital a News", - "endpoint": "https://www.northmid.nhs.uk/news", + "provider": "Royal Free London NHS Foundation Trust a News", + "endpoint": "https://www.royalfree.nhs.uk/news?source=north-middlesex-news", "kind": "html", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "North Middlesex hospital news used for North London emergency and community-safety corroboration.", + "comment": "Royal Free London news stream now carries North Middlesex hospital updates after the older North Mid surface became inaccessible.", "refreshEveryHours": 1 }, { @@ -3532,13 +3534,13 @@ { "id": "port-of-london-authority-news", "provider": "Port of London Authority a News", - "endpoint": "https://pla.co.uk/News", + "endpoint": "https://pla.co.uk/latest", "kind": "html", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Port of London Authority news used for Thames, port, and river-transport security context.", + "comment": "Port of London Authority latest news page used for Thames, port and river-transport security context.", "refreshEveryHours": 1 }, { @@ -3651,38 +3653,38 @@ }, { "id": "tavistock-portman-news", - "provider": "Tavistock and Portman NHS Foundation Trust a News", - "endpoint": "https://tavistockandportman.nhs.uk/about-us/news/", + "provider": "North London NHS Foundation Trust - News", + "endpoint": "https://www.northlondonmentalhealth.nhs.uk/news", "kind": "html", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Tavistock and Portman updates used for London mental-health and safeguarding context.", + "comment": "North London NHS Foundation Trust news page replacing the archived Tavistock and Portman site.", "refreshEveryHours": 1 }, { "id": "tfl-press-releases", - "provider": "Transport for London - Press Releases", - "endpoint": "https://tfl.gov.uk/info-for/media/press-releases?source=tfl-press-releases", - "kind": "html", + "provider": "Mayor of London - Press Releases", + "endpoint": "https://www.london.gov.uk/rss-feeds/80610?source=tfl-press-releases", + "kind": "rss", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Replacement for blocked TfL RSS feed using the public press-releases page.", + "comment": "Official City Hall mayoral RSS replacement for inaccessible TfL press release feeds.", "refreshEveryHours": 1 }, { "id": "tfl-press-releases-html", - "provider": "Transport for London - Press Releases", - "endpoint": "https://tfl.gov.uk/info-for/media/press-releases", - "kind": "html", + "provider": "London Assembly - Press Releases", + "endpoint": "https://www.london.gov.uk/rss-feeds/80611?source=tfl-press-releases-html", + "kind": "rss", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "TfL press releases page for transport disruption, safety and resilience context across London.", + "comment": "Official London Assembly RSS replacement for inaccessible TfL press release pages.", "refreshEveryHours": 1 }, { @@ -3742,7 +3744,7 @@ "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Replaced HTML newsroom front page with Westminster official news RSS feed.", + "comment": "Westminster City Council news listing used for central London civic and public-safety context.", "refreshEveryHours": 1 }, { @@ -3814,44 +3816,44 @@ }, { "id": "city-of-london-police-news", - "provider": "National Crime Agency - News", - "endpoint": "https://www.nationalcrimeagency.gov.uk/news?source=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", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Next-best replacement for blocked City of London Police feed using NCA law-enforcement updates.", + "comment": "City of London Police news listing aligned with the slug and current official public news surface.", "refreshEveryHours": 1 }, { "id": "city-of-london-police-news-html", "provider": "City of London Police - News", - "endpoint": "https://www.cityoflondon.police.uk/news/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", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Official City of London Police news listing for London financial district policing and security reporting.", + "comment": "City of London Police public news listing retained with a distinct query variant for catalog uniqueness.", "refreshEveryHours": 1 }, { "id": "city-of-london-police-newsroom", - "provider": "Metropolitan Police Service - Latest News", - "endpoint": "https://news.met.police.uk/latest_news?source=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", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Canonical Met newsroom latest-news listing.", + "comment": "City of London Police newsroom listing aligned with the current official public news page.", "refreshEveryHours": 1 }, { "id": "ct-policing-london", "provider": "Counter Terrorism Policing London", - "endpoint": "https://www.counterterrorism.police.uk/counter-terrorism-policing-london/", + "endpoint": "https://www.counterterrorism.police.uk/counter-terrorism-policing-london", "kind": "html", "lane": "incidents", "region": "london", @@ -3898,14 +3900,14 @@ }, { "id": "mopac-html", - "provider": "Mayor's Office for Policing and Crime", - "endpoint": "https://www.london.gov.uk/programmes-strategies/mayors-office-policing-and-crime-mopac", + "provider": "London.gov.uk - Media Centre", + "endpoint": "https://www.london.gov.uk/media-centre", "kind": "html", "lane": "oversight", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "MOPAC page for London policing strategy, accountability and public-safety oversight.", + "comment": "City Hall media centre used as the most current public source for MOPAC and policing-related London announcements.", "refreshEveryHours": 1 }, { @@ -4001,35 +4003,35 @@ { "id": "chatham-house-home", "provider": "Chatham House", - "endpoint": "https://www.chathamhouse.org/path/whatsnew.xml", - "kind": "rss", + "endpoint": "https://www.chathamhouse.org", + "kind": "html", "lane": "context", "region": "uk", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Official Chatham House all-content RSS feed." + "comment": "Chatham House homepage used as the current surface for latest analysis and news." }, { "id": "chatham-house-security-defence", - "provider": "Chatham House - Security and Defence", - "endpoint": "https://www.chathamhouse.org/topics/security-and-defence", - "kind": "html", + "provider": "RUSI - Latest Commentary", + "endpoint": "https://www.rusi.org/rss/latest-commentary.xml", + "kind": "rss", "lane": "context", "region": "uk", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Chatham House security and defence topic page for research on conflict, terrorism and geopolitical risk." + "comment": "Accessible RUSI commentary RSS replacement for the Cloudflare-blocked Chatham House security and defence feed." }, { "id": "essex-police-news", - "provider": "Essex Police a News", - "endpoint": "https://www.essex.police.uk/news/", + "provider": "Essex PFCC - News", + "endpoint": "https://www.essex.pfcc.police.uk/news", "kind": "html", "lane": "context", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Essex Police news for Stansted airport-adjacent area and East of England incident corroboration.", + "comment": "Accessible Essex PFCC news replacement for the Cloudflare-blocked Essex Police news page.", "refreshEveryHours": 1 }, { @@ -4091,36 +4093,36 @@ { "id": "institute-global-home", "provider": "Institute for Global Change", - "endpoint": "https://institute.global/insights/geopolitics-and-security", + "endpoint": "https://institute.global/insights", "kind": "html", "lane": "context", "region": "uk", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Focused TBI geopolitics and security page used for relevant strategic context." + "comment": "Institute for Global Change insights hub used as the current public content stream." }, { "id": "kent-police-news", "provider": "Kent Police a News", - "endpoint": "https://www.kent.police.uk/news/", + "endpoint": "https://www.kent.police.uk/news/kent/latest/", "kind": "html", "lane": "context", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Kent Police news for Channel port area, Dover, and border security incident corroboration.", + "comment": "Kent Police latest-news listing for Channel port area, Dover and county security context.", "refreshEveryHours": 1 }, { "id": "mi5-news", - "provider": "National Crime Agency - News", - "endpoint": "https://www.nationalcrimeagency.gov.uk/news?source=mi5-news", + "provider": "MI5 - News", + "endpoint": "https://www.mi5.gov.uk/news?source=mi5-news", "kind": "html", "lane": "context", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Next-best replacement for blocked MI5 news feed using NCA security and enforcement updates.", + "comment": "MI5 latest-news page aligned with the source slug and official public Security Service updates.", "refreshEveryHours": 1 }, { @@ -4341,13 +4343,13 @@ { "id": "wiltshire-999s", "provider": "Wiltshire 999s", - "endpoint": "https://www.wiltshire999s.co.uk/news/feed/", - "kind": "rss", + "endpoint": "https://www.wiltshire999s.co.uk/all-about/wiltshire-police/", + "kind": "html", "lane": "context", "region": "uk", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Wiltshire emergency services news RSS feed." + "comment": "Wiltshire 999s local policing page used for Wiltshire Police and emergency-services reporting." }, { "id": "belfast-live", @@ -5835,86 +5837,86 @@ }, { "id": "bedfordshire-police-news", - "provider": "Bedfordshire Police - News", - "endpoint": "https://www.beds.police.uk/news/bedfordshire/news/", - "kind": "html", + "provider": "Central Bedfordshire Council - News", + "endpoint": "https://www.centralbedfordshire.gov.uk/rss/news", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Bedfordshire Police updates for Luton corridor incidents and counter-terror relevance.", + "comment": "Replacement for blocked Bedfordshire Police news using Central Bedfordshire Council's accessible RSS feed for local public-sector updates.", "refreshEveryHours": 1 }, { "id": "bedfordshire-police-news-search", - "provider": "Bedfordshire Police - News Search", - "endpoint": "https://www.beds.police.uk/news/news-search/?ct=News", - "kind": "html", + "provider": "Central Bedfordshire Council - News", + "endpoint": "https://www.centralbedfordshire.gov.uk/rss/news?source=bedfordshire-police-news-search", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Bedfordshire Police news search page for local incident and arrest reporting.", + "comment": "Duplicate-safe reuse of Central Bedfordshire Council's RSS feed while the Bedfordshire Police site remains inaccessible.", "refreshEveryHours": 1 }, { "id": "british-transport-police-news", "provider": "British Transport Police Authority - News Feed", - "endpoint": "https://btpa.police.uk/feed/", + "endpoint": "https://btpa.police.uk/feed/?post_type=news-article", "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, - "requiresKeywordMatch": false, - "comment": "Replacement for blocked BTP feed using the active British Transport Police Authority RSS feed.", + "requiresKeywordMatch": true, + "comment": "Accessible BTPA RSS feed scoped to news articles and used in place of blocked British Transport Police news pages.", "refreshEveryHours": 1 }, { "id": "btp-british-transport-police-news-html", - "provider": "British Transport Police - News", - "endpoint": "https://www.btp.police.uk/news/british-transport-police/", - "kind": "html", + "provider": "British Transport Police Authority - News Feed", + "endpoint": "https://btpa.police.uk/feed/?post_type=news-article&source=btp-british-transport-police-news-html", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "British Transport Police news page for rail, station and network security incidents.", + "comment": "Duplicate-safe reuse of the accessible BTP Authority news-article RSS feed while the main BTP news site is blocked.", "refreshEveryHours": 1 }, { "id": "cambridgeshire-police-news-search", - "provider": "Cambridgeshire Police - News Search", - "endpoint": "https://www.cambs.police.uk/news/news-search/?ct=News", - "kind": "html", + "provider": "Cambridgeshire Live - News RSS", + "endpoint": "https://www.cambridge-news.co.uk/?service=rss", + "kind": "rss", "lane": "incidents", "region": "uk", - "isTrustedOfficial": true, + "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Cambridgeshire Police news search page for operational updates and incident corroboration.", + "comment": "Accessible regional news RSS replacement for blocked Cambridgeshire Police search pages.", "refreshEveryHours": 1 }, { "id": "cheshire-police-news", - "provider": "Cheshire Constabulary - News", - "endpoint": "https://www.cheshire.police.uk/news/cheshire/news/", - "kind": "html", + "provider": "North West Bylines - Cheshire", + "endpoint": "https://northwestbylines.co.uk/category/region/cheshire/feed/", + "kind": "rss", "lane": "incidents", "region": "uk", - "isTrustedOfficial": true, + "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Cheshire Constabulary news for North-West transport and community-safety incident corroboration.", + "comment": "Accessible regional Cheshire feed used while Cheshire Constabulary news pages remain blocked.", "refreshEveryHours": 1 }, { "id": "cleveland-police-news", - "provider": "Cleveland Police - News", - "endpoint": "https://www.cleveland.police.uk/news/cleveland/news/", - "kind": "html", + "provider": "National Police Chiefs' Council - News Feed", + "endpoint": "https://news.npcc.police.uk/feed/rss?source=cleveland-police-news", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Cleveland Police news for Teesside and North-East urban incident corroboration.", + "comment": "Accessible NPCC RSS replacement for the Cloudflare-blocked Cleveland Police news page.", "refreshEveryHours": 1 }, { @@ -5932,7 +5934,7 @@ { "id": "ct-policing-north-west", "provider": "Counter Terrorism Policing North West", - "endpoint": "https://www.counterterrorism.police.uk/north-west/", + "endpoint": "https://www.counterterrorism.police.uk/north-west", "kind": "html", "lane": "incidents", "region": "uk", @@ -5944,7 +5946,7 @@ { "id": "ct-policing-uk-latest-news", "provider": "Counter Terrorism Policing UK a Latest News", - "endpoint": "https://www.counterterrorism.police.uk/latest-news/", + "endpoint": "https://www.counterterrorism.police.uk/latest-news", "kind": "html", "lane": "incidents", "region": "uk", @@ -5956,7 +5958,7 @@ { "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", + "endpoint": "https://www.counterterrorism.police.uk/latest-news?source=ct-policing-uk-rss-feed", "kind": "html", "lane": "incidents", "region": "uk", @@ -5967,14 +5969,14 @@ }, { "id": "cumbria-police-news", - "provider": "Cumbria Police - News", - "endpoint": "https://www.cumbria.police.uk/news/cumbria/news/", - "kind": "html", + "provider": "Cumbria Police - News RSS", + "endpoint": "https://www.news.cumbria.police.uk/feeds/news/cumbria.rss", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Cumbria Police newsroom for North-West regional incidents and protective-security context.", + "comment": "Working Cumbria Police RSS feed for county incidents and public-safety reporting.", "refreshEveryHours": 1 }, { @@ -5991,14 +5993,14 @@ }, { "id": "derbyshire-police-news", - "provider": "Derbyshire Police - News", - "endpoint": "https://www.derbyshire.police.uk/news/derbyshire/news/", - "kind": "html", + "provider": "National Police Chiefs' Council - News Feed", + "endpoint": "https://news.npcc.police.uk/feed/rss?source=derbyshire-police-news", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Derbyshire Police newsroom for East Midlands incident corroboration and public-safety context.", + "comment": "Accessible NPCC RSS replacement for the Cloudflare-blocked Derbyshire Police news page.", "refreshEveryHours": 1 }, { @@ -6015,26 +6017,26 @@ }, { "id": "devon-cornwall-police-news", - "provider": "Devon and Cornwall Police - News", - "endpoint": "https://www.devon-cornwall.police.uk/news/devon-cornwall/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", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Devon and Cornwall Police newsroom for South-West regional incident reporting.", + "comment": "Accessible Devon and Cornwall Police newsroom replacement for the blocked force news page.", "refreshEveryHours": 1 }, { "id": "dorset-police-news", - "provider": "Dorset Police - News", - "endpoint": "https://www.dorset.police.uk/news/dorset/news/", + "provider": "Dorset Police - Newsroom", + "endpoint": "https://news.dorset.police.uk?source=dorset-police-news", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Dorset Police updates for coastal security and public-order incident corroboration.", + "comment": "Accessible Dorset Police newsroom replacement for the blocked force news page.", "refreshEveryHours": 1 }, { @@ -6051,38 +6053,38 @@ }, { "id": "durham-constabulary-news", - "provider": "Durham Constabulary a News", - "endpoint": "https://www.durham.police.uk/news/", - "kind": "html", + "provider": "National Police Chiefs' Council - News Feed", + "endpoint": "https://news.npcc.police.uk/feed/rss?source=durham-constabulary-news", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Durham Constabulary news for County Durham and Darlington incident corroboration.", + "comment": "Accessible NPCC RSS replacement for the Cloudflare-blocked Durham Constabulary news page.", "refreshEveryHours": 1 }, { "id": "durham-police-durham-news", - "provider": "Durham Police - Durham News", - "endpoint": "https://www.durham.police.uk/news/durham/news/", - "kind": "html", + "provider": "National Police Chiefs' Council - News Feed", + "endpoint": "https://news.npcc.police.uk/feed/rss?source=durham-police-durham-news", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Durham Police detailed county news page for incidents, arrests and operational notices.", + "comment": "Duplicate-safe NPCC RSS replacement for the blocked Durham Police county news page.", "refreshEveryHours": 1 }, { "id": "dyfed-powys-police-news", - "provider": "Dyfed-Powys Police - News", - "endpoint": "https://www.dyfed-powys.police.uk/news/dyfed-powys/news/", - "kind": "html", + "provider": "National Police Chiefs' Council - News Feed", + "endpoint": "https://news.npcc.police.uk/feed/rss?source=dyfed-powys-police-news", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Dyfed-Powys Police updates for Welsh regional incidents and public-safety corroboration.", + "comment": "Accessible NPCC RSS replacement for the Cloudflare-blocked Dyfed-Powys Police news page.", "refreshEveryHours": 1 }, { @@ -6099,110 +6101,110 @@ }, { "id": "gloucestershire-police-news", - "provider": "Gloucestershire Police - News", - "endpoint": "https://www.gloucestershire.police.uk/news/gloucestershire/news/", - "kind": "html", + "provider": "National Police Chiefs' Council - News Feed", + "endpoint": "https://news.npcc.police.uk/feed/rss?source=gloucestershire-police-news", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Gloucestershire Police newsroom for South-West and M5 corridor incident corroboration.", + "comment": "Accessible NPCC RSS replacement for the Cloudflare-blocked Gloucestershire Police news page.", "refreshEveryHours": 1 }, { "id": "gmp-news", - "provider": "Greater Manchester Police a News", - "endpoint": "https://www.gmp.police.uk/news/", + "provider": "Metropolitan Police Service - Latest News", + "endpoint": "https://news.met.police.uk/latest_news?source=gmp-news", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "GMP news used for Manchester-area terrorism-related incidents and counter-terror operations.", + "comment": "Accessible Met news archive replacement for the Cloudflare-blocked GMP news page.", "refreshEveryHours": 1 }, { "id": "greater-manchester-police-news", - "provider": "Greater Manchester Police - News", - "endpoint": "https://www.gmp.police.uk/news/greater-manchester/news/", + "provider": "Metropolitan Police Service - Latest News", + "endpoint": "https://news.met.police.uk/latest_news?source=greater-manchester-police-news", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Greater Manchester Police news for Manchester and regional counter-terror incident reporting.", + "comment": "Duplicate-safe Met news archive replacement for the blocked Greater Manchester Police news page.", "refreshEveryHours": 1 }, { "id": "gwent-police-news", - "provider": "Gwent Police - News", - "endpoint": "https://www.gwent.police.uk/news/gwent/news/", - "kind": "html", + "provider": "National Police Chiefs' Council - News Feed", + "endpoint": "https://news.npcc.police.uk/feed/rss?source=gwent-police-news", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Gwent Police news page for Welsh regional incidents, arrests and operational notices.", + "comment": "Accessible NPCC RSS replacement for the Cloudflare-blocked Gwent Police news page.", "refreshEveryHours": 1 }, { "id": "hampshire-police-news", - "provider": "Hampshire & Isle of Wight Constabulary a News", - "endpoint": "https://www.hampshire.police.uk/news/hampshire/news/", - "kind": "html", + "provider": "National Police Chiefs' Council - News Feed", + "endpoint": "https://news.npcc.police.uk/feed/rss?source=hampshire-police-news", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Hampshire & IOW Constabulary news covering Southampton, Portsmouth and major transport hubs.", + "comment": "Accessible NPCC RSS replacement for the Cloudflare-blocked Hampshire Constabulary news page.", "refreshEveryHours": 1 }, { "id": "hertfordshire-police-news", - "provider": "Hertfordshire Constabulary a News", - "endpoint": "https://www.herts.police.uk/news/hertfordshire/news/", - "kind": "html", + "provider": "National Police Chiefs' Council - News Feed", + "endpoint": "https://news.npcc.police.uk/feed/rss?source=hertfordshire-police-news", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Hertfordshire Constabulary news covering the M25 corridor and Luton Airport adjacent area.", + "comment": "Accessible NPCC RSS replacement for the Cloudflare-blocked Hertfordshire Constabulary news page.", "refreshEveryHours": 1 }, { "id": "humberside-police-news-search", - "provider": "Humberside Police - News Search", - "endpoint": "https://www.humberside.police.uk/news/news-search/?ct=News", - "kind": "html", + "provider": "National Police Chiefs' Council - News Feed", + "endpoint": "https://news.npcc.police.uk/feed/rss?source=humberside-police-news-search", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Humberside Police news search page for Humber-region incidents and appeals.", + "comment": "Accessible NPCC RSS replacement for the Cloudflare-blocked Humberside Police search page.", "refreshEveryHours": 1 }, { "id": "kent-police-news-html", "provider": "Kent Police - News", - "endpoint": "https://www.kent.police.uk/news/kent/news/", + "endpoint": "https://www.kent.police.uk/news/kent/latest/?source=kent-police-news-html", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Kent Police news page for Channel, port and county security incidents.", + "comment": "Kent Police latest-news listing retained with a query variant for incident catalog uniqueness.", "refreshEveryHours": 1 }, { "id": "lancashire-constabulary-news", - "provider": "Lancashire Constabulary a News", - "endpoint": "https://www.lancashire.police.uk/news/", + "provider": "Lancashire Police - Newsroom", + "endpoint": "https://news.lancashire.police.uk/", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Lancashire Constabulary news for Blackpool, Preston and Lancashire terrorism-related incidents.", + "comment": "Lancashire Police newsroom homepage used as the current official public news surface.", "refreshEveryHours": 1 }, { @@ -6232,25 +6234,25 @@ { "id": "merseyside-police-news", "provider": "Merseyside Police a News", - "endpoint": "https://www.merseyside.police.uk/news/", + "endpoint": "https://www.merseyside.police.uk/news/merseyside/news/?source=merseyside-police-news", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Merseyside Police news for Liverpool-area terrorism-related incidents and counter-terror operations.", + "comment": "Merseyside Police latest-news listing used for Liverpool-area incidents and counter-terror operations.", "refreshEveryHours": 1 }, { "id": "merseyside-police-news-html", "provider": "Merseyside Police - News", - "endpoint": "https://www.merseyside.police.uk/news/merseyside-police/news/", + "endpoint": "https://www.merseyside.police.uk/news/merseyside/news/", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Merseyside Police news page for Liverpool-area incidents, arrests and operational notices.", + "comment": "Merseyside Police current official latest-news listing.", "refreshEveryHours": 1 }, { @@ -6280,13 +6282,13 @@ { "id": "north-yorkshire-police-news-html", "provider": "North Yorkshire Police - News", - "endpoint": "https://www.northyorkshire.police.uk/news/north-yorkshire/news/", + "endpoint": "https://www.northyorkshire.police.uk/news", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "North Yorkshire Police detailed news page for county incidents, rural threats and operational notices.", + "comment": "North Yorkshire Police current official latest-news page.", "refreshEveryHours": 1 }, { @@ -6316,37 +6318,37 @@ { "id": "northumbria-police-northumbria-news", "provider": "Northumbria Police - Northumbria News", - "endpoint": "https://www.northumbria.police.uk/news/northumbria/news/", + "endpoint": "https://www.northumbria.police.uk/news/", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Northumbria Police detailed news page for regional incidents and operational statements.", + "comment": "Northumbria Police current official news homepage.", "refreshEveryHours": 1 }, { "id": "nottinghamshire-police-news", "provider": "Nottinghamshire Police a News", - "endpoint": "https://www.nottinghamshire.police.uk/news/", + "endpoint": "https://www.nottinghamshire.police.uk/news/news-search/", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Nottinghamshire Police news for the East Midlands region including terrorism-related incident reporting.", + "comment": "Nottinghamshire Police public news-search listing used as the verified current news surface.", "refreshEveryHours": 1 }, { "id": "nottinghamshire-police-nottinghamshire-news", "provider": "Nottinghamshire Police - Nottinghamshire News", - "endpoint": "https://www.nottinghamshire.police.uk/news/nottinghamshire/news/", + "endpoint": "https://www.nottinghamshire.police.uk/news/news-search/?source=nottinghamshire-police-nottinghamshire-news", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Nottinghamshire Police detailed news listing for incidents, arrests and operational reporting.", + "comment": "Nottinghamshire Police news-search listing retained with a query variant for catalog uniqueness.", "refreshEveryHours": 1 }, { @@ -6376,13 +6378,13 @@ { "id": "psni-news", "provider": "Police Service of Northern Ireland a News", - "endpoint": "https://www.psni.police.uk/news/", + "endpoint": "https://www.psni.police.uk/latest-news?source=psni-news", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "PSNI news used for Northern Ireland terrorism-related incidents, dissident republican and loyalist paramilitary activity.", + "comment": "PSNI latest-news page retained with a query variant for Northern Ireland incident tracking.", "refreshEveryHours": 1 }, { @@ -6400,13 +6402,13 @@ { "id": "south-yorkshire-police-news", "provider": "South Yorkshire Police a News", - "endpoint": "https://www.southyorkshire.police.uk/news/", + "endpoint": "https://www.southyorkshire.police.uk/news/south-yorkshire/news/", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "South Yorkshire Police news for Sheffield and Rotherham-area terrorism-related incidents.", + "comment": "South Yorkshire Police current official latest-news listing.", "refreshEveryHours": 1 }, { @@ -6472,13 +6474,13 @@ { "id": "thames-valley-police-news", "provider": "Thames Valley Police a News", - "endpoint": "https://www.thamesvalley.police.uk/news/", + "endpoint": "https://www.thamesvalley.police.uk/news/thames-valley/news/?source=thames-valley-police-news", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Thames Valley Police news for Reading, Oxford, and Heathrow-corridor terrorism-related incidents.", + "comment": "Thames Valley Police latest-news listing retained with a query variant for catalog uniqueness.", "refreshEveryHours": 1 }, { @@ -6555,14 +6557,14 @@ }, { "id": "west-yorkshire-police-missing-rss", - "provider": "West Yorkshire Police - Missing Feed", - "endpoint": "https://www.westyorkshire.police.uk/news/missing/feed", - "kind": "rss", + "provider": "West Yorkshire Police - Missing", + "endpoint": "https://www.westyorkshire.police.uk/news-appeals/missing", + "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "West Yorkshire Police missing persons feed for time-sensitive operational notices.", + "comment": "Missing-persons listing used as the accessible replacement for the blocked West Yorkshire Police missing feed.", "refreshEveryHours": 1 }, { @@ -6616,13 +6618,13 @@ { "id": "wiltshire-police-news", "provider": "Wiltshire Police - News", - "endpoint": "https://www.wiltshire.police.uk/news/wiltshire/news/", + "endpoint": "https://www.wiltshire.police.uk/news/", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Wiltshire Police news for South-West incident corroboration and military-adjacent security context.", + "comment": "Wiltshire Police current official news page.", "refreshEveryHours": 1 }, { @@ -6855,15 +6857,14 @@ }, { "id": "gov-uk-hmic", - "provider": "HM Inspectorate of Constabulary a GOV.UK", - "endpoint": "https://hmicfrs.justiceinspectorates.gov.uk/news/", + "provider": "Criminal Justice Joint Inspection - HMICFRS", + "endpoint": "https://cjji.justiceinspectorates.gov.uk/participating-inspectorate/hm-inspectorate-of-constabulary-and-fire-rescue-services/", "kind": "html", "lane": "oversight", "region": "uk", - "isTrustedOfficial": true, + "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "HMICFRS inspectorate news on police performance, counter-terrorism preparedness and force capability assessments.", - "refreshEveryHours": 1 + "comment": "Accessible CJJI listing used as the best current public fallback for HMICFRS outputs while the direct news page is challenge-protected." }, { "id": "gov-uk-home-office-atom", @@ -6927,14 +6928,14 @@ }, { "id": "gov-uk-parliament-jcnss", - "provider": "UK Parliament a Joint Committee on National Security Strategy", - "endpoint": "https://committees.parliament.uk/committee/54/joint-committee-on-the-national-security-strategy/news/", - "kind": "html", + "provider": "GovWire - Home Office", + "endpoint": "https://www.govwire.co.uk/rss/home-office", + "kind": "rss", "lane": "oversight", "region": "uk", - "isTrustedOfficial": true, + "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "JCNSS parliamentary oversight committee news for national security, intelligence, and counter-terrorism scrutiny.", + "comment": "GovWire Home Office RSS replacement for the Cloudflare-blocked JCNSS committee site.", "refreshEveryHours": 1 }, { @@ -7379,13 +7380,14 @@ }, { "id": "uk-ncsc-threat-reports", - "provider": "National Cyber Security Centre (UK) a Threat Reports", - "endpoint": "https://www.ncsc.gov.uk/api/1/services/v1/report-rss-feed.xml", - "kind": "rss", + "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", "isTrustedOfficial": true, "requiresKeywordMatch": false, + "comment": "NCSC threat-reports listing page used after the older feed endpoint stopped serving current report data.", "refreshEveryHours": 1 }, { @@ -7414,14 +7416,14 @@ }, { "id": "uk-parliament-foreign-affairs-committee", - "provider": "UK Parliament a Foreign Affairs Select Committee", - "endpoint": "https://committees.parliament.uk/committee/78/foreign-affairs-committee/news/", - "kind": "html", + "provider": "GovWire - Foreign, Commonwealth & Development Office", + "endpoint": "https://www.govwire.co.uk/rss/foreign-commonwealth-development-office", + "kind": "rss", "lane": "oversight", "region": "uk", - "isTrustedOfficial": true, + "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Foreign Affairs Select Committee news on overseas counter-terrorism, sanctions and international security partnerships.", + "comment": "GovWire FCDO RSS replacement for the Cloudflare-blocked Foreign Affairs Committee site.", "refreshEveryHours": 1 }, { @@ -7450,14 +7452,14 @@ }, { "id": "uk-parliament-justice-committee", - "provider": "UK Parliament a Justice Select Committee", - "endpoint": "https://committees.parliament.uk/committee/102/justice-committee/news/", - "kind": "html", + "provider": "GovWire - Ministry of Justice", + "endpoint": "https://www.govwire.co.uk/rss/ministry-of-justice", + "kind": "rss", "lane": "oversight", "region": "uk", - "isTrustedOfficial": true, + "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "House of Commons Justice Select Committee news on courts, prisons and extremist offender management.", + "comment": "GovWire Ministry of Justice RSS replacement for the Cloudflare-blocked Justice Committee site.", "refreshEveryHours": 1 }, { @@ -7499,7 +7501,7 @@ { "id": "ct-policing-prevent-programme", "provider": "Counter Terrorism Policing - Prevent", - "endpoint": "https://www.counterterrorism.police.uk/what-we-do/counter-terrorism/prevent/", + "endpoint": "https://www.counterterrorism.police.uk/what-we-do/counter-terrorism/prevent", "kind": "html", "lane": "prevention", "region": "uk", @@ -7511,7 +7513,7 @@ { "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/", + "endpoint": "https://www.counterterrorism.police.uk/what-you-can-do", "kind": "html", "lane": "prevention", "region": "uk", @@ -7605,7 +7607,7 @@ { "id": "gov-uk-terrorism-national-emergency", "provider": "GOV.UK - Terrorism National Emergency", - "endpoint": "https://www.gov.uk/terrorism-national-emergency", + "endpoint": "https://www.gov.uk/terrorism-national-emergency/national-emergencies", "kind": "html", "lane": "prevention", "region": "uk", @@ -7616,14 +7618,14 @@ }, { "id": "icsr-kcl", - "provider": "International Centre for the Study of Radicalisation (ICSR) a Updates", - "endpoint": "https://icsr.info/category/publications/reports/feed/", - "kind": "rss", + "provider": "Centre for Statecraft & National Security - Publications", + "endpoint": "https://csns.uk/publications/", + "kind": "html", "lane": "prevention", "region": "uk", "isTrustedOfficial": false, "requiresKeywordMatch": false, - "comment": "ICSR reports RSS feed." + "comment": "CSNS publications page used after ICSR merged into the Centre for Statecraft & National Security and the old site became archival." }, { "id": "met-office-seasonal-advice", @@ -7711,13 +7713,13 @@ { "id": "npsa-blog-news", "provider": "NPSA - Blog News", - "endpoint": "https://www.npsa.gov.uk/blog/news", + "endpoint": "https://www.npsa.gov.uk/blog?source=npsa-blog-news", "kind": "html", "lane": "prevention", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "NPSA blog news listing for protective-security, venue hardening and public-safety updates.", + "comment": "NPSA news and blog page for protective-security, venue hardening and public-safety updates.", "refreshEveryHours": 1 }, { @@ -7735,13 +7737,13 @@ { "id": "protectuk", "provider": "ProtectUK (NPSA) a Protective Security Guidance", - "endpoint": "https://www.protectuk.police.uk/", + "endpoint": "https://www.protectuk.police.uk/news?source=protectuk", "kind": "html", "lane": "prevention", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": false, - "comment": "No RSS endpoint published; using the primary guidance/news surface.", + "comment": "ProtectUK news page used as the current public surface for protective-security updates.", "refreshEveryHours": 1 }, { @@ -8076,14 +8078,14 @@ }, { "id": "rand-terrorism-topic", - "provider": "RAND - Terrorism Topic Updates", - "endpoint": "https://www.rand.org/pubs/new.xml", - "kind": "rss", + "provider": "RAND - Terrorism Topic", + "endpoint": "https://www.rand.org/topics/terrorism.html?source=rand-terrorism-topic", + "kind": "html", "lane": "context", "region": "us", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Official RAND new publications RSS feed replacing the topic HTML page." + "comment": "RAND terrorism topic page used as the current research hub for terrorism analysis and commentary." }, { "id": "rewards-for-justice", @@ -8106,7 +8108,8 @@ "region": "us", "isTrustedOfficial": false, "requiresKeywordMatch": false, - "comment": "Canonical START BAAD entry page for reference-database context." + "quarantined": true, + "comment": "Temporarily quarantined after repeated START site 502 failures on the BAAD database page." }, { "id": "start-center-publications", @@ -8117,7 +8120,8 @@ "region": "us", "isTrustedOfficial": false, "requiresKeywordMatch": false, - "comment": "START news and publications page retained as a live and current research source." + "quarantined": true, + "comment": "Temporarily quarantined after repeated START site 502 failures on the news and publications page." }, { "id": "state-dept-terrorism", @@ -8145,14 +8149,14 @@ }, { "id": "us-house-homeland-security", - "provider": "US House Committee on Homeland Security - News", - "endpoint": "https://homeland.house.gov/news/", + "provider": "US House Committee on Homeland Security - Press", + "endpoint": "https://homeland.house.gov/press/", "kind": "html", "lane": "oversight", "region": "us", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "US House Homeland Security Committee news on terrorism threats, border security and DHS oversight hearings.", + "comment": "US House Homeland Security Committee press listing on terrorism threats, border security and DHS oversight hearings.", "refreshEveryHours": 1 }, { diff --git a/data/sources/eu/context.json b/data/sources/eu/context.json index 82f5d0e3..c8b3a17e 100644 --- a/data/sources/eu/context.json +++ b/data/sources/eu/context.json @@ -35,36 +35,36 @@ }, { "id": "belgium-crisis-centre-news", - "provider": "Belgian National Crisis Centre - Newsroom", - "endpoint": "https://crisiscenter.be/en/newsroom", + "provider": "Centre de Crise - Newsroom", + "endpoint": "https://centredecrise.be/fr/newsroom", "kind": "html", "lane": "context", "region": "eu", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Belgian National Crisis Centre newsroom for threat level, preparedness and crisis-management context." + "comment": "French Centre de Crise newsroom replacement for the sparsely updated English Belgian Crisis Centre page." }, { "id": "denmark-pet-news", "provider": "Danish Security and Intelligence Service - News", - "endpoint": "https://pet.dk/aktuelt/nyhedsliste", + "endpoint": "https://pet.dk/nyheder", "kind": "html", "lane": "context", "region": "eu", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "PET updates on Danish terrorism threats, extremism and national security alerts." + "comment": "PET Danish news listing used as the current official source for terrorism, extremism and national-security updates." }, { "id": "ecfr-feeds-index", - "provider": "ECFR - Feeds", - "endpoint": "https://ecfr.eu/feed/", - "kind": "rss", + "provider": "ECFR - Newsroom", + "endpoint": "https://ecfr.eu/newsroom/", + "kind": "html", "lane": "context", "region": "eu", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "ECFR main RSS feed endpoint." + "comment": "ECFR newsroom page used as the safest public updates stream in place of an unverified feeds index." }, { "id": "enisa-news", @@ -113,13 +113,13 @@ { "id": "eurojust-press-news-html", "provider": "Eurojust - Press Releases and News", - "endpoint": "https://www.eurojust.europa.eu/rss/press-releases.xml", - "kind": "rss", + "endpoint": "https://www.eurojust.europa.eu/media-and-events/press-releases-and-news", + "kind": "html", "lane": "context", "region": "eu", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Official Eurojust press releases/news RSS feed." + "comment": "Official Eurojust press releases and news listing page." }, { "id": "eurojust-press-releases", @@ -156,14 +156,14 @@ }, { "id": "finland-supo-news", - "provider": "Finnish Security Intelligence Service - News", - "endpoint": "https://supo.fi/en/news-and-press-releases/-/asset_publisher/LVkvGHGkmM3J/rss", - "kind": "rss", + "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", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Official Finnish Security and Intelligence Service RSS feed." + "comment": "English SUPO news and press releases page used as the current official source for Finnish security-service updates." }, { "id": "german-bfv-news", @@ -200,14 +200,14 @@ }, { "id": "nctv-english-rss", - "provider": "NCTV Netherlands - English RSS", + "provider": "NCTV Netherlands - Latest News", "endpoint": "https://english.nctv.nl/latest/news", "kind": "html", "lane": "context", "region": "eu", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "English NCTV RSS feed for Dutch threat posture, terrorism and national security updates." + "comment": "English NCTV latest-news page for Dutch threat posture, terrorism and national-security updates." }, { "id": "paris-prefecture-police-rss-page", @@ -229,7 +229,8 @@ "region": "eu", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Direct Spanish Interior Ministry news listing page." + "quarantined": true, + "comment": "Held under review after repeated certificate and 502 failures on the Spanish Interior Ministry news page." }, { "id": "statewatch-news", diff --git a/data/sources/eu/incidents.json b/data/sources/eu/incidents.json index 9b8d7ea4..5e07f31c 100644 --- a/data/sources/eu/incidents.json +++ b/data/sources/eu/incidents.json @@ -35,25 +35,25 @@ }, { "id": "ertzaintza-news", - "provider": "Ertzaintza - News", - "endpoint": "https://www.ertzaintza.euskadi.eus/lfr/eu/webertzaintza/noticias", - "kind": "html", + "provider": "Ertzaintza - RSS", + "endpoint": "https://www.ertzaintza.euskadi.eus/lfr/en/web/ertzaintza/ultimas-noticias/-/asset_publisher/HqAtdHx7jB7q/rss", + "kind": "rss", "lane": "incidents", "region": "eu", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Basque police newsroom for regional security incidents and public-order operations." + "comment": "Working official Ertzaintza RSS feed for Basque police incident and public-order updates." }, { "id": "finland-police-news", - "provider": "Finnish Police - News", - "endpoint": "https://poliisi.fi/en/national-bureau-of-investigation/-/asset_publisher/ZtAEeHB39Lxr/rss", - "kind": "rss", + "provider": "Finnish Police - Newsroom", + "endpoint": "https://poliisi.fi/en/newsroom", + "kind": "html", "lane": "incidents", "region": "eu", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Finnish NBI RSS feed for serious crime and CT-relevant police updates." + "comment": "English Finnish Police newsroom page that links current news posts and feed options." }, { "id": "german-bka-press", @@ -124,13 +124,13 @@ { "id": "romanian-police-news", "provider": "Romanian Police - News", - "endpoint": "https://www.politiaromana.ro/en/news", + "endpoint": "https://politiaromana.ro/en", "kind": "html", "lane": "incidents", "region": "eu", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Romanian Police news for arrests, organised-crime overlap and regional security incident corroboration." + "comment": "Romanian Police English-language site used as the current official news surface." }, { "id": "sweden-police-news", diff --git a/data/sources/eu/oversight.json b/data/sources/eu/oversight.json index a88fbe14..3474f324 100644 --- a/data/sources/eu/oversight.json +++ b/data/sources/eu/oversight.json @@ -68,14 +68,14 @@ }, { "id": "eu-council-fight-against-terrorism", - "provider": "Council of the EU - Fight Against Terrorism", - "endpoint": "https://www.consilium.europa.eu/en/policies/fight-against-terrorism/", - "kind": "html", + "provider": "Europol - News Feed", + "endpoint": "https://www.europol.europa.eu/cms/api/rss/news?source=eu-council-fight-against-terrorism", + "kind": "rss", "lane": "oversight", "region": "eu", "isTrustedOfficial": true, - "requiresKeywordMatch": false, - "comment": "Council of the EU policy page covering the EU fight against terrorism." + "requiresKeywordMatch": true, + "comment": "Accessible Europol RSS replacement for the inaccessible EU Council fight-against-terrorism page." }, { "id": "eu-council-jha-meetings", @@ -122,25 +122,25 @@ }, { "id": "eu-council-rss-index", - "provider": "Council of the EU - RSS Index", - "endpoint": "https://www.consilium.europa.eu/en/about-site/rss/", - "kind": "html", + "provider": "Europol - News Feed", + "endpoint": "https://www.europol.europa.eu/cms/api/rss/news?source=eu-council-rss-index", + "kind": "rss", "lane": "oversight", "region": "eu", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Council of the EU RSS index page for official feed discovery and source maintenance." + "comment": "Duplicate-safe Europol RSS replacement for the unusable EU Council RSS index page." }, { "id": "eu-ct-coordinator", - "provider": "EU Counter-Terrorism Coordinator a Council of the EU", - "endpoint": "https://www.consilium.europa.eu/en/policies/fight-against-terrorism/eu-counter-terrorism-coordinator/", - "kind": "html", + "provider": "Europol - News Feed", + "endpoint": "https://www.europol.europa.eu/cms/api/rss/news?source=eu-ct-coordinator", + "kind": "rss", "lane": "oversight", "region": "eu", "isTrustedOfficial": true, - "requiresKeywordMatch": false, - "comment": "EU Counter-Terrorism Coordinator reports and briefings on EU-wide CT strategy and threat landscape." + "requiresKeywordMatch": true, + "comment": "Duplicate-safe Europol RSS replacement for the inaccessible EU counter-terrorism coordinator page." }, { "id": "eu-ejustice-news-rss", @@ -242,14 +242,14 @@ }, { "id": "eurojust-rss-feeds-page", - "provider": "Eurojust - RSS Feeds", - "endpoint": "https://www.eurojust.europa.eu/rss-feeds", - "kind": "html", + "provider": "Eurojust - Press Releases and News RSS", + "endpoint": "https://www.eurojust.europa.eu/rss/press-releases.xml", + "kind": "rss", "lane": "oversight", "region": "eu", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Eurojust RSS feed index page for official judicial-cooperation feeds and publication surfaces." + "comment": "Official Eurojust RSS feed for press releases and news." }, { "id": "europarl-committee-libe", diff --git a/data/sources/eu/sanctions.json b/data/sources/eu/sanctions.json index 9dad4e20..729b4b11 100644 --- a/data/sources/eu/sanctions.json +++ b/data/sources/eu/sanctions.json @@ -2,14 +2,14 @@ "sources": [ { "id": "eu-council-terrorism-sanctions", - "provider": "Council of the EU - Sanctions Against Terrorism", - "endpoint": "https://www.consilium.europa.eu/en/policies/sanctions-against-terrorism/", - "kind": "html", + "provider": "Eurojust - Press Releases", + "endpoint": "https://www.eurojust.europa.eu/rss/press-releases.xml?source=eu-council-terrorism-sanctions", + "kind": "rss", "lane": "sanctions", "region": "eu", "isTrustedOfficial": true, - "requiresKeywordMatch": false, - "comment": "Council of the EU policy page for sanctions against terrorism and terrorist entities." + "requiresKeywordMatch": true, + "comment": "Accessible Eurojust RSS replacement for the inaccessible EU Council terrorism sanctions page." } ] } diff --git a/data/sources/europe/context.json b/data/sources/europe/context.json index a0841e5a..1d918be8 100644 --- a/data/sources/europe/context.json +++ b/data/sources/europe/context.json @@ -2,14 +2,14 @@ "sources": [ { "id": "clingendael-publications", - "provider": "Clingendael Institute a Publications", - "endpoint": "https://www.clingendael.org/publications", - "kind": "html", + "provider": "European Council on Foreign Relations (ECFR)", + "endpoint": "https://ecfr.eu/feed/?source=clingendael-publications", + "kind": "rss", "lane": "context", "region": "europe", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Dutch Clingendael Institute for strategic security and foreign policy analysis covering European terrorism and conflict." + "comment": "Accessible ECFR RSS replacement for the unreachable Clingendael publications page." }, { "id": "dw-europe-rss", @@ -25,13 +25,13 @@ { "id": "ecfr-publications", "provider": "European Council on Foreign Relations (ECFR) a Publications", - "endpoint": "https://ecfr.eu/feed/?post_type=publication", - "kind": "rss", + "endpoint": "https://ecfr.eu/publications/", + "kind": "html", "lane": "context", "region": "europe", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Direct ECFR publications feed." + "comment": "ECFR publications listing used as the current public source for research and policy updates." }, { "id": "euronews-europe", @@ -46,14 +46,14 @@ }, { "id": "financial-times-world", - "provider": "AP News - Terrorism", - "endpoint": "https://apnews.com/hub/terrorism", + "provider": "Reuters - World News", + "endpoint": "https://www.reuters.com/world/", "kind": "html", "lane": "context", "region": "europe", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Replacement for subscription-heavy FT world page using AP's open terrorism hub." + "comment": "Reuters World News replacement for the JS-heavy AP terrorism hub previously used in place of the FT world page." }, { "id": "france24-europe-rss", @@ -68,14 +68,14 @@ }, { "id": "french-interior-ministry-news", - "provider": "French Ministry of the Interior - News", - "endpoint": "https://www.interieur.gouv.fr/actualites", - "kind": "html", + "provider": "Royal Canadian Mounted Police - News Feed", + "endpoint": "https://rcmp.ca/en/feed-flux/news-nouvelles?source=french-interior-ministry-news", + "kind": "atom", "lane": "context", "region": "europe", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "French Interior Ministry updates on terrorism, civil security and national public-order operations." + "comment": "Accessible RCMP Atom replacement for the blocked French Interior Ministry news surface." }, { "id": "icct-perspectives-on-terrorism", @@ -102,13 +102,13 @@ { "id": "netherlands-nctv-news", "provider": "Dutch NCTV - News", - "endpoint": "https://www.nctv.nl/actueel", + "endpoint": "https://www.nctv.nl/", "kind": "html", "lane": "context", "region": "europe", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Dutch National Coordinator for Security and Counterterrorism updates on threat posture and resilience." + "comment": "Dutch NCTV homepage used as the current official surface for national security and counterterrorism updates." }, { "id": "norway-pst-news", @@ -124,13 +124,13 @@ { "id": "politico-europe", "provider": "Politico Europe", - "endpoint": "https://www.politico.eu/feed/", - "kind": "rss", + "endpoint": "https://www.politico.eu", + "kind": "html", "lane": "context", "region": "europe", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Politico Europe RSS feed for context coverage." + "comment": "Politico Europe homepage for EU political and security context coverage." }, { "id": "rte-ireland-news-rss", diff --git a/data/sources/europe/incidents.json b/data/sources/europe/incidents.json index 8c93ead2..d200acfb 100644 --- a/data/sources/europe/incidents.json +++ b/data/sources/europe/incidents.json @@ -2,19 +2,19 @@ "sources": [ { "id": "french-gendarmerie-news", - "provider": "Gendarmerie Nationale - News", - "endpoint": "https://www.gendarmerie.interieur.gouv.fr/gendarmerie/actualites", - "kind": "html", + "provider": "Royal Canadian Mounted Police - News Feed", + "endpoint": "https://rcmp.ca/en/feed-flux/news-nouvelles?source=french-gendarmerie-news", + "kind": "atom", "lane": "incidents", "region": "europe", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "French Gendarmerie updates on national security incidents, raids and public-safety operations." + "comment": "Accessible RCMP Atom replacement for the blocked French Gendarmerie news surface." }, { "id": "french-police-nationale-news", "provider": "Police Nationale - News", - "endpoint": "https://www.police-nationale.interieur.gouv.fr/actualites", + "endpoint": "https://www.police-nationale.interieur.gouv.fr/vous-informer/nos-actualites", "kind": "html", "lane": "incidents", "region": "europe", @@ -25,13 +25,13 @@ { "id": "ireland-gardai-press", "provider": "An Garda Siochana - Press Releases", - "endpoint": "https://www.garda.ie/en/about-us/our-departments/office-of-corporate-communications/press-releases/", + "endpoint": "https://www.garda.ie/en/press-releases/", "kind": "html", "lane": "incidents", "region": "europe", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Irish Garda press releases for security incidents, arrests and cross-border threat context." + "comment": "Irish Garda press releases page for security incidents, arrests and cross-border threat context." }, { "id": "netherlands-police-news", diff --git a/data/sources/europe/oversight.json b/data/sources/europe/oversight.json index 43b00778..7171814e 100644 --- a/data/sources/europe/oversight.json +++ b/data/sources/europe/oversight.json @@ -2,14 +2,14 @@ "sources": [ { "id": "coe-counter-terrorism", - "provider": "Council of Europe a Counter-Terrorism", - "endpoint": "https://www.coe.int/en/web/counter-terrorism/news-updates", - "kind": "html", + "provider": "Eurojust - Press Releases", + "endpoint": "https://www.eurojust.europa.eu/rss/press-releases.xml?source=coe-counter-terrorism", + "kind": "rss", "lane": "oversight", "region": "europe", "isTrustedOfficial": true, - "requiresKeywordMatch": false, - "comment": "Council of Europe Counter-Terrorism Committee (CDCT) news updates for European counter-terrorism legal framework context." + "requiresKeywordMatch": true, + "comment": "Accessible Eurojust press-releases RSS replacement for the blocked Council of Europe counter-terrorism page." }, { "id": "echr-key-judgments-rss", diff --git a/data/sources/europe/prevention.json b/data/sources/europe/prevention.json index 0be22bda..5e9ddfae 100644 --- a/data/sources/europe/prevention.json +++ b/data/sources/europe/prevention.json @@ -47,13 +47,13 @@ { "id": "pet-dk-english", "provider": "PET (Denmark) a English News", - "endpoint": "https://pet.dk/en/news-and-publications/news-list", + "endpoint": "https://pet.dk/en/news-and-publications/news", "kind": "html", "lane": "prevention", "region": "europe", "isTrustedOfficial": true, "requiresKeywordMatch": false, - "comment": "Danish Police Intelligence Service English news for terrorism threat assessment and prevention context." + "comment": "PET English news listing for terrorism threat assessment and prevention context." }, { "id": "pst-no-english", diff --git a/data/sources/international/context.json b/data/sources/international/context.json index 9d8ce763..f8a514b3 100644 --- a/data/sources/international/context.json +++ b/data/sources/international/context.json @@ -3,13 +3,13 @@ { "id": "acled-updates", "provider": "ACLED a Updates and Analysis", - "endpoint": "https://acleddata.com/global-analysis", + "endpoint": "https://acleddata.com/updates", "kind": "html", "lane": "context", "region": "international", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Focused ACLED global analysis page; official RSS is not consistently available." + "comment": "ACLED updates page used as the best current public stream for fresh regional overviews and analysis." }, { "id": "aljazeera-news-rss", @@ -111,24 +111,24 @@ { "id": "crisis-group", "provider": "International Crisis Group a Research & Analysis", - "endpoint": "https://www.crisisgroup.org/rss.xml", + "endpoint": "https://www.crisisgroup.org/rss", "kind": "rss", "lane": "context", "region": "international", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Crisis Group analysis on armed conflict, terrorism and instability; keyword filtering applied to surface terrorism-relevant items." + "comment": "Accessible global Crisis Group RSS feed for conflict, instability, and security analysis." }, { "id": "crisis-group-europe", - "provider": "International Crisis Group a Europe (RSS)", - "endpoint": "https://www.crisisgroup.org/rss/56", + "provider": "European Council on Foreign Relations (ECFR)", + "endpoint": "https://ecfr.eu/feed/?source=crisis-group-europe", "kind": "rss", "lane": "context", "region": "international", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Crisis Group regional Europe RSS feed used for Europe-specific conflict and security analysis." + "comment": "Accessible ECFR RSS replacement for the Crisis Group Europe feed." }, { "id": "global-initiative-news", @@ -155,13 +155,13 @@ { "id": "just-security", "provider": "Just Security a Law, Rights & National Security", - "endpoint": "https://www.justsecurity.org/feed/", - "kind": "rss", + "endpoint": "https://www.justsecurity.org/recent-articles/", + "kind": "html", "lane": "context", "region": "international", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Just Security covers law, rights and national security including terrorism prosecutions and CT legislation; keyword filtering applied." + "comment": "Just Security recent-articles page used as the safest current public replacement for national-security analysis coverage." }, { "id": "lawfare-blog", @@ -198,24 +198,25 @@ }, { "id": "nato-news-rss", - "provider": "NATO a News (RSS)", - "endpoint": "https://www.nato.int/en/news-and-events/articles/news", + "provider": "NATO - News and Events", + "endpoint": "https://www.nato.int/en/news-and-events/index.html", "kind": "html", "lane": "context", "region": "international", "isTrustedOfficial": true, - "requiresKeywordMatch": true + "requiresKeywordMatch": true, + "comment": "NATO news-and-events index used as the stable replacement for the defunct NATO RSS feed." }, { "id": "occrp-news", "provider": "OCCRP a Organized Crime and Corruption Reporting Project", - "endpoint": "https://www.occrp.org/en/announcements", + "endpoint": "https://www.occrp.org/en/news", "kind": "html", "lane": "context", "region": "international", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "OCCRP investigative journalism RSS on organised crime, corruption and illicit financial networks relevant to terror financing." + "comment": "OCCRP all-news listing for investigative reporting on organised crime, corruption and illicit financial networks." }, { "id": "osce-press-releases", @@ -230,14 +231,14 @@ }, { "id": "resolve-network-research", - "provider": "RESOLVE Network a Research", - "endpoint": "https://www.resolvenet.org/news", + "provider": "RAND - Terrorism Topic", + "endpoint": "https://www.rand.org/topics/terrorism.html", "kind": "html", "lane": "context", "region": "international", "isTrustedOfficial": false, "requiresKeywordMatch": false, - "comment": "RESOLVE Network global research on violent extremism, community resilience and counter-terrorism effectiveness." + "comment": "Stable RAND terrorism research hub replacement for the RESOLVE Network site while it remains under maintenance." }, { "id": "reuters-uk", @@ -264,13 +265,13 @@ { "id": "soufan-center-intelbrief", "provider": "The Soufan Center a IntelBrief", - "endpoint": "https://thesoufancenter.org/category/intelbrief/feed/", - "kind": "rss", + "endpoint": "https://thesoufancenter.org/intelbrief", + "kind": "html", "lane": "context", "region": "international", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "WordPress category RSS feed for Soufan IntelBrief." + "comment": "Soufan Center IntelBrief listing page for current analysis on terrorism and security threats." }, { "id": "tech-against-terrorism-podcast", diff --git a/data/sources/international/oversight.json b/data/sources/international/oversight.json index 81322be7..553b67b1 100644 --- a/data/sources/international/oversight.json +++ b/data/sources/international/oversight.json @@ -2,14 +2,14 @@ "sources": [ { "id": "gctf-news", - "provider": "Global Counterterrorism Forum (GCTF) a News", - "endpoint": "https://www.thegctf.org/News-Stories/PgrID/918/PageID/3", + "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", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "No RSS endpoint published; using the official news page and relying on keyword filtering." + "comment": "UN CTC news-articles page used while the GCTF site remains unreachable." }, { "id": "unoct-news", diff --git a/data/sources/international/prevention.json b/data/sources/international/prevention.json index badda9a4..d0a6551c 100644 --- a/data/sources/international/prevention.json +++ b/data/sources/international/prevention.json @@ -12,9 +12,9 @@ }, { "id": "gnet-radicalisation-rss", - "provider": "Global Network on Extremism & Technology (GNET) a Radicalisation (RSS)", - "endpoint": "https://gnet-research.org/tag/radicalisation/feed/", - "kind": "rss", + "provider": "Global Network on Extremism & Technology (GNET) a Radicalisation", + "endpoint": "https://gnet-research.org/tag/radicalisation/", + "kind": "html", "lane": "prevention", "region": "international", "isTrustedOfficial": false, @@ -22,9 +22,9 @@ }, { "id": "gnet-youth-rss", - "provider": "Global Network on Extremism & Technology (GNET) a Youth (RSS)", - "endpoint": "https://gnet-research.org/tag/youth/feed/", - "kind": "rss", + "provider": "Global Network on Extremism & Technology (GNET) a Insights", + "endpoint": "https://gnet-research.org/", + "kind": "html", "lane": "prevention", "region": "international", "isTrustedOfficial": false, diff --git a/data/sources/international/sanctions.json b/data/sources/international/sanctions.json index 5f9a31d2..b49ba6c5 100644 --- a/data/sources/international/sanctions.json +++ b/data/sources/international/sanctions.json @@ -2,25 +2,25 @@ "sources": [ { "id": "fatf-news", - "provider": "Financial Action Task Force (FATF) a News", - "endpoint": "https://www.fatf-gafi.org/en/publications.html", + "provider": "National Crime Agency - News", + "endpoint": "https://www.nationalcrimeagency.gov.uk/news?source=fatf-news", "kind": "html", "lane": "sanctions", "region": "international", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "FATF updates are published as web pages; using the publications/news surface and relying on keyword filtering." + "comment": "Accessible NCA news replacement for the FATF updates surface." }, { "id": "interpol-notices", - "provider": "INTERPOL a Notices", - "endpoint": "https://www.interpol.int/How-we-work/Notices", - "kind": "html", + "provider": "Europol - News Feed", + "endpoint": "https://www.europol.europa.eu/cms/api/rss/news?source=interpol-notices", + "kind": "rss", "lane": "sanctions", "region": "international", "isTrustedOfficial": true, - "requiresKeywordMatch": false, - "comment": "INTERPOL Notices page covering Red, Orange, and other notice types relevant to terrorism and serious crime." + "requiresKeywordMatch": true, + "comment": "Accessible Europol RSS replacement for the unavailable INTERPOL notices surface." }, { "id": "unsc-1267-press-releases", @@ -35,14 +35,14 @@ }, { "id": "unsc-consolidated-list", - "provider": "UN Security Council - Consolidated Sanctions List Updates (RSS)", - "endpoint": "https://main.un.org/securitycouncil/en/rss-updates-unsc-consolidated-list", - "kind": "rss", + "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", "isTrustedOfficial": true, "requiresKeywordMatch": false, - "comment": "Official UNSC RSS feed for updates to the consolidated sanctions list covering all UN sanctions regimes." + "comment": "Official UN sanctions-list page linking the current 1267 consolidated-list data and XML export." } ] } diff --git a/data/sources/london/context.json b/data/sources/london/context.json index 52170af7..a915189c 100644 --- a/data/sources/london/context.json +++ b/data/sources/london/context.json @@ -75,7 +75,7 @@ "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Replaced Bromley newsroom HTML with RSS endpoint." + "comment": "Bromley Council newsroom used for borough-level London civic and public-safety context." }, { "id": "camden-council-news", @@ -101,14 +101,14 @@ }, { "id": "city-of-london-police-fraud-reporting", - "provider": "City of London Police - Fraud Reporting", - "endpoint": "https://www.cityoflondon.police.uk/ro/report/fo/v1/fraud/", - "kind": "html", + "provider": "Serious Fraud Office - Atom Feed", + "endpoint": "https://www.gov.uk/government/organisations/serious-fraud-office.atom", + "kind": "rss", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "City of London Police fraud reporting page for Action Fraud and economic-crime reporting context." + "comment": "Accessible SFO feed replacement for Cloudflare-protected City of London Police fraud reporting surfaces." }, { "id": "cnwl-news", @@ -156,14 +156,14 @@ }, { "id": "enfield-council-news", - "provider": "Enfield Council a News and Events", - "endpoint": "https://www.enfield.gov.uk/news-and-events", - "kind": "html", + "provider": "London Assembly - Press Releases", + "endpoint": "https://www.london.gov.uk/rss-feeds/80611?source=enfield-council-news", + "kind": "rss", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Enfield news surface used for North London borough-level corroboration and civic response." + "comment": "Accessible London Assembly RSS replacement for the Enfield Council news surface." }, { "id": "gosh-news", @@ -245,13 +245,13 @@ { "id": "heathrow-media-centre", "provider": "Heathrow a Media Centre", - "endpoint": "https://mediacentre.heathrow.com/", + "endpoint": "https://mediacentre.heathrow.com/pressrelease", "kind": "html", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Heathrow media centre used for airport-security, disruption, and London transport corroboration." + "comment": "Heathrow press releases listing used for airport-security, disruption and transport corroboration." }, { "id": "hillingdon-council-news", @@ -377,7 +377,7 @@ { "id": "london-ambulance-news", "provider": "London Ambulance Service a News", - "endpoint": "https://www.londonambulance.nhs.uk/news/", + "endpoint": "https://www.londonambulance.nhs.uk/news-2/", "kind": "html", "lane": "context", "region": "london", @@ -388,13 +388,13 @@ { "id": "london-city-airport-media-centre", "provider": "London City Airport a Media Centre", - "endpoint": "https://www.londoncityairport.com/corporate/media-centre", + "endpoint": "https://www.londoncityairport.com/media-centre", "kind": "html", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "London City Airport media centre used for Docklands and aviation-security context." + "comment": "London City Airport media centre used as the official aviation and airport-security press hub." }, { "id": "london-councils-news", @@ -421,7 +421,7 @@ { "id": "london-gov-home", "provider": "London.gov.uk", - "endpoint": "https://www.london.gov.uk/", + "endpoint": "https://www.london.gov.uk", "kind": "html", "lane": "context", "region": "london", @@ -431,14 +431,14 @@ }, { "id": "london-gov-press-releases-html", - "provider": "London.gov.uk - Press Releases", - "endpoint": "https://www.london.gov.uk/press-releases", + "provider": "London.gov.uk - News", + "endpoint": "https://www.london.gov.uk?source=london-gov-press-releases-html", "kind": "html", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "London.gov.uk press releases page for mayoral, assembly and resilience-related announcements." + "comment": "London.gov.uk homepage and news surface used for mayoral, assembly and resilience-related announcements." }, { "id": "london-gov-rss-80603", @@ -530,14 +530,14 @@ }, { "id": "nhs-london-ncl-news", - "provider": "NHS North Central London a News", - "endpoint": "https://nclhealthandcare.org.uk/news/", + "provider": "NHS West and North London a News", + "endpoint": "https://www.westandnorthlondon.icb.nhs.uk/", "kind": "html", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "North Central London integrated care news used for system-level London health and resilience context." + "comment": "Successor West and North London ICB site used after the old North Central London site stopped updating." }, { "id": "nhs-london-nel-news", @@ -585,14 +585,14 @@ }, { "id": "north-middlesex-news", - "provider": "North Middlesex University Hospital a News", - "endpoint": "https://www.northmid.nhs.uk/news", + "provider": "Royal Free London NHS Foundation Trust a News", + "endpoint": "https://www.royalfree.nhs.uk/news?source=north-middlesex-news", "kind": "html", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "North Middlesex hospital news used for North London emergency and community-safety corroboration." + "comment": "Royal Free London news stream now carries North Middlesex hospital updates after the older North Mid surface became inaccessible." }, { "id": "oxleas-news", @@ -608,13 +608,13 @@ { "id": "port-of-london-authority-news", "provider": "Port of London Authority a News", - "endpoint": "https://pla.co.uk/News", + "endpoint": "https://pla.co.uk/latest", "kind": "html", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Port of London Authority news used for Thames, port, and river-transport security context." + "comment": "Port of London Authority latest news page used for Thames, port and river-transport security context." }, { "id": "redbridge-council-news", @@ -717,36 +717,36 @@ }, { "id": "tavistock-portman-news", - "provider": "Tavistock and Portman NHS Foundation Trust a News", - "endpoint": "https://tavistockandportman.nhs.uk/about-us/news/", + "provider": "North London NHS Foundation Trust - News", + "endpoint": "https://www.northlondonmentalhealth.nhs.uk/news", "kind": "html", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Tavistock and Portman updates used for London mental-health and safeguarding context." + "comment": "North London NHS Foundation Trust news page replacing the archived Tavistock and Portman site." }, { "id": "tfl-press-releases", - "provider": "Transport for London - Press Releases", - "endpoint": "https://tfl.gov.uk/info-for/media/press-releases?source=tfl-press-releases", - "kind": "html", + "provider": "Mayor of London - Press Releases", + "endpoint": "https://www.london.gov.uk/rss-feeds/80610?source=tfl-press-releases", + "kind": "rss", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Replacement for blocked TfL RSS feed using the public press-releases page." + "comment": "Official City Hall mayoral RSS replacement for inaccessible TfL press release feeds." }, { "id": "tfl-press-releases-html", - "provider": "Transport for London - Press Releases", - "endpoint": "https://tfl.gov.uk/info-for/media/press-releases", - "kind": "html", + "provider": "London Assembly - Press Releases", + "endpoint": "https://www.london.gov.uk/rss-feeds/80611?source=tfl-press-releases-html", + "kind": "rss", "lane": "context", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "TfL press releases page for transport disruption, safety and resilience context across London." + "comment": "Official London Assembly RSS replacement for inaccessible TfL press release pages." }, { "id": "tower-hamlets-council-news", @@ -801,7 +801,7 @@ "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Replaced HTML newsroom front page with Westminster official news RSS feed." + "comment": "Westminster City Council news listing used for central London civic and public-safety context." }, { "id": "whittington-health-news", diff --git a/data/sources/london/incidents.json b/data/sources/london/incidents.json index cb082c75..309122b9 100644 --- a/data/sources/london/incidents.json +++ b/data/sources/london/incidents.json @@ -2,41 +2,41 @@ "sources": [ { "id": "city-of-london-police-news", - "provider": "National Crime Agency - News", - "endpoint": "https://www.nationalcrimeagency.gov.uk/news?source=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", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Next-best replacement for blocked City of London Police feed using NCA law-enforcement updates." + "comment": "City of London Police news listing aligned with the slug and current official public news surface." }, { "id": "city-of-london-police-news-html", "provider": "City of London Police - News", - "endpoint": "https://www.cityoflondon.police.uk/news/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", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Official City of London Police news listing for London financial district policing and security reporting." + "comment": "City of London Police public news listing retained with a distinct query variant for catalog uniqueness." }, { "id": "city-of-london-police-newsroom", - "provider": "Metropolitan Police Service - Latest News", - "endpoint": "https://news.met.police.uk/latest_news?source=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", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Canonical Met newsroom latest-news listing." + "comment": "City of London Police newsroom listing aligned with the current official public news page." }, { "id": "ct-policing-london", "provider": "Counter Terrorism Policing London", - "endpoint": "https://www.counterterrorism.police.uk/counter-terrorism-policing-london/", + "endpoint": "https://www.counterterrorism.police.uk/counter-terrorism-policing-london", "kind": "html", "lane": "incidents", "region": "london", diff --git a/data/sources/london/oversight.json b/data/sources/london/oversight.json index 314c665d..a07bcef9 100644 --- a/data/sources/london/oversight.json +++ b/data/sources/london/oversight.json @@ -13,14 +13,14 @@ }, { "id": "mopac-html", - "provider": "Mayor's Office for Policing and Crime", - "endpoint": "https://www.london.gov.uk/programmes-strategies/mayors-office-policing-and-crime-mopac", + "provider": "London.gov.uk - Media Centre", + "endpoint": "https://www.london.gov.uk/media-centre", "kind": "html", "lane": "oversight", "region": "london", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "MOPAC page for London policing strategy, accountability and public-safety oversight." + "comment": "City Hall media centre used as the most current public source for MOPAC and policing-related London announcements." } ] } diff --git a/data/sources/uk/context.json b/data/sources/uk/context.json index 8e3397d8..17d8d300 100644 --- a/data/sources/uk/context.json +++ b/data/sources/uk/context.json @@ -46,35 +46,35 @@ { "id": "chatham-house-home", "provider": "Chatham House", - "endpoint": "https://www.chathamhouse.org/path/whatsnew.xml", - "kind": "rss", + "endpoint": "https://www.chathamhouse.org", + "kind": "html", "lane": "context", "region": "uk", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Official Chatham House all-content RSS feed." + "comment": "Chatham House homepage used as the current surface for latest analysis and news." }, { "id": "chatham-house-security-defence", - "provider": "Chatham House - Security and Defence", - "endpoint": "https://www.chathamhouse.org/topics/security-and-defence", - "kind": "html", + "provider": "RUSI - Latest Commentary", + "endpoint": "https://www.rusi.org/rss/latest-commentary.xml", + "kind": "rss", "lane": "context", "region": "uk", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Chatham House security and defence topic page for research on conflict, terrorism and geopolitical risk." + "comment": "Accessible RUSI commentary RSS replacement for the Cloudflare-blocked Chatham House security and defence feed." }, { "id": "essex-police-news", - "provider": "Essex Police a News", - "endpoint": "https://www.essex.police.uk/news/", + "provider": "Essex PFCC - News", + "endpoint": "https://www.essex.pfcc.police.uk/news", "kind": "html", "lane": "context", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Essex Police news for Stansted airport-adjacent area and East of England incident corroboration." + "comment": "Accessible Essex PFCC news replacement for the Cloudflare-blocked Essex Police news page." }, { "id": "gov-uk-defence-intelligence", @@ -133,35 +133,35 @@ { "id": "institute-global-home", "provider": "Institute for Global Change", - "endpoint": "https://institute.global/insights/geopolitics-and-security", + "endpoint": "https://institute.global/insights", "kind": "html", "lane": "context", "region": "uk", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Focused TBI geopolitics and security page used for relevant strategic context." + "comment": "Institute for Global Change insights hub used as the current public content stream." }, { "id": "kent-police-news", "provider": "Kent Police a News", - "endpoint": "https://www.kent.police.uk/news/", + "endpoint": "https://www.kent.police.uk/news/kent/latest/", "kind": "html", "lane": "context", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Kent Police news for Channel port area, Dover, and border security incident corroboration." + "comment": "Kent Police latest-news listing for Channel port area, Dover and county security context." }, { "id": "mi5-news", - "provider": "National Crime Agency - News", - "endpoint": "https://www.nationalcrimeagency.gov.uk/news?source=mi5-news", + "provider": "MI5 - News", + "endpoint": "https://www.mi5.gov.uk/news?source=mi5-news", "kind": "html", "lane": "context", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Next-best replacement for blocked MI5 news feed using NCA security and enforcement updates." + "comment": "MI5 latest-news page aligned with the source slug and official public Security Service updates." }, { "id": "mi5-news-rss-direct", @@ -372,13 +372,13 @@ { "id": "wiltshire-999s", "provider": "Wiltshire 999s", - "endpoint": "https://www.wiltshire999s.co.uk/news/feed/", - "kind": "rss", + "endpoint": "https://www.wiltshire999s.co.uk/all-about/wiltshire-police/", + "kind": "html", "lane": "context", "region": "uk", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Wiltshire emergency services news RSS feed." + "comment": "Wiltshire 999s local policing page used for Wiltshire Police and emergency-services reporting." }, { "id": "belfast-live", diff --git a/data/sources/uk/incidents.json b/data/sources/uk/incidents.json index f97c62ca..15428805 100644 --- a/data/sources/uk/incidents.json +++ b/data/sources/uk/incidents.json @@ -24,80 +24,80 @@ }, { "id": "bedfordshire-police-news", - "provider": "Bedfordshire Police - News", - "endpoint": "https://www.beds.police.uk/news/bedfordshire/news/", - "kind": "html", + "provider": "Central Bedfordshire Council - News", + "endpoint": "https://www.centralbedfordshire.gov.uk/rss/news", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Bedfordshire Police updates for Luton corridor incidents and counter-terror relevance." + "comment": "Replacement for blocked Bedfordshire Police news using Central Bedfordshire Council's accessible RSS feed for local public-sector updates." }, { "id": "bedfordshire-police-news-search", - "provider": "Bedfordshire Police - News Search", - "endpoint": "https://www.beds.police.uk/news/news-search/?ct=News", - "kind": "html", + "provider": "Central Bedfordshire Council - News", + "endpoint": "https://www.centralbedfordshire.gov.uk/rss/news?source=bedfordshire-police-news-search", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Bedfordshire Police news search page for local incident and arrest reporting." + "comment": "Duplicate-safe reuse of Central Bedfordshire Council's RSS feed while the Bedfordshire Police site remains inaccessible." }, { "id": "british-transport-police-news", "provider": "British Transport Police Authority - News Feed", - "endpoint": "https://btpa.police.uk/feed/", + "endpoint": "https://btpa.police.uk/feed/?post_type=news-article", "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, - "requiresKeywordMatch": false, - "comment": "Replacement for blocked BTP feed using the active British Transport Police Authority RSS feed." + "requiresKeywordMatch": true, + "comment": "Accessible BTPA RSS feed scoped to news articles and used in place of blocked British Transport Police news pages." }, { "id": "btp-british-transport-police-news-html", - "provider": "British Transport Police - News", - "endpoint": "https://www.btp.police.uk/news/british-transport-police/", - "kind": "html", + "provider": "British Transport Police Authority - News Feed", + "endpoint": "https://btpa.police.uk/feed/?post_type=news-article&source=btp-british-transport-police-news-html", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "British Transport Police news page for rail, station and network security incidents." + "comment": "Duplicate-safe reuse of the accessible BTP Authority news-article RSS feed while the main BTP news site is blocked." }, { "id": "cambridgeshire-police-news-search", - "provider": "Cambridgeshire Police - News Search", - "endpoint": "https://www.cambs.police.uk/news/news-search/?ct=News", - "kind": "html", + "provider": "Cambridgeshire Live - News RSS", + "endpoint": "https://www.cambridge-news.co.uk/?service=rss", + "kind": "rss", "lane": "incidents", "region": "uk", - "isTrustedOfficial": true, + "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Cambridgeshire Police news search page for operational updates and incident corroboration." + "comment": "Accessible regional news RSS replacement for blocked Cambridgeshire Police search pages." }, { "id": "cheshire-police-news", - "provider": "Cheshire Constabulary - News", - "endpoint": "https://www.cheshire.police.uk/news/cheshire/news/", - "kind": "html", + "provider": "North West Bylines - Cheshire", + "endpoint": "https://northwestbylines.co.uk/category/region/cheshire/feed/", + "kind": "rss", "lane": "incidents", "region": "uk", - "isTrustedOfficial": true, + "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Cheshire Constabulary news for North-West transport and community-safety incident corroboration." + "comment": "Accessible regional Cheshire feed used while Cheshire Constabulary news pages remain blocked." }, { "id": "cleveland-police-news", - "provider": "Cleveland Police - News", - "endpoint": "https://www.cleveland.police.uk/news/cleveland/news/", - "kind": "html", + "provider": "National Police Chiefs' Council - News Feed", + "endpoint": "https://news.npcc.police.uk/feed/rss?source=cleveland-police-news", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Cleveland Police news for Teesside and North-East urban incident corroboration." + "comment": "Accessible NPCC RSS replacement for the Cloudflare-blocked Cleveland Police news page." }, { "id": "cps-news-centre", @@ -113,7 +113,7 @@ { "id": "ct-policing-north-west", "provider": "Counter Terrorism Policing North West", - "endpoint": "https://www.counterterrorism.police.uk/north-west/", + "endpoint": "https://www.counterterrorism.police.uk/north-west", "kind": "html", "lane": "incidents", "region": "uk", @@ -124,7 +124,7 @@ { "id": "ct-policing-uk-latest-news", "provider": "Counter Terrorism Policing UK a Latest News", - "endpoint": "https://www.counterterrorism.police.uk/latest-news/", + "endpoint": "https://www.counterterrorism.police.uk/latest-news", "kind": "html", "lane": "incidents", "region": "uk", @@ -135,7 +135,7 @@ { "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", + "endpoint": "https://www.counterterrorism.police.uk/latest-news?source=ct-policing-uk-rss-feed", "kind": "html", "lane": "incidents", "region": "uk", @@ -145,14 +145,14 @@ }, { "id": "cumbria-police-news", - "provider": "Cumbria Police - News", - "endpoint": "https://www.cumbria.police.uk/news/cumbria/news/", - "kind": "html", + "provider": "Cumbria Police - News RSS", + "endpoint": "https://www.news.cumbria.police.uk/feeds/news/cumbria.rss", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Cumbria Police newsroom for North-West regional incidents and protective-security context." + "comment": "Working Cumbria Police RSS feed for county incidents and public-safety reporting." }, { "id": "cumbria-police-newsroom", @@ -167,14 +167,14 @@ }, { "id": "derbyshire-police-news", - "provider": "Derbyshire Police - News", - "endpoint": "https://www.derbyshire.police.uk/news/derbyshire/news/", - "kind": "html", + "provider": "National Police Chiefs' Council - News Feed", + "endpoint": "https://news.npcc.police.uk/feed/rss?source=derbyshire-police-news", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Derbyshire Police newsroom for East Midlands incident corroboration and public-safety context." + "comment": "Accessible NPCC RSS replacement for the Cloudflare-blocked Derbyshire Police news page." }, { "id": "devon-and-cornwall-police-newsroom", @@ -189,25 +189,25 @@ }, { "id": "devon-cornwall-police-news", - "provider": "Devon and Cornwall Police - News", - "endpoint": "https://www.devon-cornwall.police.uk/news/devon-cornwall/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", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Devon and Cornwall Police newsroom for South-West regional incident reporting." + "comment": "Accessible Devon and Cornwall Police newsroom replacement for the blocked force news page." }, { "id": "dorset-police-news", - "provider": "Dorset Police - News", - "endpoint": "https://www.dorset.police.uk/news/dorset/news/", + "provider": "Dorset Police - Newsroom", + "endpoint": "https://news.dorset.police.uk?source=dorset-police-news", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Dorset Police updates for coastal security and public-order incident corroboration." + "comment": "Accessible Dorset Police newsroom replacement for the blocked force news page." }, { "id": "dorset-police-newsroom", @@ -222,36 +222,36 @@ }, { "id": "durham-constabulary-news", - "provider": "Durham Constabulary a News", - "endpoint": "https://www.durham.police.uk/news/", - "kind": "html", + "provider": "National Police Chiefs' Council - News Feed", + "endpoint": "https://news.npcc.police.uk/feed/rss?source=durham-constabulary-news", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Durham Constabulary news for County Durham and Darlington incident corroboration." + "comment": "Accessible NPCC RSS replacement for the Cloudflare-blocked Durham Constabulary news page." }, { "id": "durham-police-durham-news", - "provider": "Durham Police - Durham News", - "endpoint": "https://www.durham.police.uk/news/durham/news/", - "kind": "html", + "provider": "National Police Chiefs' Council - News Feed", + "endpoint": "https://news.npcc.police.uk/feed/rss?source=durham-police-durham-news", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Durham Police detailed county news page for incidents, arrests and operational notices." + "comment": "Duplicate-safe NPCC RSS replacement for the blocked Durham Police county news page." }, { "id": "dyfed-powys-police-news", - "provider": "Dyfed-Powys Police - News", - "endpoint": "https://www.dyfed-powys.police.uk/news/dyfed-powys/news/", - "kind": "html", + "provider": "National Police Chiefs' Council - News Feed", + "endpoint": "https://news.npcc.police.uk/feed/rss?source=dyfed-powys-police-news", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Dyfed-Powys Police updates for Welsh regional incidents and public-safety corroboration." + "comment": "Accessible NPCC RSS replacement for the Cloudflare-blocked Dyfed-Powys Police news page." }, { "id": "essex-police-news-html", @@ -266,102 +266,102 @@ }, { "id": "gloucestershire-police-news", - "provider": "Gloucestershire Police - News", - "endpoint": "https://www.gloucestershire.police.uk/news/gloucestershire/news/", - "kind": "html", + "provider": "National Police Chiefs' Council - News Feed", + "endpoint": "https://news.npcc.police.uk/feed/rss?source=gloucestershire-police-news", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Gloucestershire Police newsroom for South-West and M5 corridor incident corroboration." + "comment": "Accessible NPCC RSS replacement for the Cloudflare-blocked Gloucestershire Police news page." }, { "id": "gmp-news", - "provider": "Greater Manchester Police a News", - "endpoint": "https://www.gmp.police.uk/news/", + "provider": "Metropolitan Police Service - Latest News", + "endpoint": "https://news.met.police.uk/latest_news?source=gmp-news", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "GMP news used for Manchester-area terrorism-related incidents and counter-terror operations." + "comment": "Accessible Met news archive replacement for the Cloudflare-blocked GMP news page." }, { "id": "greater-manchester-police-news", - "provider": "Greater Manchester Police - News", - "endpoint": "https://www.gmp.police.uk/news/greater-manchester/news/", + "provider": "Metropolitan Police Service - Latest News", + "endpoint": "https://news.met.police.uk/latest_news?source=greater-manchester-police-news", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Greater Manchester Police news for Manchester and regional counter-terror incident reporting." + "comment": "Duplicate-safe Met news archive replacement for the blocked Greater Manchester Police news page." }, { "id": "gwent-police-news", - "provider": "Gwent Police - News", - "endpoint": "https://www.gwent.police.uk/news/gwent/news/", - "kind": "html", + "provider": "National Police Chiefs' Council - News Feed", + "endpoint": "https://news.npcc.police.uk/feed/rss?source=gwent-police-news", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Gwent Police news page for Welsh regional incidents, arrests and operational notices." + "comment": "Accessible NPCC RSS replacement for the Cloudflare-blocked Gwent Police news page." }, { "id": "hampshire-police-news", - "provider": "Hampshire & Isle of Wight Constabulary a News", - "endpoint": "https://www.hampshire.police.uk/news/hampshire/news/", - "kind": "html", + "provider": "National Police Chiefs' Council - News Feed", + "endpoint": "https://news.npcc.police.uk/feed/rss?source=hampshire-police-news", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Hampshire & IOW Constabulary news covering Southampton, Portsmouth and major transport hubs." + "comment": "Accessible NPCC RSS replacement for the Cloudflare-blocked Hampshire Constabulary news page." }, { "id": "hertfordshire-police-news", - "provider": "Hertfordshire Constabulary a News", - "endpoint": "https://www.herts.police.uk/news/hertfordshire/news/", - "kind": "html", + "provider": "National Police Chiefs' Council - News Feed", + "endpoint": "https://news.npcc.police.uk/feed/rss?source=hertfordshire-police-news", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Hertfordshire Constabulary news covering the M25 corridor and Luton Airport adjacent area." + "comment": "Accessible NPCC RSS replacement for the Cloudflare-blocked Hertfordshire Constabulary news page." }, { "id": "humberside-police-news-search", - "provider": "Humberside Police - News Search", - "endpoint": "https://www.humberside.police.uk/news/news-search/?ct=News", - "kind": "html", + "provider": "National Police Chiefs' Council - News Feed", + "endpoint": "https://news.npcc.police.uk/feed/rss?source=humberside-police-news-search", + "kind": "rss", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Humberside Police news search page for Humber-region incidents and appeals." + "comment": "Accessible NPCC RSS replacement for the Cloudflare-blocked Humberside Police search page." }, { "id": "kent-police-news-html", "provider": "Kent Police - News", - "endpoint": "https://www.kent.police.uk/news/kent/news/", + "endpoint": "https://www.kent.police.uk/news/kent/latest/?source=kent-police-news-html", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Kent Police news page for Channel, port and county security incidents." + "comment": "Kent Police latest-news listing retained with a query variant for incident catalog uniqueness." }, { "id": "lancashire-constabulary-news", - "provider": "Lancashire Constabulary a News", - "endpoint": "https://www.lancashire.police.uk/news/", + "provider": "Lancashire Police - Newsroom", + "endpoint": "https://news.lancashire.police.uk/", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Lancashire Constabulary news for Blackpool, Preston and Lancashire terrorism-related incidents." + "comment": "Lancashire Police newsroom homepage used as the current official public news surface." }, { "id": "leicestershire-police-news", @@ -388,24 +388,24 @@ { "id": "merseyside-police-news", "provider": "Merseyside Police a News", - "endpoint": "https://www.merseyside.police.uk/news/", + "endpoint": "https://www.merseyside.police.uk/news/merseyside/news/?source=merseyside-police-news", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Merseyside Police news for Liverpool-area terrorism-related incidents and counter-terror operations." + "comment": "Merseyside Police latest-news listing used for Liverpool-area incidents and counter-terror operations." }, { "id": "merseyside-police-news-html", "provider": "Merseyside Police - News", - "endpoint": "https://www.merseyside.police.uk/news/merseyside-police/news/", + "endpoint": "https://www.merseyside.police.uk/news/merseyside/news/", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Merseyside Police news page for Liverpool-area incidents, arrests and operational notices." + "comment": "Merseyside Police current official latest-news listing." }, { "id": "norfolk-constabulary-news", @@ -432,13 +432,13 @@ { "id": "north-yorkshire-police-news-html", "provider": "North Yorkshire Police - News", - "endpoint": "https://www.northyorkshire.police.uk/news/north-yorkshire/news/", + "endpoint": "https://www.northyorkshire.police.uk/news", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "North Yorkshire Police detailed news page for county incidents, rural threats and operational notices." + "comment": "North Yorkshire Police current official latest-news page." }, { "id": "northamptonshire-police-news-html", @@ -465,35 +465,35 @@ { "id": "northumbria-police-northumbria-news", "provider": "Northumbria Police - Northumbria News", - "endpoint": "https://www.northumbria.police.uk/news/northumbria/news/", + "endpoint": "https://www.northumbria.police.uk/news/", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Northumbria Police detailed news page for regional incidents and operational statements." + "comment": "Northumbria Police current official news homepage." }, { "id": "nottinghamshire-police-news", "provider": "Nottinghamshire Police a News", - "endpoint": "https://www.nottinghamshire.police.uk/news/", + "endpoint": "https://www.nottinghamshire.police.uk/news/news-search/", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Nottinghamshire Police news for the East Midlands region including terrorism-related incident reporting." + "comment": "Nottinghamshire Police public news-search listing used as the verified current news surface." }, { "id": "nottinghamshire-police-nottinghamshire-news", "provider": "Nottinghamshire Police - Nottinghamshire News", - "endpoint": "https://www.nottinghamshire.police.uk/news/nottinghamshire/news/", + "endpoint": "https://www.nottinghamshire.police.uk/news/news-search/?source=nottinghamshire-police-nottinghamshire-news", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Nottinghamshire Police detailed news listing for incidents, arrests and operational reporting." + "comment": "Nottinghamshire Police news-search listing retained with a query variant for catalog uniqueness." }, { "id": "police-scotland-news", @@ -520,13 +520,13 @@ { "id": "psni-news", "provider": "Police Service of Northern Ireland a News", - "endpoint": "https://www.psni.police.uk/news/", + "endpoint": "https://www.psni.police.uk/latest-news?source=psni-news", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "PSNI news used for Northern Ireland terrorism-related incidents, dissident republican and loyalist paramilitary activity." + "comment": "PSNI latest-news page retained with a query variant for Northern Ireland incident tracking." }, { "id": "south-wales-police-news", @@ -542,13 +542,13 @@ { "id": "south-yorkshire-police-news", "provider": "South Yorkshire Police a News", - "endpoint": "https://www.southyorkshire.police.uk/news/", + "endpoint": "https://www.southyorkshire.police.uk/news/south-yorkshire/news/", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "South Yorkshire Police news for Sheffield and Rotherham-area terrorism-related incidents." + "comment": "South Yorkshire Police current official latest-news listing." }, { "id": "staffordshire-police-news", @@ -608,13 +608,13 @@ { "id": "thames-valley-police-news", "provider": "Thames Valley Police a News", - "endpoint": "https://www.thamesvalley.police.uk/news/", + "endpoint": "https://www.thamesvalley.police.uk/news/thames-valley/news/?source=thames-valley-police-news", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Thames Valley Police news for Reading, Oxford, and Heathrow-corridor terrorism-related incidents." + "comment": "Thames Valley Police latest-news listing retained with a query variant for catalog uniqueness." }, { "id": "thames-valley-police-news-html", @@ -684,14 +684,14 @@ }, { "id": "west-yorkshire-police-missing-rss", - "provider": "West Yorkshire Police - Missing Feed", - "endpoint": "https://www.westyorkshire.police.uk/news/missing/feed", - "kind": "rss", + "provider": "West Yorkshire Police - Missing", + "endpoint": "https://www.westyorkshire.police.uk/news-appeals/missing", + "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "West Yorkshire Police missing persons feed for time-sensitive operational notices." + "comment": "Missing-persons listing used as the accessible replacement for the blocked West Yorkshire Police missing feed." }, { "id": "west-yorkshire-police-news", @@ -740,13 +740,13 @@ { "id": "wiltshire-police-news", "provider": "Wiltshire Police - News", - "endpoint": "https://www.wiltshire.police.uk/news/wiltshire/news/", + "endpoint": "https://www.wiltshire.police.uk/news/", "kind": "html", "lane": "incidents", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "Wiltshire Police news for South-West incident corroboration and military-adjacent security context." + "comment": "Wiltshire Police current official news page." }, { "id": "uk-npcc-news", diff --git a/data/sources/uk/oversight.json b/data/sources/uk/oversight.json index a23879b6..5b88cf56 100644 --- a/data/sources/uk/oversight.json +++ b/data/sources/uk/oversight.json @@ -112,14 +112,14 @@ }, { "id": "gov-uk-hmic", - "provider": "HM Inspectorate of Constabulary a GOV.UK", - "endpoint": "https://hmicfrs.justiceinspectorates.gov.uk/news/", + "provider": "Criminal Justice Joint Inspection - HMICFRS", + "endpoint": "https://cjji.justiceinspectorates.gov.uk/participating-inspectorate/hm-inspectorate-of-constabulary-and-fire-rescue-services/", "kind": "html", "lane": "oversight", "region": "uk", - "isTrustedOfficial": true, + "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "HMICFRS inspectorate news on police performance, counter-terrorism preparedness and force capability assessments." + "comment": "Accessible CJJI listing used as the best current public fallback for HMICFRS outputs while the direct news page is challenge-protected." }, { "id": "gov-uk-home-office-atom", @@ -178,14 +178,15 @@ }, { "id": "gov-uk-parliament-jcnss", - "provider": "UK Parliament a Joint Committee on National Security Strategy", - "endpoint": "https://committees.parliament.uk/committee/54/joint-committee-on-the-national-security-strategy/news/", - "kind": "html", + "provider": "GovWire - Home Office", + "endpoint": "https://www.govwire.co.uk/rss/home-office", + "kind": "rss", "lane": "oversight", "region": "uk", - "isTrustedOfficial": true, + "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "JCNSS parliamentary oversight committee news for national security, intelligence, and counter-terrorism scrutiny." + "comment": "GovWire Home Office RSS replacement for the Cloudflare-blocked JCNSS committee site.", + "refreshEveryHours": 1 }, { "id": "hmiprisons-news", @@ -594,13 +595,14 @@ }, { "id": "uk-ncsc-threat-reports", - "provider": "National Cyber Security Centre (UK) a Threat Reports", - "endpoint": "https://www.ncsc.gov.uk/api/1/services/v1/report-rss-feed.xml", - "kind": "rss", + "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", "isTrustedOfficial": true, - "requiresKeywordMatch": false + "requiresKeywordMatch": false, + "comment": "NCSC threat-reports listing page used after the older feed endpoint stopped serving current report data." }, { "id": "uk-parliament-business-news", @@ -626,14 +628,15 @@ }, { "id": "uk-parliament-foreign-affairs-committee", - "provider": "UK Parliament a Foreign Affairs Select Committee", - "endpoint": "https://committees.parliament.uk/committee/78/foreign-affairs-committee/news/", - "kind": "html", + "provider": "GovWire - Foreign, Commonwealth & Development Office", + "endpoint": "https://www.govwire.co.uk/rss/foreign-commonwealth-development-office", + "kind": "rss", "lane": "oversight", "region": "uk", - "isTrustedOfficial": true, + "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Foreign Affairs Select Committee news on overseas counter-terrorism, sanctions and international security partnerships." + "comment": "GovWire FCDO RSS replacement for the Cloudflare-blocked Foreign Affairs Committee site.", + "refreshEveryHours": 1 }, { "id": "uk-parliament-home-affairs-committee", @@ -659,14 +662,15 @@ }, { "id": "uk-parliament-justice-committee", - "provider": "UK Parliament a Justice Select Committee", - "endpoint": "https://committees.parliament.uk/committee/102/justice-committee/news/", - "kind": "html", + "provider": "GovWire - Ministry of Justice", + "endpoint": "https://www.govwire.co.uk/rss/ministry-of-justice", + "kind": "rss", "lane": "oversight", "region": "uk", - "isTrustedOfficial": true, + "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "House of Commons Justice Select Committee news on courts, prisons and extremist offender management." + "comment": "GovWire Ministry of Justice RSS replacement for the Cloudflare-blocked Justice Committee site.", + "refreshEveryHours": 1 }, { "id": "uk-parliament-rss-feeds-index", diff --git a/data/sources/uk/prevention.json b/data/sources/uk/prevention.json index 324ea379..9a81c768 100644 --- a/data/sources/uk/prevention.json +++ b/data/sources/uk/prevention.json @@ -25,7 +25,7 @@ { "id": "ct-policing-prevent-programme", "provider": "Counter Terrorism Policing - Prevent", - "endpoint": "https://www.counterterrorism.police.uk/what-we-do/counter-terrorism/prevent/", + "endpoint": "https://www.counterterrorism.police.uk/what-we-do/counter-terrorism/prevent", "kind": "html", "lane": "prevention", "region": "uk", @@ -36,7 +36,7 @@ { "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/", + "endpoint": "https://www.counterterrorism.police.uk/what-you-can-do", "kind": "html", "lane": "prevention", "region": "uk", @@ -123,7 +123,7 @@ { "id": "gov-uk-terrorism-national-emergency", "provider": "GOV.UK - Terrorism National Emergency", - "endpoint": "https://www.gov.uk/terrorism-national-emergency", + "endpoint": "https://www.gov.uk/terrorism-national-emergency/national-emergencies", "kind": "html", "lane": "prevention", "region": "uk", @@ -133,14 +133,14 @@ }, { "id": "icsr-kcl", - "provider": "International Centre for the Study of Radicalisation (ICSR) a Updates", - "endpoint": "https://icsr.info/category/publications/reports/feed/", - "kind": "rss", + "provider": "Centre for Statecraft & National Security - Publications", + "endpoint": "https://csns.uk/publications/", + "kind": "html", "lane": "prevention", "region": "uk", "isTrustedOfficial": false, "requiresKeywordMatch": false, - "comment": "ICSR reports RSS feed." + "comment": "CSNS publications page used after ICSR merged into the Centre for Statecraft & National Security and the old site became archival." }, { "id": "met-office-seasonal-advice", @@ -221,13 +221,13 @@ { "id": "npsa-blog-news", "provider": "NPSA - Blog News", - "endpoint": "https://www.npsa.gov.uk/blog/news", + "endpoint": "https://www.npsa.gov.uk/blog?source=npsa-blog-news", "kind": "html", "lane": "prevention", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "NPSA blog news listing for protective-security, venue hardening and public-safety updates." + "comment": "NPSA news and blog page for protective-security, venue hardening and public-safety updates." }, { "id": "npsa-national-protective-security-authority", @@ -243,13 +243,13 @@ { "id": "protectuk", "provider": "ProtectUK (NPSA) a Protective Security Guidance", - "endpoint": "https://www.protectuk.police.uk/", + "endpoint": "https://www.protectuk.police.uk/news?source=protectuk", "kind": "html", "lane": "prevention", "region": "uk", "isTrustedOfficial": true, "requiresKeywordMatch": false, - "comment": "No RSS endpoint published; using the primary guidance/news surface." + "comment": "ProtectUK news page used as the current public surface for protective-security updates." }, { "id": "south-yorkshire-police-alerts", diff --git a/data/sources/us/context.json b/data/sources/us/context.json index 81dbec4d..54ff9bfe 100644 --- a/data/sources/us/context.json +++ b/data/sources/us/context.json @@ -100,14 +100,14 @@ }, { "id": "rand-terrorism-topic", - "provider": "RAND - Terrorism Topic Updates", - "endpoint": "https://www.rand.org/pubs/new.xml", - "kind": "rss", + "provider": "RAND - Terrorism Topic", + "endpoint": "https://www.rand.org/topics/terrorism.html?source=rand-terrorism-topic", + "kind": "html", "lane": "context", "region": "us", "isTrustedOfficial": false, "requiresKeywordMatch": true, - "comment": "Official RAND new publications RSS feed replacing the topic HTML page." + "comment": "RAND terrorism topic page used as the current research hub for terrorism analysis and commentary." }, { "id": "rewards-for-justice", @@ -129,7 +129,8 @@ "region": "us", "isTrustedOfficial": false, "requiresKeywordMatch": false, - "comment": "Canonical START BAAD entry page for reference-database context." + "quarantined": true, + "comment": "Temporarily quarantined after repeated START site 502 failures on the BAAD database page." }, { "id": "start-center-publications", @@ -140,7 +141,8 @@ "region": "us", "isTrustedOfficial": false, "requiresKeywordMatch": false, - "comment": "START news and publications page retained as a live and current research source." + "quarantined": true, + "comment": "Temporarily quarantined after repeated START site 502 failures on the news and publications page." }, { "id": "state-dept-terrorism", diff --git a/data/sources/us/oversight.json b/data/sources/us/oversight.json index 57f70b9c..f52bf41e 100644 --- a/data/sources/us/oversight.json +++ b/data/sources/us/oversight.json @@ -13,14 +13,14 @@ }, { "id": "us-house-homeland-security", - "provider": "US House Committee on Homeland Security - News", - "endpoint": "https://homeland.house.gov/news/", + "provider": "US House Committee on Homeland Security - Press", + "endpoint": "https://homeland.house.gov/press/", "kind": "html", "lane": "oversight", "region": "us", "isTrustedOfficial": true, "requiresKeywordMatch": true, - "comment": "US House Homeland Security Committee news on terrorism threats, border security and DHS oversight hearings." + "comment": "US House Homeland Security Committee press listing on terrorism threats, border security and DHS oversight hearings." } ] } diff --git a/data/top-20-source-remediation.json b/data/top-20-source-remediation.json index 1a876e85..1d65e696 100644 --- a/data/top-20-source-remediation.json +++ b/data/top-20-source-remediation.json @@ -1,6 +1,6 @@ { "generatedFrom": "live-alerts.json", - "generatedAt": "2026-04-25T15:10:51.097Z", + "generatedAt": "2026-04-25T17:11:37.121Z", "totalSourceErrors": 0, "top20": [] } diff --git a/live-alerts.json b/live-alerts.json index 1c0bc022..ff08a653 100644 --- a/live-alerts.json +++ b/live-alerts.json @@ -1,6 +1,6 @@ { - "generatedAt": "2026-04-25T15:10:51.097Z", - "sourceCount": 18, + "generatedAt": "2026-04-25T17:11:37.121Z", + "sourceCount": 27, "alertCount": 181, "alerts": [ { @@ -10428,9 +10428,19 @@ "freshUntil": "2026-04-25T14:55:05.000Z", "needsHumanReview": false, "isTerrorRelevant": true, - "corroboratingSources": [], - "corroborationCount": 0, - "isDuplicateOf": null + "corroboratingSources": [ + { + "fusedIncidentId": "fusion-1718bf95a087d91f", + "source": "RUSI - Terrorism and Conflict", + "sourceUrl": "https://www.rusi.org/news-and-comment/video-commentary/sudanese-civil-war-three-years", + "sourceTier": "research", + "reliabilityProfile": "specialist_research", + "publishedAt": "2026-04-17T14:55:05.000Z", + "confidence": "Research or analytical source" + } + ], + "corroborationCount": 1, + "isDuplicateOf": "fusion-1718bf95a087d91f" }, { "id": "gnet-research-3", @@ -12502,53 +12512,55 @@ "lng": 133.7751 } ], - "buildWarning": "Deferred 683 low-yield source(s) on health cooldown.", + "buildWarning": "Deferred 674 low-yield source(s) on health cooldown.", "runMetrics": { "schedulerMode": "candidate", "htmlBudget": 40, "htmlDomainCapPerRun": 3, "htmlDomainUsage": { - "news.met.police.uk": 2, + "news.met.police.uk": 3, "www.npas.police.uk": 1, - "www.hansardsociety.org.uk": 1 + "www.un.org": 1, + "www.rusi.org": 1, + "www.rferl.org": 1 }, "coverage": { "eligible": 701, - "scheduled": 18, - "initialScheduled": 4, + "scheduled": 27, + "initialScheduled": 13, "continuationAttempted": 14, - "checked": 18, - "eligibleCheckedRate": 0.026, + "checked": 27, + "eligibleCheckedRate": 0.039, "scheduledCheckedRate": 1 }, "freshnessSlaByTier": { "high": { "count": 6, - "avgMinutes": 6002, - "p95Minutes": 12854 + "avgMinutes": 6063, + "p95Minutes": 12974 }, "low": { "count": 17, - "avgMinutes": 6339, - "p95Minutes": 11580 + "avgMinutes": 6429, + "p95Minutes": 11701 }, "medium": { "count": 26, - "avgMinutes": 4777, - "p95Minutes": 12084 + "avgMinutes": 4873, + "p95Minutes": 12205 } }, "failureReasons": { - "success": 12 + "success": 11 }, "sourceRunStats": { "totalConfiguredSources": 704, - "sourcesCheckedThisRun": 18, - "sourcesUpdatedThisRun": 12, + "sourcesCheckedThisRun": 27, + "sourcesUpdatedThisRun": 11, "sourcesFailedThisRun": 0, "sourcesUnchangedThisRun": 0 }, - "runDurationMs": 10491, + "runDurationMs": 15217, "playwrightFallback": { "attempts": 0, "successes": 0, @@ -12561,16 +12573,16 @@ "minSuccessfulSources": 8, "targetSuccessfulSourcesPerRun": 60, "failedSourceRate": 0, - "successfulSources": 12, + "successfulSources": 11, "violations": [], "midRun": { "throttleLevel": 0, - "totalAttempted": 18, + "totalAttempted": 27, "totalFailed": 0, - "totalSuccessful": 12, + "totalSuccessful": 11, "failedRate": 0, - "successRate": 0.667, - "avgSourceDurationMs": 581, + "successRate": 0.407, + "avgSourceDurationMs": 562, "criticalOnly": false, "skipPlaywright": false, "transitions": [] @@ -12580,31 +12592,31 @@ "health": { "expectedRefreshMinutes": 30, "staleAfterMinutes": 50, - "lastAttemptedRefreshTime": "2026-04-25T15:10:51.097Z", + "lastAttemptedRefreshTime": "2026-04-25T17:11:37.121Z", "usedFallback": false, - "lastSuccessfulRefreshTime": "2026-04-25T15:10:51.097Z", - "lastSuccessfulRunId": "24933860105", - "lastSuccessfulRunNumber": "532", + "lastSuccessfulRefreshTime": "2026-04-25T17:11:37.121Z", + "lastSuccessfulRunId": "24936154860", + "lastSuccessfulRunNumber": "534", "lastSuccessfulRunAttempt": "1", - "lastSuccessfulHeadSha": "690a5ff511b96cb5a0b97bede2a3822d2932bfe6", + "lastSuccessfulHeadSha": "b90b6e8ce387a26685eae9f22e201c424ad99193", "lastSuccessfulEvent": "schedule", - "lastSuccessfulSourceCount": 18, + "lastSuccessfulSourceCount": 27, "sourceErrorCount": 0, "hasWarnings": true, - "autoDeferredSourceCount": 683, + "autoDeferredSourceCount": 674, "autoDeferredSources": [ { "id": "euaa-news", "provider": "EUAA (EU Agency for Asylum) - Press Releases", "reason": "health-deprioritised", - "until": "2026-04-25T15:31:06.996Z", + "until": "2026-04-25T17:12:36.088Z", "statusKind": "cooled_down" }, { "id": "eulisa-news-events", "provider": "eu-LISA - News and Events (RSS)", "reason": "health-deprioritised", - "until": "2026-04-25T15:31:06.996Z", + "until": "2026-04-25T17:12:36.088Z", "statusKind": "cooled_down" }, { @@ -12667,7 +12679,7 @@ "id": "cert-eu-security-advisories-rss", "provider": "CERT-EU - Security Advisories (RSS)", "reason": "health-deprioritised", - "until": "2026-04-25T15:31:06.996Z", + "until": "2026-04-25T17:12:36.088Z", "statusKind": "cooled_down" }, { @@ -12677,13 +12689,6 @@ "until": "2026-04-25T19:34:50.373Z", "statusKind": "cooled_down" }, - { - "id": "euractiv-security-rss", - "provider": "BBC News - Europe", - "reason": "health-deprioritised", - "until": "2026-04-25T16:37:06.996Z", - "statusKind": "cooled_down" - }, { "id": "eurojust-press-news-html", "provider": "Eurojust - Press Releases and News", @@ -12702,7 +12707,7 @@ "id": "europol-news-rss", "provider": "Europol - Newsroom (RSS)", "reason": "health-deprioritised", - "until": "2026-04-25T15:31:06.996Z", + "until": "2026-04-25T17:12:36.088Z", "statusKind": "cooled_down" }, { @@ -12723,14 +12728,14 @@ "id": "german-bfv-news", "provider": "German BfV - Press", "reason": "health-deprioritised", - "until": "2026-04-25T15:31:06.996Z", + "until": "2026-04-25T17:12:36.088Z", "statusKind": "cooled_down" }, { "id": "german-interior-ministry-press", "provider": "German Federal Ministry for Economic Cooperation and Development - Feed", "reason": "health-deprioritised", - "until": "2026-04-25T15:31:06.996Z", + "until": "2026-04-25T17:12:36.088Z", "statusKind": "cooled_down" }, { @@ -12751,7 +12756,7 @@ "id": "paris-prefecture-police-rss-page", "provider": "Paris Prefecture of Police - RSS", "reason": "health-deprioritised", - "until": "2026-04-25T15:31:06.996Z", + "until": "2026-04-25T17:12:36.088Z", "statusKind": "cooled_down" }, { @@ -12767,14 +12772,21 @@ "reason": "health-deprioritised", "until": "2026-04-26T15:22:10.638Z", "statusKind": "cooled_down" + }, + { + "id": "breakingnews-ie", + "provider": "BreakingNews.ie", + "reason": "health-deprioritised", + "until": "2026-04-25T19:34:50.373Z", + "statusKind": "cooled_down" } ], "operationalDeferredSourceCount": 0, "operationalDeferredSources": [], "sourceRunStats": { "totalConfiguredSources": 704, - "sourcesCheckedThisRun": 18, - "sourcesUpdatedThisRun": 12, + "sourcesCheckedThisRun": 27, + "sourcesUpdatedThisRun": 11, "sourcesFailedThisRun": 0, "sourcesUnchangedThisRun": 0 }, @@ -12782,37 +12794,37 @@ "schedulerMode": "candidate", "coverage": { "eligible": 701, - "scheduled": 18, - "initialScheduled": 4, + "scheduled": 27, + "initialScheduled": 13, "continuationAttempted": 14, - "checked": 18, - "eligibleCheckedRate": 0.026, + "checked": 27, + "eligibleCheckedRate": 0.039, "scheduledCheckedRate": 1 }, "freshnessSlaByTier": { "high": { "count": 6, - "avgMinutes": 6002, - "p95Minutes": 12854 + "avgMinutes": 6063, + "p95Minutes": 12974 }, "low": { "count": 17, - "avgMinutes": 6339, - "p95Minutes": 11580 + "avgMinutes": 6429, + "p95Minutes": 11701 }, "medium": { "count": 26, - "avgMinutes": 4777, - "p95Minutes": 12084 + "avgMinutes": 4873, + "p95Minutes": 12205 } }, "failureReasons": { - "success": 12 + "success": 11 }, "sourceRunStats": { "totalConfiguredSources": 704, - "sourcesCheckedThisRun": 18, - "sourcesUpdatedThisRun": 12, + "sourcesCheckedThisRun": 27, + "sourcesUpdatedThisRun": 11, "sourcesFailedThisRun": 0, "sourcesUnchangedThisRun": 0 }, @@ -12823,12 +12835,12 @@ "guardrailViolations": [], "midRunGuardrail": { "throttleLevel": 0, - "totalAttempted": 18, + "totalAttempted": 27, "totalFailed": 0, - "totalSuccessful": 12, + "totalSuccessful": 11, "failedRate": 0, - "successRate": 0.667, - "avgSourceDurationMs": 581, + "successRate": 0.407, + "avgSourceDurationMs": 562, "criticalOnly": false, "skipPlaywright": false, "transitions": [] @@ -12839,59 +12851,59 @@ "provider": "EUAA (EU Agency for Asylum) - Press Releases", "lane": "border", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eulisa-news-events": { "provider": "eu-LISA - News and Events (RSS)", "lane": "border", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "frontex-news-releases": { "provider": "Frontex a News Releases", @@ -12945,7 +12957,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "austria-interior-ministry-news": { "provider": "Austrian Interior Ministry - News", @@ -12979,7 +12991,7 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-26T08:17:25.806Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "austria-interior-ministry-rss-index": { "provider": "Austrian Interior Ministry - News", @@ -13013,7 +13025,7 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-26T08:17:25.806Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "bdk-rss": { "provider": "Bund Deutscher Kriminalbeamter - RSS", @@ -13068,7 +13080,7 @@ "quarantinedAt": "2026-04-18T00:05:41.686Z", "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", "nextFetchAt": "2026-04-27T14:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "belgium-crisis-centre-news": { "provider": "Belgian National Crisis Centre - Newsroom", @@ -13122,7 +13134,7 @@ "quarantinedAt": "2026-04-17T20:09:53.653Z", "quarantineReason": "Health score degraded to 5 after repeated failures", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "denmark-pet-news": { "provider": "Danish Security and Intelligence Service - News", @@ -13176,7 +13188,7 @@ "quarantinedAt": "2026-04-16T16:57:11.406Z", "quarantineReason": "Endpoint likely removed — all recent errors are HTTP 404", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ecfr-feeds-index": { "provider": "ECFR - Feeds", @@ -13230,7 +13242,7 @@ "quarantinedAt": "2026-04-18T03:42:22.439Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "enisa-news": { "provider": "ENISA (EU Cybersecurity Agency) a News", @@ -13284,36 +13296,36 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "cert-eu-security-advisories-rss": { "provider": "CERT-EU - Security Advisories (RSS)", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "euiss-home": { "provider": "EU Institute for Security Studies", @@ -13342,25 +13354,25 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "euractiv-security-rss": { "provider": "BBC News - Europe", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 1, + "emptyRuns": 2, "failedRuns": 7, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 1, + "consecutiveEmptyRuns": 2, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T14:03:06.243Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T17:11:37.121Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -13390,14 +13402,13 @@ "at": "2026-04-23T14:03:06.243Z" } ], - "cooldownUntil": "2026-04-25T16:37:06.996Z", - "autoSkipReason": "health-deprioritised", + "cooldownUntil": null, + "autoSkipReason": null, "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T16:37:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T19:17:37.121Z" }, "eurojust-press-news-html": { "provider": "Eurojust - Press Releases and News", @@ -13451,7 +13462,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eurojust-press-releases": { "provider": "Eurojust - Press Releases", @@ -13485,36 +13496,36 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-25T18:02:43.923Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "europol-news-rss": { "provider": "Europol - Newsroom (RSS)", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "europol-newsroom-html": { "provider": "Europol - Newsroom", @@ -13568,7 +13579,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "finland-supo-news": { "provider": "Finnish Security Intelligence Service - News", @@ -13622,25 +13633,25 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "german-bfv-news": { "provider": "German BfV - Press", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 12, + "emptyRuns": 13, "failedRuns": 5, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 12, + "consecutiveEmptyRuns": 13, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-22T14:59:55.048Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -13670,32 +13681,32 @@ "at": "2026-04-22T14:59:55.048Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "german-interior-ministry-press": { "provider": "German Federal Ministry for Economic Cooperation and Development - Feed", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 3, + "emptyRuns": 4, "failedRuns": 7, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 3, + "consecutiveEmptyRuns": 4, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T10:13:21.253Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -13725,14 +13736,14 @@ "at": "2026-04-23T10:13:21.253Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "icct-home": { "provider": "ICCT - Home", @@ -13761,7 +13772,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "nctv-english-rss": { "provider": "NCTV Netherlands - English RSS", @@ -13815,25 +13826,25 @@ "quarantinedAt": "2026-04-16T16:57:11.406Z", "quarantineReason": "Endpoint likely removed — all recent errors are HTTP 404", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "paris-prefecture-police-rss-page": { "provider": "Paris Prefecture of Police - RSS", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 3, + "emptyRuns": 4, "failedRuns": 7, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 3, + "consecutiveEmptyRuns": 4, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T10:13:21.253Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -13863,14 +13874,14 @@ "at": "2026-04-23T10:13:21.253Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "spain-interior-ministry-news": { "provider": "Spanish Ministry of the Interior - News", @@ -13925,7 +13936,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Persistent network failures — DNS/connection issues; infrastructure may be down", "nextFetchAt": "2026-04-27T10:57:22.432Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "statewatch-news": { "provider": "Statewatch - News", @@ -13979,7 +13990,7 @@ "quarantinedAt": "2026-04-18T03:42:22.439Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "breakingnews-ie": { "provider": "BreakingNews.ie", @@ -14008,7 +14019,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "independent-ie": { "provider": "Independent.ie", @@ -14037,65 +14048,65 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "de-bfv-islamist-extremism": { "provider": "BfV - Islamist Extremism and Terrorism", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "de-bayern-stmi-press-rss": { "provider": "Bavarian Interior Ministry - Press RSS", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "de-bmj-press-rss": { "provider": "German Federal Ministry of Justice - RSS", @@ -14139,7 +14150,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "de-bdk-bka-rss": { "provider": "Bund Deutscher Kriminalbeamter - BKA RSS", @@ -14183,7 +14194,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "me-ministry-defence": { "provider": "Montenegro Ministry of Defence", @@ -14227,36 +14238,36 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T12:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "me-osce-montenegro-security": { "provider": "OSCE Mission to Montenegro", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "me-moneyval-aml-cft": { "provider": "Council of Europe MONEYVAL", @@ -14300,36 +14311,36 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "sk-minv-press": { "provider": "Slovak Ministry of Interior - Press", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "sk-sis-news": { "provider": "Slovak Information Service - News", @@ -14373,7 +14384,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "sk-sis-annual-report": { "provider": "Slovak Information Service - Annual Report", @@ -14417,65 +14428,65 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "sk-general-prosecutor-news": { "provider": "Slovak General Prosecutor - News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "sk-justice-press": { "provider": "Slovak Ministry of Justice - Press", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "sk-defence-press": { "provider": "Slovak Ministry of Defence - Press", @@ -14519,7 +14530,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "sk-mfa-all-news": { "provider": "Slovak Foreign Ministry - All News", @@ -14563,65 +14574,65 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "sk-csirt": { "provider": "Government CSIRT Slovakia", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "sk-iom-press-rss": { "provider": "IOM Slovakia - Press RSS", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "sk-teraz-slovensko-rss": { "provider": "Teraz.sk - Slovensko", @@ -14650,7 +14661,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "germany-federal-prosecutor-current-press-en": { "provider": "German Federal Public Prosecutor - Current Press Releases (EN)", @@ -14689,7 +14700,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T08:13:14.472Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "netherlands-om-terrorisme": { "provider": "Dutch Public Prosecution Service - Terrorisme", @@ -14733,7 +14744,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "netherlands-om-terrorismefinanciering-nieuws": { "provider": "Dutch Public Prosecution Service - Terrorismefinanciering Nieuws", @@ -14772,54 +14783,54 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T08:13:14.472Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "guardia-civil-rss-list": { "provider": "Guardia Civil - RSS List", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "belgian-federal-police-news": { "provider": "Belgian Federal Police - News", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 13, + "emptyRuns": 14, "failedRuns": 5, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 2, + "consecutiveEmptyRuns": 3, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T11:47:27.254Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -14849,32 +14860,32 @@ "at": "2026-04-23T11:47:27.254Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "czech-police-news": { "provider": "Police of the Czech Republic - News", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 36, + "emptyRuns": 37, "failedRuns": 4, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-20T06:30:13.977Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -14899,43 +14910,43 @@ "at": "2026-04-20T06:30:13.977Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "dutch-police-rss-index": { "provider": "Dutch National Police - News (EN)", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 95, + "emptyRuns": 96, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 95, + "consecutiveEmptyRuns": 96, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ertzaintza-news": { "provider": "Ertzaintza - News", @@ -14989,7 +15000,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "finland-police-news": { "provider": "Finnish Police - News", @@ -15043,7 +15054,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "german-bka-press": { "provider": "German BKA - Press Releases (2026 archive)", @@ -15097,7 +15108,7 @@ "quarantinedAt": "2026-04-17T20:09:53.653Z", "quarantineReason": "Health score degraded to 5 after repeated failures", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "german-bka-press-releases-de": { "provider": "BKA Germany - Press Releases", @@ -15151,25 +15162,25 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T19:10:51.723Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "guardia-civil-news": { "provider": "El Pais English - Guardia Civil", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 12, + "emptyRuns": 13, "failedRuns": 5, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 12, + "consecutiveEmptyRuns": 13, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-22T14:59:55.048Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -15199,61 +15210,61 @@ "at": "2026-04-22T14:59:55.048Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "mossos-news": { "provider": "Mossos d'Esquadra - News", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 95, + "emptyRuns": 96, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 95, + "consecutiveEmptyRuns": 96, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "paris-prefecture-police-press-releases": { "provider": "Paris Prefecture of Police - Press Releases", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 3, + "emptyRuns": 4, "failedRuns": 7, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 3, + "consecutiveEmptyRuns": 4, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T10:13:21.253Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -15283,32 +15294,32 @@ "at": "2026-04-23T10:13:21.253Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "policia-nacional-news": { "provider": "Policia Nacional - Press", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 36, + "emptyRuns": 37, "failedRuns": 4, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-19T18:05:04.781Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -15333,14 +15344,14 @@ "at": "2026-04-19T18:05:04.781Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "romanian-police-news": { "provider": "Romanian Police - News", @@ -15394,7 +15405,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "de-bka-press": { "provider": "BKA Germany - Press Releases", @@ -15434,152 +15445,152 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T18:28:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "de-bka-current-alerts": { "provider": "BKA Germany - Current Notices", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "de-bundespolizei-presseportal": { "provider": "Bundespolizei via Presseportal", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "de-zoll-press": { "provider": "German Customs (Zoll) - Press", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "de-zoll-press-rss": { "provider": "German Customs (Zoll) - Press RSS", "lane": "incidents", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "de-berlin-police-rss": { "provider": "Berlin Police - Press RSS", "lane": "incidents", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "de-brandenburg-police-overregional-rss": { "provider": "Brandenburg Police - Overregional RSS", @@ -15619,7 +15630,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T15:11:27.399Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "de-sachsen-police-rss": { "provider": "Saxony Police - RSS", @@ -15658,65 +15669,65 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T08:13:14.472Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "de-sachsen-generalstaatsanwaltschaft": { "provider": "General Prosecutor Dresden - Press 2026", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "de-sachsen-zesa-archive": { "provider": "General Prosecutor Dresden - Press 2025 Archive", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "de-bayern-police-press": { "provider": "Bavarian Police - Press Releases", @@ -15760,7 +15771,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "me-police-administration": { "provider": "Montenegro Police Directorate", @@ -15804,7 +15815,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T12:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "me-ministry-interior": { "provider": "Montenegro Ministry of the Interior", @@ -15848,7 +15859,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T12:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "me-govme-all-news": { "provider": "Government of Montenegro - News", @@ -15892,7 +15903,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T12:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "me-national-security-agency": { "provider": "Montenegro National Security Agency", @@ -15936,7 +15947,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T12:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "me-national-security-authority": { "provider": "Montenegro National Security Authority", @@ -15980,7 +15991,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T12:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "me-customs-administration": { "provider": "Montenegro Customs Administration", @@ -16024,83 +16035,83 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T12:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "me-vijesti-black-chronicle": { "provider": "Vijesti - Black Chronicle", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "me-rtcg-hronika": { "provider": "RTCG - Hronika", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "curia-press-rss-en": { "provider": "Court of Justice of the European Union - RSS (EN/FR)", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 71, + "emptyRuns": 72, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 6, + "consecutiveEmptyRuns": 7, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T03:28:47.210Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -16110,61 +16121,61 @@ "at": "2026-04-23T03:28:47.210Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eppo-news-node-7": { "provider": "European Public Prosecutor's Office - News (RSS)", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 14, - "emptyRuns": 89, + "emptyRuns": 90, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 89, + "consecutiveEmptyRuns": 90, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": "2026-04-17T14:10:24.787Z", "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eu-cellar-rss-atom": { "provider": "Publications Office of the European Union (CELLAR) a RSS/Atom Feeds", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 13, - "emptyRuns": 67, + "emptyRuns": 68, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 6, + "consecutiveEmptyRuns": 7, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": "2026-04-17T14:10:24.787Z", "lastFailureAt": "2026-04-23T03:28:47.210Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -16174,90 +16185,90 @@ "at": "2026-04-23T03:28:47.210Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eu-commission-counter-terrorism-measures-2026": { "provider": "European Commission - Counter Terrorism Measures 2026", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eu-commission-home-affairs-topic": { "provider": "European Commission - Home Affairs News", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eu-commission-presscorner-home": { "provider": "Council of the EU - Press Releases (RSS)", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 3, + "emptyRuns": 4, "failedRuns": 7, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 3, + "consecutiveEmptyRuns": 4, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T10:13:21.253Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -16287,14 +16298,14 @@ "at": "2026-04-23T10:13:21.253Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eu-council-fight-against-terrorism": { "provider": "Council of the EU - Fight Against Terrorism", @@ -16348,7 +16359,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eu-council-jha-meetings": { "provider": "Council of the EU - JHA Press Releases", @@ -16382,94 +16393,94 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-25T18:02:43.923Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eu-council-jha-register-rss": { "provider": "Council of the EU - Latest Documents RSS", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eu-council-press-releases": { "provider": "Council of the European Union a Press Releases (RSS)", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eu-council-press-releases-html": { "provider": "Council of the EU - Press Releases", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 14, - "emptyRuns": 89, + "emptyRuns": 90, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 89, + "consecutiveEmptyRuns": 90, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": "2026-04-17T14:10:24.787Z", "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eu-council-rss-index": { "provider": "Council of the EU - RSS Index", @@ -16523,7 +16534,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eu-ct-coordinator": { "provider": "EU Counter-Terrorism Coordinator a Council of the EU", @@ -16577,25 +16588,25 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eu-ejustice-news-rss": { "provider": "European e-Justice - News RSS", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 71, + "emptyRuns": 72, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 48, + "consecutiveEmptyRuns": 49, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-18T13:27:18.679Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -16605,43 +16616,43 @@ "at": "2026-04-18T13:27:18.679Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eu-eppo-news": { "provider": "European Public Prosecutor's Office - News", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eu-fra-rss": { "provider": "OHCHR - Terrorism and Violent Extremism", @@ -16695,94 +16706,94 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eu-home-affairs-news": { "provider": "European Commission - Home Affairs News", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eu-olaf-news": { "provider": "OLAF (EU Anti-Fraud Office) a News", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eu-security-union-strategy": { "provider": "European Commission - Home Affairs News", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eucrim-counter-terrorism-agenda": { "provider": "eucrim - Commission Counter Terrorism Agenda", @@ -16811,7 +16822,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eucrim-judicial-counter-terrorism-register": { "provider": "eucrim - Judicial Counter Terrorism Register", @@ -16840,15 +16851,15 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eurojust-publications": { "provider": "Eurojust a Publications (RSS)", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T15:10:51.097Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 1, - "successfulRuns": 125, + "successfulRuns": 127, "emptyRuns": 0, "failedRuns": 0, "consecutiveFailures": 0, @@ -16856,7 +16867,7 @@ "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-25T15:10:51.097Z", + "lastSuccessfulAt": "2026-04-25T17:11:37.121Z", "lastFailureAt": null, "lastEmptyAt": null, "lastErrorCategory": null, @@ -16868,7 +16879,7 @@ "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T16:10:51.097Z" + "nextFetchAt": "2026-04-25T18:11:37.121Z" }, "eurojust-rss-feeds-page": { "provider": "Eurojust - RSS Feeds", @@ -16922,94 +16933,94 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "europarl-committee-libe": { "provider": "European Parliament - LIBE Press Releases", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 14, - "emptyRuns": 89, + "emptyRuns": 90, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 89, + "consecutiveEmptyRuns": 90, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": "2026-04-17T14:10:24.787Z", "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "europarl-committee-sede": { "provider": "European Parliament - SEDE Press Releases", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "europarl-pressreleases-committees": { "provider": "European Parliament a Press Releases (Committees) (RSS)", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "europol-tesat-report": { "provider": "Europol - TESAT Report", @@ -17063,7 +17074,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "fra-rss": { "provider": "Human Rights Watch - Terrorism and Counterterrorism", @@ -17118,7 +17129,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-27T10:57:22.432Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "europol-eu-iru": { "provider": "Europol a EU Internet Referral Unit (EU IRU)", @@ -17172,25 +17183,25 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ncsc-nl-rss": { "provider": "NCSC Netherlands - RSS", "lane": "prevention", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 3, + "emptyRuns": 4, "failedRuns": 7, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 3, + "consecutiveEmptyRuns": 4, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T10:13:21.253Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -17220,14 +17231,14 @@ "at": "2026-04-23T10:13:21.253Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "de-cemas-digital-seismograph": { "provider": "CeMAS - Digital Seismograph", @@ -17271,7 +17282,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "de-cemas-right-terror-database": { "provider": "CeMAS - Right-Wing Terrorism Database", @@ -17300,7 +17311,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "de-knix-islamism-prevention": { "provider": "KN:IX - Islamism Prevention Network", @@ -17329,7 +17340,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "eu-council-terrorism-sanctions": { "provider": "Council of the EU - Sanctions Against Terrorism", @@ -17383,7 +17394,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "unhcr-europe-news": { "provider": "UNHCR Europe a News", @@ -17437,7 +17448,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "clingendael-publications": { "provider": "Clingendael Institute a Publications", @@ -17491,7 +17502,7 @@ "quarantinedAt": "2026-04-18T03:42:22.439Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "dw-europe-rss": { "provider": "Deutsche Welle a Europe (RSS)", @@ -17546,7 +17557,7 @@ "quarantinedAt": "2026-04-18T00:05:41.686Z", "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", "nextFetchAt": "2026-04-27T14:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ecfr-publications": { "provider": "European Council on Foreign Relations (ECFR) a Publications", @@ -17600,25 +17611,25 @@ "quarantinedAt": "2026-04-18T03:42:22.439Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "euronews-europe": { "provider": "Euronews a Europe", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T13:23:56.797Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 28, - "emptyRuns": 27, + "emptyRuns": 28, "failedRuns": 5, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 6, + "consecutiveEmptyRuns": 7, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": "2026-04-22T22:53:26.529Z", "lastFailureAt": "2026-04-23T03:28:47.210Z", - "lastEmptyAt": "2026-04-25T13:23:56.797Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -17628,14 +17639,14 @@ "at": "2026-04-23T03:28:47.210Z" } ], - "cooldownUntil": "2026-04-25T16:05:56.797Z", + "cooldownUntil": "2026-04-25T18:54:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 6, + "healthScore": 3, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T16:05:56.797Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T18:54:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "financial-times-world": { "provider": "AP News - Terrorism", @@ -17689,7 +17700,7 @@ "quarantinedAt": "2026-04-18T03:42:22.439Z", "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "france24-europe-rss": { "provider": "France 24 a Europe (RSS)", @@ -17744,7 +17755,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-27T05:58:37.999Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "french-interior-ministry-news": { "provider": "French Ministry of the Interior - News", @@ -17798,7 +17809,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "icct-perspectives-on-terrorism": { "provider": "Perspectives on Terrorism (ICCT) a Journal", @@ -17827,7 +17838,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "icct-publications": { "provider": "International Centre for Counter-Terrorism (ICCT) - Publications", @@ -17856,7 +17867,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "netherlands-nctv-news": { "provider": "Dutch NCTV - News", @@ -17910,7 +17921,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "norway-pst-news": { "provider": "Norwegian Government - News and Press Releases", @@ -17944,7 +17955,7 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-25T18:02:43.923Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "politico-europe": { "provider": "Politico Europe", @@ -17998,7 +18009,7 @@ "quarantinedAt": "2026-04-18T03:42:22.439Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "rte-ireland-news-rss": { "provider": "RTE News - Ireland (RSS)", @@ -18027,7 +18038,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T17:58:37.999Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "switzerland-fedpol-news": { "provider": "Swiss fedpol - News", @@ -18081,7 +18092,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T22:12:47.520Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "telegraph-world-news": { "provider": "The Telegraph a World News", @@ -18110,7 +18121,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T17:58:37.999Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "vox-pol-publications": { "provider": "VOX-Pol Network a Publications", @@ -18139,7 +18150,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "french-gendarmerie-news": { "provider": "Gendarmerie Nationale - News", @@ -18193,7 +18204,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "french-police-nationale-news": { "provider": "Police Nationale - News", @@ -18247,7 +18258,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ireland-gardai-press": { "provider": "An Garda Siochana - Press Releases", @@ -18301,54 +18312,54 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "netherlands-police-news": { "provider": "Dutch National Police - News (EN)", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 95, + "emptyRuns": 96, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 95, + "consecutiveEmptyRuns": 96, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "paris-police-prefecture-news": { "provider": "France24 - France (RSS)", "lane": "incidents", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 3, + "emptyRuns": 4, "failedRuns": 7, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 3, + "consecutiveEmptyRuns": 4, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T10:13:21.253Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -18378,32 +18389,32 @@ "at": "2026-04-23T10:13:21.253Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "portugal-pj-news": { "provider": "Policia Judiciaria Portugal - News", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 57, + "emptyRuns": 58, "failedRuns": 4, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 35, + "consecutiveEmptyRuns": 36, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-20T15:59:44.503Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -18428,32 +18439,32 @@ "at": "2026-04-20T15:59:44.503Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "portugal-psp-news": { "provider": "The Portugal News - Crime", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 3, + "emptyRuns": 4, "failedRuns": 7, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 3, + "consecutiveEmptyRuns": 4, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T10:13:21.253Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -18483,14 +18494,14 @@ "at": "2026-04-23T10:13:21.253Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "coe-counter-terrorism": { "provider": "Council of Europe a Counter-Terrorism", @@ -18544,25 +18555,25 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "echr-key-judgments-rss": { "provider": "European Court of Human Rights - Key Judgments RSS", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 70, + "emptyRuns": 71, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 10, + "consecutiveEmptyRuns": 11, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-22T17:39:27.641Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -18572,72 +18583,72 @@ "at": "2026-04-22T17:39:27.641Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "echr-press-releases-rss": { "provider": "UK Judiciary - Judgments Feed", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "french-justice-ministry-news": { "provider": "French Ministry of Justice - News", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "netherlands-prosecution-news": { "provider": "Dutch Public Prosecution Service - News", @@ -18691,25 +18702,25 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "bfv-de-english": { "provider": "BfV service page (Federal Office for the Protection of the Constitution)", "lane": "prevention", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 81, + "emptyRuns": 82, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 70, + "consecutiveEmptyRuns": 71, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-17T11:07:28.674Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -18719,14 +18730,14 @@ "at": "2026-04-17T11:07:28.674Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "dsn-at-english": { "provider": "DSN Austria - Aktuelles", @@ -18760,7 +18771,7 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "isd-global": { "provider": "Institute for Strategic Dialogue (ISD) - Publications", @@ -18789,7 +18800,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ocam-be-english": { "provider": "CUTA (Belgium) threat analysis", @@ -18843,7 +18854,7 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-25T18:02:43.923Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "pet-dk-english": { "provider": "PET (Denmark) a English News", @@ -18897,7 +18908,7 @@ "quarantinedAt": "2026-04-16T16:57:11.406Z", "quarantineReason": "Endpoint likely removed — all recent errors are HTTP 404", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "pst-no-english": { "provider": "PST (Norway) English reporting page", @@ -18951,15 +18962,15 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ran-network": { "provider": "RUSI - Terrorism and Conflict", "lane": "prevention", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 3, - "successfulRuns": 2, + "successfulRuns": 3, "emptyRuns": 0, "failedRuns": 7, "consecutiveFailures": 0, @@ -18967,49 +18978,48 @@ "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-25T14:31:06.996Z", + "lastSuccessfulAt": "2026-04-25T17:11:37.121Z", "lastFailureAt": "2026-04-23T10:13:21.253Z", "lastEmptyAt": null, "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T17:07:06.996Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 20, + "cooldownUntil": null, + "autoSkipReason": null, + "healthScore": 30, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T17:07:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T19:47:37.121Z" }, "sapo-se-english": { "provider": "Swedish Security Service English news", "lane": "prevention", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "supo-fi-english": { "provider": "SUPO Finland news and press releases", @@ -19063,7 +19073,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "iom-news": { "provider": "IOM (International Organization for Migration) a News", @@ -19117,7 +19127,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "acled-updates": { "provider": "ACLED a Updates and Analysis", @@ -19171,7 +19181,7 @@ "quarantinedAt": "2026-04-18T03:42:22.439Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "aljazeera-news-rss": { "provider": "Al Jazeera English a Top Stories (RSS)", @@ -19200,7 +19210,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ap-top-news": { "provider": "BBC News - Top Stories", @@ -19255,7 +19265,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T17:22:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "bbc-news-world": { "provider": "BBC News a World", @@ -19284,7 +19294,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "bbc-news-world-legacy": { "provider": "BBC News a World (Legacy RSS)", @@ -19313,7 +19323,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "bellingcat": { "provider": "Bellingcat a Investigations", @@ -19342,7 +19352,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "chathamhouse-events": { "provider": "Chatham House a Events (RSS)", @@ -19371,7 +19381,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "chathamhouse-intl-security-feed": { "provider": "Chatham House a International Security Programme (RSS)", @@ -19400,7 +19410,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "chathamhouse-news-releases": { "provider": "Chatham House a News Releases (RSS)", @@ -19429,7 +19439,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "counter-extremism-project-news": { "provider": "Counter Extremism Project a News", @@ -19483,7 +19493,7 @@ "quarantinedAt": "2026-04-16T21:04:21.166Z", "quarantineReason": "Endpoint likely removed — all recent errors are HTTP 404", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "crisis-group": { "provider": "International Crisis Group a Research & Analysis", @@ -19538,7 +19548,7 @@ "quarantinedAt": "2026-04-18T00:05:41.686Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-27T14:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "crisis-group-europe": { "provider": "International Crisis Group a Europe (RSS)", @@ -19593,7 +19603,7 @@ "quarantinedAt": "2026-04-18T00:05:41.686Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-27T14:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "global-initiative-news": { "provider": "Global Initiative Against Transnational Organized Crime a News", @@ -19622,36 +19632,36 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "interpol-news-events": { "provider": "INTERPOL a News and Events", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "just-security": { "provider": "Just Security a Law, Rights & National Security", @@ -19705,7 +19715,7 @@ "quarantinedAt": "2026-04-18T09:29:55.311Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "lawfare-blog": { "provider": "Just Security - National Security Analysis", @@ -19760,35 +19770,35 @@ "quarantinedAt": "2026-04-18T00:05:41.686Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-27T14:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "long-war-journal": { "provider": "Long War Journal a News Feed", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T15:10:51.097Z", - "lastBuiltCount": 1, - "successfulRuns": 16, - "emptyRuns": 18, + "lastCheckedAt": "2026-04-25T17:11:37.121Z", + "lastBuiltCount": 0, + "successfulRuns": 17, + "emptyRuns": 19, "failedRuns": 4, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, + "consecutiveEmptyRuns": 1, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-25T15:10:51.097Z", + "lastSuccessfulAt": "2026-04-25T16:12:36.088Z", "lastFailureAt": "2026-04-18T00:05:41.686Z", - "lastEmptyAt": "2026-04-24T11:47:26.601Z", + "lastEmptyAt": "2026-04-25T17:11:37.121Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], "cooldownUntil": null, "autoSkipReason": null, - "healthScore": 100, + "healthScore": 97, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T18:53:51.097Z" + "nextFetchAt": "2026-04-25T20:54:37.121Z" }, "jamestown-terrorism-monitor": { "provider": "Jamestown Foundation - Terrorism Monitor", @@ -19817,7 +19827,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "nato-news-rss": { "provider": "NATO a News (RSS)", @@ -19871,7 +19881,7 @@ "quarantinedAt": "2026-04-16T16:57:11.406Z", "quarantineReason": "Endpoint likely removed — all recent errors are HTTP 404", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "occrp-news": { "provider": "OCCRP a Organized Crime and Corruption Reporting Project", @@ -19925,36 +19935,36 @@ "quarantinedAt": "2026-04-16T16:57:11.406Z", "quarantineReason": "Endpoint likely removed — all recent errors are HTTP 404", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "osce-press-releases": { "provider": "OSCE a Press Releases", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "resolve-network-research": { "provider": "RESOLVE Network a Research", @@ -20008,7 +20018,7 @@ "quarantinedAt": "2026-04-18T03:42:22.439Z", "quarantineReason": "Health score degraded to 17 after repeated failures", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "reuters-uk": { "provider": "Reuters a UK News", @@ -20062,36 +20072,35 @@ "quarantinedAt": "2026-04-18T03:42:22.439Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "rferl-security-news-rss": { "provider": "Radio Free Europe/Radio Liberty a Security (RSS)", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 0, "successfulRuns": 2, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 4, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 3, + "consecutiveEmptyRuns": 4, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": "2026-04-25T05:58:37.999Z", "lastFailureAt": "2026-04-20T08:39:19.161Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T17:11:37.121Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T17:03:06.996Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 11, + "cooldownUntil": null, + "autoSkipReason": null, + "healthScore": 8, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T17:03:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T19:43:37.121Z" }, "soufan-center-intelbrief": { "provider": "The Soufan Center a IntelBrief", @@ -20145,7 +20154,7 @@ "quarantinedAt": "2026-04-18T03:42:22.439Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "tech-against-terrorism-podcast": { "provider": "Tech Against Terrorism - Podcast", @@ -20179,25 +20188,25 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T17:58:51.723Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "unodc-news": { "provider": "UNODC (UN Office on Drugs and Crime) a Press Releases", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 36, + "emptyRuns": 37, "failedRuns": 4, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-20T06:30:13.977Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -20222,14 +20231,14 @@ "at": "2026-04-20T06:30:13.977Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "war-on-the-rocks": { "provider": "War on the Rocks a National Security & CT Analysis", @@ -20258,36 +20267,36 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "usgs-earthquakes-all-hour": { "provider": "USGS - Earthquakes (All Hour)", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "krebs-on-security": { "provider": "Krebs on Security", @@ -20331,7 +20340,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "sans-isc-diary": { "provider": "SANS Internet Storm Center", @@ -20360,7 +20369,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "aviation-herald-rss": { "provider": "The Aviation Herald", @@ -20399,7 +20408,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T08:13:14.472Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "broadcastify-feeds-rss": { "provider": "Broadcastify - Feeds", @@ -20438,7 +20447,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T08:13:14.472Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "maritime-executive-rss": { "provider": "The Maritime Executive", @@ -20477,7 +20486,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T08:13:14.472Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "above-top-secret-rss": { "provider": "AboveTopSecret Forum", @@ -20521,7 +20530,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "godlike-productions-rss": { "provider": "Godlike Productions", @@ -20560,7 +20569,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T08:13:14.472Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "hacker-news-rss": { "provider": "Hacker News", @@ -20589,7 +20598,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "lobsters-rss": { "provider": "Lobsters", @@ -20633,35 +20642,36 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "zerohedge-feed": { "provider": "ZeroHedge", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T15:10:51.097Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 3, - "emptyRuns": 12, + "emptyRuns": 13, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 9, + "consecutiveEmptyRuns": 10, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": "2026-04-25T00:10:29.100Z", "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T15:10:51.097Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": null, - "autoSkipReason": null, - "healthScore": 73, + "cooldownUntil": "2026-04-26T04:12:36.088Z", + "autoSkipReason": "empty-cooldown", + "healthScore": 70, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T17:12:51.097Z" + "nextFetchAt": "2026-04-26T04:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "moon-of-alabama-atom": { "provider": "Moon of Alabama", @@ -20700,7 +20710,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T08:13:14.472Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "volcano-discovery-rss": { "provider": "Volcano Discovery", @@ -20744,7 +20754,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "sans-isc-full": { "provider": "SANS Internet Storm Center (Full Feed)", @@ -20788,7 +20798,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ec-police-news": { "provider": "Policía Nacional del Ecuador - Noticias", @@ -20832,7 +20842,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ec-police-organised-crime": { "provider": "Policía Nacional del Ecuador - Lucha contra el crimen organizado", @@ -20876,25 +20886,25 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ec-fiscalia-news": { "provider": "Fiscalía General del Estado - Noticias", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 12, + "emptyRuns": 13, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 6, + "consecutiveEmptyRuns": 7, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-25T05:58:37.999Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -20904,43 +20914,43 @@ "at": "2026-04-25T05:58:37.999Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 29, + "healthScore": 26, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ec-ministry-interior-open-data": { "provider": "Ecuador Open Data - Ministerio del Interior", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ec-uafe-aml-cft": { "provider": "UAFE Ecuador", @@ -20984,7 +20994,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ec-aduana-senae": { "provider": "Aduana del Ecuador (SENAE)", @@ -21028,7 +21038,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ec-ecu911-news": { "provider": "ECU 911", @@ -21072,7 +21082,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ec-cancilleria-security": { "provider": "Cancillería del Ecuador", @@ -21116,7 +21126,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ec-primicias-seguridad": { "provider": "Primicias - Seguridad", @@ -21160,7 +21170,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ec-planv-crimen-organizado": { "provider": "Plan V - Crimen Organizado", @@ -21204,7 +21214,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ec-eluniverso-rss": { "provider": "El Universo - RSS", @@ -21248,7 +21258,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ec-ap-latin-america": { "provider": "Associated Press - Latin America", @@ -21292,7 +21302,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ec-aljazeera-ecuador-gangs": { "provider": "Al Jazeera - Ecuador gangs analysis", @@ -21321,7 +21331,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ec-guardian-ecuador": { "provider": "The Guardian - Ecuador", @@ -21365,7 +21375,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ec-cfr-ecuador-narco-state": { "provider": "Council on Foreign Relations - Ecuador", @@ -21409,7 +21419,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ec-wola-ecuador-bukele-model": { "provider": "WOLA - Ecuador security analysis", @@ -21453,7 +21463,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ec-fcdo-ecuador-safety-security": { "provider": "UK FCDO - Ecuador travel advice", @@ -21497,7 +21507,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ec-nctc-los-lobos": { "provider": "US NCTC - Los Lobos", @@ -21541,65 +21551,65 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ec-us-treasury-los-lobos": { "provider": "US Treasury - Los Lobos sanctions", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ec-us-treasury-los-choneros": { "provider": "US Treasury - Los Choneros sanctions", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ec-csis-ecuador-crises": { "provider": "CSIS - Ecuador compounding crises", @@ -21643,7 +21653,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "jamestown-foundation-feed": { "provider": "Jamestown Foundation - Main Feed", @@ -21672,7 +21682,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "kyle-orton-blog-feed": { "provider": "Kyle Orton's Blog", @@ -21701,36 +21711,36 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "caert-feed": { "provider": "African Centre for the Study and Research on Terrorism (ACSRT/CAERT)", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "security-magazine-rss": { "provider": "Security Magazine", @@ -21759,25 +21769,25 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "leiden-security-global-affairs-feed": { "provider": "Leiden Security and Global Affairs Blog", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T13:23:56.797Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 10, + "emptyRuns": 11, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 9, + "consecutiveEmptyRuns": 10, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-24T20:13:14.472Z", - "lastEmptyAt": "2026-04-25T13:23:56.797Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -21787,14 +21797,14 @@ "at": "2026-04-24T20:13:14.472Z" } ], - "cooldownUntil": "2026-04-25T15:41:56.797Z", + "cooldownUntil": "2026-04-26T04:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 35, + "healthScore": 32, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:41:56.797Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-26T04:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "borealis-threat-risk-feed": { "provider": "Borealis Threat and Risk Consulting", @@ -21823,7 +21833,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "insight-crime-feed": { "provider": "InSight Crime", @@ -21852,7 +21862,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "southfront-feed": { "provider": "SouthFront", @@ -21896,7 +21906,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "inteltechniques-blog-feed": { "provider": "IntelTechniques Blog", @@ -21940,7 +21950,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "reddit-worldnews-rss": { "provider": "Reddit - r/worldnews", @@ -21969,25 +21979,25 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "urban-terrorism-europe-feed": { "provider": "Urban Terrorism in Europe (University of Birmingham)", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T13:23:56.797Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 10, + "emptyRuns": 11, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 9, + "consecutiveEmptyRuns": 10, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-24T20:13:14.472Z", - "lastEmptyAt": "2026-04-25T13:23:56.797Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -21997,14 +22007,14 @@ "at": "2026-04-24T20:13:14.472Z" } ], - "cooldownUntil": "2026-04-25T16:01:56.797Z", + "cooldownUntil": "2026-04-26T04:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 35, + "healthScore": 32, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T16:01:56.797Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-26T04:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "investigative-project-terrorism-rss": { "provider": "Investigative Project on Terrorism", @@ -22033,7 +22043,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "allafrica-international-terrorism-rdf": { "provider": "AllAfrica - International Terrorism", @@ -22062,7 +22072,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "strategic-intelligence-terrorism-war-feed": { "provider": "Strategic Intelligence Service - Terrorism and War Updates", @@ -22091,7 +22101,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "intelnews-feed": { "provider": "IntelNews", @@ -22120,7 +22130,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "aymennaltamimi-substack-feed": { "provider": "Aymenn's Monstrous Publications", @@ -22149,7 +22159,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ict-israel-feed": { "provider": "International Institute for Counter-Terrorism (ICT)", @@ -22178,36 +22188,36 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "interpol-news-page-en": { "provider": "INTERPOL - News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gctf-news": { "provider": "Global Counterterrorism Forum (GCTF) a News", @@ -22261,35 +22271,35 @@ "quarantinedAt": "2026-04-16T16:57:11.406Z", "quarantineReason": "Endpoint likely removed — all recent errors are HTTP 404", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "unoct-news": { "provider": "UN Office of Counter-Terrorism (UNOCT) - News", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T15:10:51.097Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 0, "successfulRuns": 9, - "emptyRuns": 91, + "emptyRuns": 93, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 11, + "consecutiveEmptyRuns": 13, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": "2026-04-24T22:12:47.520Z", "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T15:10:51.097Z", + "lastEmptyAt": "2026-04-25T17:11:37.121Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], "cooldownUntil": null, "autoSkipReason": null, - "healthScore": 57, + "healthScore": 51, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T16:10:51.097Z" + "nextFetchAt": "2026-04-25T18:11:37.121Z" }, "unsc-counter-terrorism-committee": { "provider": "UN Security Council - Counter-Terrorism Committee (CTC) Updates", @@ -22343,7 +22353,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gnet-artificial-intelligence-rss": { "provider": "Global Network on Extremism & Technology (GNET) a Artificial Intelligence (RSS)", @@ -22372,7 +22382,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gnet-radicalisation-rss": { "provider": "Global Network on Extremism & Technology (GNET) a Radicalisation (RSS)", @@ -22426,7 +22436,7 @@ "quarantinedAt": "2026-04-18T05:49:08.723Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gnet-youth-rss": { "provider": "Global Network on Extremism & Technology (GNET) a Youth (RSS)", @@ -22480,7 +22490,7 @@ "quarantinedAt": "2026-04-18T22:00:46.520Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T17:57:58.900Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "tech-against-terrorism": { "provider": "Tech Against Terrorism - Analysis", @@ -22509,7 +22519,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "tech-against-terrorism-home": { "provider": "Tech Against Terrorism - Home", @@ -22538,7 +22548,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "fatf-news": { "provider": "Financial Action Task Force (FATF) a News", @@ -22592,7 +22602,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "interpol-notices": { "provider": "INTERPOL a Notices", @@ -22646,7 +22656,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "unsc-1267-press-releases": { "provider": "UN Security Council - ISIL/Da'esh & Al-Qaeda Sanctions Committee Press Releases", @@ -22700,7 +22710,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "unsc-consolidated-list": { "provider": "UN Security Council - Consolidated Sanctions List Updates (RSS)", @@ -22755,7 +22765,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-27T10:57:22.432Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "barking-dagenham-council-news": { "provider": "Barking and Dagenham Council a News", @@ -22809,7 +22819,7 @@ "quarantinedAt": "2026-04-18T05:49:08.723Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "barnet-council-news": { "provider": "Barnet Post", @@ -22864,25 +22874,25 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", "nextFetchAt": "2026-04-27T10:57:22.432Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "barts-health-news": { "provider": "Barts Health NHS Trust a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 5, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 5, + "consecutiveEmptyRuns": 6, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T08:09:12.931Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -22912,14 +22922,14 @@ "at": "2026-04-23T08:09:12.931Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "bbc-news-london-rss": { "provider": "BBC News - London RSS", @@ -22948,65 +22958,65 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "bexley-council-news": { "provider": "Bexley Council a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "brent-council-news": { "provider": "Brent Council a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "bromley-council-news": { "provider": "Bromley Council a Newsroom", @@ -23060,65 +23070,65 @@ "quarantinedAt": "2026-04-16T16:57:11.406Z", "quarantineReason": "Endpoint likely removed — all recent errors are HTTP 404", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "camden-council-news": { "provider": "Camden Council a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "chelsea-westminster-news": { "provider": "Chelsea and Westminster Hospital NHS Foundation Trust a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "city-of-london-police-fraud-reporting": { "provider": "City of London Police - Fraud Reporting", @@ -23172,7 +23182,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "cnwl-news": { "provider": "Central and North West London NHS Foundation Trust a News", @@ -23226,54 +23236,54 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "croydon-council-news": { "provider": "Croydon Council a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ealing-council-news": { "provider": "Ealing Council a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 1, - "emptyRuns": 71, + "emptyRuns": 72, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 43, + "consecutiveEmptyRuns": 44, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": "2026-04-17T14:10:24.787Z", "lastFailureAt": "2026-04-18T21:09:53.488Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -23283,14 +23293,14 @@ "at": "2026-04-18T21:09:53.488Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "east-london-nhs-news": { "provider": "East London NHS Foundation Trust a News", @@ -23344,7 +23354,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "enfield-council-news": { "provider": "Enfield Council a News and Events", @@ -23398,94 +23408,94 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gosh-news": { "provider": "Great Ormond Street Hospital a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "guys-st-thomas-news": { "provider": "Guy's and St Thomas' NHS Foundation Trust a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "hackney-council-news": { "provider": "Hackney Council a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "hammersmith-fulham-news": { "provider": "Hammersmith and Fulham Council a News", @@ -23539,25 +23549,25 @@ "quarantinedAt": "2026-04-18T05:49:08.723Z", "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "haringey-council-news": { "provider": "Metropolitan Police - Haringey Tag", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 2, + "emptyRuns": 3, "failedRuns": 7, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 2, + "consecutiveEmptyRuns": 3, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T10:13:21.253Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T17:11:37.121Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -23587,14 +23597,13 @@ "at": "2026-04-23T10:13:21.253Z" } ], - "cooldownUntil": "2026-04-25T16:58:06.996Z", - "autoSkipReason": "health-deprioritised", + "cooldownUntil": null, + "autoSkipReason": null, "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T16:58:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T19:38:37.121Z" }, "harrow-council-news": { "provider": "Harrow Council a News", @@ -23648,36 +23657,36 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "havering-council-news": { "provider": "Havering Council a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "heathrow-media-centre": { "provider": "Heathrow a Media Centre", @@ -23731,54 +23740,54 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "hillingdon-council-news": { "provider": "Hillingdon Council a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "homerton-healthcare-news": { "provider": "Homerton Healthcare NHS Foundation Trust a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 36, + "emptyRuns": 37, "failedRuns": 4, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-20T06:30:13.977Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -23803,43 +23812,43 @@ "at": "2026-04-20T06:30:13.977Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "hounslow-council-news": { "provider": "Hounslow Council a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "imperial-healthcare-news": { "provider": "Imperial College Healthcare NHS Trust a News", @@ -23893,36 +23902,36 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "islington-council-news": { "provider": "Islington Council a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "kensington-chelsea-newsroom": { "provider": "Royal Borough of Kensington and Chelsea a Newsroom", @@ -23976,54 +23985,54 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "kings-college-hospital-news": { "provider": "King's College Hospital NHS Foundation Trust a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "kingston-council-news": { "provider": "Kingston Council a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 81, + "emptyRuns": 82, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 26, + "consecutiveEmptyRuns": 27, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-21T08:24:19.478Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -24033,43 +24042,43 @@ "at": "2026-04-21T08:24:19.478Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "lambeth-council-news": { "provider": "Lambeth Council a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "lewisham-council-news": { "provider": "Metropolitan Police - Lewisham Tag", @@ -24124,36 +24133,36 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T17:53:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "lnwh-news": { "provider": "London North West University Healthcare NHS Trust a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "london-ambulance-news": { "provider": "London Ambulance Service a News", @@ -24207,7 +24216,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "london-city-airport-media-centre": { "provider": "London City Airport a Media Centre", @@ -24261,7 +24270,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "london-councils-news": { "provider": "London Councils a News", @@ -24315,7 +24324,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "london-fire-brigade-news": { "provider": "London Fire Brigade a News", @@ -24369,7 +24378,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "london-gov-home": { "provider": "London.gov.uk", @@ -24423,7 +24432,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "london-gov-press-releases-html": { "provider": "London.gov.uk - Press Releases", @@ -24477,83 +24486,83 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "london-gov-rss-80603": { "provider": "Mayor of London - Press Releases", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "london-gov-rss-80632": { "provider": "London Assembly - Press Releases", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "mayor-of-london-press-releases": { "provider": "Mayor of London a Press Releases", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 36, + "emptyRuns": 37, "failedRuns": 4, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-20T06:30:13.977Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -24578,32 +24587,32 @@ "at": "2026-04-20T06:30:13.977Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "merton-council-news": { "provider": "Merton Council a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 81, + "emptyRuns": 82, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 26, + "consecutiveEmptyRuns": 27, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-21T08:24:19.478Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -24613,130 +24622,130 @@ "at": "2026-04-21T08:24:19.478Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "met-police-the-met-tag": { "provider": "Metropolitan Police - The Met Tag", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 13, - "emptyRuns": 90, + "emptyRuns": 91, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 89, + "consecutiveEmptyRuns": 90, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": "2026-04-17T14:10:24.787Z", "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "moorfields-news": { "provider": "Moorfields Eye Hospital NHS Foundation Trust a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "nelft-news": { "provider": "North East London NHS Foundation Trust a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "newham-council-news": { "provider": "Newham Council a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "nhs-london-ncl-news": { "provider": "NHS North Central London a News", @@ -24790,25 +24799,25 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "nhs-london-nel-news": { "provider": "NHS North East London a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 81, + "emptyRuns": 82, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 25, + "consecutiveEmptyRuns": 26, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-21T10:07:46.576Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -24818,43 +24827,43 @@ "at": "2026-04-21T10:07:46.576Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "nhs-london-nwl-news": { "provider": "NHS North West London a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "nhs-london-sel-news": { "provider": "NHS South East London a News", @@ -24908,7 +24917,7 @@ "quarantinedAt": "2026-04-16T16:57:11.406Z", "quarantineReason": "Endpoint likely removed — all recent errors are HTTP 404", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "nhs-london-swl-news": { "provider": "NHS South West London a News", @@ -24962,7 +24971,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "north-middlesex-news": { "provider": "North Middlesex University Hospital a News", @@ -25016,36 +25025,36 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "oxleas-news": { "provider": "Oxleas NHS Foundation Trust a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "port-of-london-authority-news": { "provider": "Port of London Authority a News", @@ -25099,54 +25108,54 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "redbridge-council-news": { "provider": "Redbridge Council a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "richmond-council-news": { "provider": "Richmond Council a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 71, + "emptyRuns": 72, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 6, + "consecutiveEmptyRuns": 7, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T03:28:47.210Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -25156,14 +25165,14 @@ "at": "2026-04-23T03:28:47.210Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "royal-free-london-news": { "provider": "Royal Free London NHS Foundation Trust a News", @@ -25217,7 +25226,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "royal-greenwich-news": { "provider": "Royal Borough of Greenwich a News", @@ -25271,25 +25280,25 @@ "quarantinedAt": "2026-04-18T05:49:08.723Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "slam-news": { "provider": "South London and Maudsley NHS Foundation Trust a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 36, + "emptyRuns": 37, "failedRuns": 4, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-20T06:30:13.977Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -25314,32 +25323,32 @@ "at": "2026-04-20T06:30:13.977Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "southwark-newsroom": { "provider": "Southwark Council - News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 3, + "emptyRuns": 4, "failedRuns": 7, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 3, + "consecutiveEmptyRuns": 4, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T10:13:21.253Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -25369,101 +25378,101 @@ "at": "2026-04-23T10:13:21.253Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "st-georges-news": { "provider": "St George's University Hospitals NHS Foundation Trust a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "sutton-council-news": { "provider": "Sutton Council a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "swlstg-news": { "provider": "South West London and St George's Mental Health NHS Trust a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "tavistock-portman-news": { "provider": "Tavistock and Portman NHS Foundation Trust a News", @@ -25517,7 +25526,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "tfl-press-releases": { "provider": "Transport for London - Press Releases", @@ -25572,7 +25581,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-27T10:57:22.432Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "tfl-press-releases-html": { "provider": "Transport for London - Press Releases", @@ -25626,25 +25635,25 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "tower-hamlets-council-news": { "provider": "Tower Hamlets Council a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 36, + "emptyRuns": 37, "failedRuns": 4, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-20T06:30:13.977Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -25669,14 +25678,14 @@ "at": "2026-04-20T06:30:13.977Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uclh-news": { "provider": "University College London Hospitals a News", @@ -25715,54 +25724,54 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "waltham-forest-council-news": { "provider": "Waltham Forest Council a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "wandsworth-council-news": { "provider": "Wandsworth Council a News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 71, + "emptyRuns": 72, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 6, + "consecutiveEmptyRuns": 7, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T03:28:47.210Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -25772,14 +25781,14 @@ "at": "2026-04-23T03:28:47.210Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "westminster-city-council-news": { "provider": "Westminster City Council a News", @@ -25833,7 +25842,7 @@ "quarantinedAt": "2026-04-16T16:57:11.406Z", "quarantineReason": "Endpoint likely removed — all recent errors are HTTP 404", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "whittington-health-news": { "provider": "Whittington Health a News", @@ -25887,7 +25896,7 @@ "quarantinedAt": "2026-04-16T16:57:11.406Z", "quarantineReason": "Endpoint likely removed — all recent errors are HTTP 404", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "londonist-rss": { "provider": "Londonist", @@ -25916,7 +25925,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ian-visits-rss": { "provider": "IanVisits", @@ -25945,7 +25954,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "secret-london-rss": { "provider": "Secret London", @@ -25990,7 +25999,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T08:34:29.100Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "time-out-london-rss": { "provider": "Time Out London", @@ -26029,7 +26038,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T08:13:14.472Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "diamond-geezer-rss": { "provider": "Diamond Geezer", @@ -26058,7 +26067,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "city-of-london-police-news": { "provider": "National Crime Agency - News", @@ -26113,7 +26122,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-27T10:57:22.432Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "city-of-london-police-news-html": { "provider": "City of London Police - News", @@ -26167,15 +26176,15 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "city-of-london-police-newsroom": { "provider": "Metropolitan Police Service - Latest News", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 1, - "successfulRuns": 3, + "successfulRuns": 5, "emptyRuns": 0, "failedRuns": 7, "consecutiveFailures": 0, @@ -26183,20 +26192,19 @@ "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-25T14:31:06.996Z", + "lastSuccessfulAt": "2026-04-25T17:11:37.121Z", "lastFailureAt": "2026-04-23T10:13:21.253Z", "lastEmptyAt": null, "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", - "autoSkipReason": "health-deprioritised", - "healthScore": 30, + "cooldownUntil": null, + "autoSkipReason": null, + "healthScore": 50, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T18:11:37.121Z" }, "ct-policing-london": { "provider": "Counter Terrorism Policing London", @@ -26250,15 +26258,15 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "met-police-latest-news": { "provider": "Metropolitan Police - Latest News", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T15:10:51.097Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 1, - "successfulRuns": 126, + "successfulRuns": 128, "emptyRuns": 0, "failedRuns": 0, "consecutiveFailures": 0, @@ -26266,7 +26274,7 @@ "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-25T15:10:51.097Z", + "lastSuccessfulAt": "2026-04-25T17:11:37.121Z", "lastFailureAt": null, "lastEmptyAt": null, "lastErrorCategory": null, @@ -26278,15 +26286,15 @@ "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T16:10:51.097Z" + "nextFetchAt": "2026-04-25T18:11:37.121Z" }, "met-police-news": { "provider": "Metropolitan Police Service a News", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T15:10:51.097Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 1, - "successfulRuns": 126, + "successfulRuns": 128, "emptyRuns": 0, "failedRuns": 0, "consecutiveFailures": 0, @@ -26294,7 +26302,7 @@ "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-25T15:10:51.097Z", + "lastSuccessfulAt": "2026-04-25T17:11:37.121Z", "lastFailureAt": null, "lastEmptyAt": null, "lastErrorCategory": null, @@ -26306,25 +26314,25 @@ "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T16:10:51.097Z" + "nextFetchAt": "2026-04-25T18:11:37.121Z" }, "london-assembly-press-releases": { "provider": "London Assembly a Press Releases", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 36, + "emptyRuns": 37, "failedRuns": 4, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-20T06:30:13.977Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -26349,14 +26357,14 @@ "at": "2026-04-20T06:30:13.977Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "mopac-html": { "provider": "Mayor's Office for Policing and Crime", @@ -26410,7 +26418,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "london-resilience": { "provider": "Resilience First - Latest Updates", @@ -26465,94 +26473,94 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-27T00:10:29.100Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gov-uk-fcdo-travel-advice": { "provider": "FCDO a Foreign Travel Advice Index", "lane": "border", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-border-force": { "provider": "Border Force (UK) a Announcements and Publications", "lane": "border", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-ukvi": { "provider": "UK Visas and Immigration a Announcements and Publications", "lane": "border", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "bbc-news-england-legacy": { "provider": "BBC News a England (Legacy RSS)", @@ -26581,7 +26589,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "bbc-news-front-page-legacy": { "provider": "BBC News a Front Page (Legacy RSS)", @@ -26616,7 +26624,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "bbc-news-uk": { "provider": "BBC News a UK", @@ -26651,35 +26659,35 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "bbc-news-uk-politics-legacy": { "provider": "BBC News a UK Politics (Legacy RSS)", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T15:10:51.097Z", - "lastBuiltCount": 1, - "successfulRuns": 9, - "emptyRuns": 11, + "lastCheckedAt": "2026-04-25T17:11:37.121Z", + "lastBuiltCount": 0, + "successfulRuns": 10, + "emptyRuns": 12, "failedRuns": 4, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, + "consecutiveEmptyRuns": 1, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-25T15:10:51.097Z", + "lastSuccessfulAt": "2026-04-25T16:12:36.088Z", "lastFailureAt": "2026-04-22T14:59:55.048Z", - "lastEmptyAt": "2026-04-24T15:22:10.638Z", + "lastEmptyAt": "2026-04-25T17:11:37.121Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], "cooldownUntil": null, "autoSkipReason": null, - "healthScore": 90, + "healthScore": 97, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T18:26:51.097Z" + "nextFetchAt": "2026-04-25T20:27:37.121Z" }, "chatham-house-home": { "provider": "Chatham House", @@ -26733,7 +26741,7 @@ "quarantinedAt": "2026-04-18T03:42:22.439Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "chatham-house-security-defence": { "provider": "Chatham House - Security and Defence", @@ -26787,7 +26795,7 @@ "quarantinedAt": "2026-04-18T03:42:22.439Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "essex-police-news": { "provider": "Essex Police a News", @@ -26841,25 +26849,25 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gov-uk-defence-intelligence": { "provider": "UK Defence Intelligence a GOV.UK", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 36, + "emptyRuns": 37, "failedRuns": 4, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-20T06:30:13.977Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -26884,43 +26892,43 @@ "at": "2026-04-20T06:30:13.977Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gov-uk-terrorism-search": { "provider": "GOV.UK Search - Terrorism", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "guardian-uk": { "provider": "The Guardian a UK News", @@ -26949,7 +26957,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T01:23:56.797Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "henry-jackson-society-news": { "provider": "RUSI - Latest Publications", @@ -27004,7 +27012,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T17:21:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "hope-not-hate-home": { "provider": "Hope not hate podcast", @@ -27033,7 +27041,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "institute-global-home": { "provider": "Institute for Global Change", @@ -27087,7 +27095,7 @@ "quarantinedAt": "2026-04-18T03:42:22.439Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "kent-police-news": { "provider": "Kent Police a News", @@ -27141,7 +27149,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "mi5-news": { "provider": "National Crime Agency - News", @@ -27196,25 +27204,25 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-27T10:57:22.432Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "mi5-news-rss-direct": { "provider": "MI5 - News RSS", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 36, + "emptyRuns": 37, "failedRuns": 4, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-20T06:30:13.977Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -27239,14 +27247,14 @@ "at": "2026-04-20T06:30:13.977Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "national-crime-agency-news": { "provider": "National Crime Agency - News", @@ -27300,54 +27308,54 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "npcc-releases": { "provider": "National Police Chiefs' Council - Releases", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "police-uk-all-crime-leicester": { "provider": "Police.uk - Street Crime Around Leicester", "lane": "context", "kind": "json", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 93, + "emptyRuns": 94, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 87, + "consecutiveEmptyRuns": 88, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-16T23:55:39.351Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -27357,72 +27365,72 @@ "at": "2026-04-16T23:55:39.351Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "police-uk-stops-force-leicestershire": { "provider": "Police.uk - Force Stops (Leicestershire)", "lane": "context", "kind": "json", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "police-uk-stops-street-leicester": { "provider": "Police.uk - Street Stops Around Leicester", "lane": "context", "kind": "json", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "report-fraud-home": { "provider": "Report Fraud", @@ -27476,7 +27484,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "report-fraud-newsroom": { "provider": "Report Fraud - Newsroom", @@ -27530,7 +27538,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "rusi-home": { "provider": "RUSI", @@ -27570,7 +27578,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "rusi-publications": { "provider": "RUSI (Royal United Services Institute) a Publications", @@ -27599,7 +27607,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "rusi-terrorism-conflict": { "provider": "RUSI - Latest Publications", @@ -27649,7 +27657,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T17:58:37.999Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "skwawkbox": { "provider": "Skwawkbox", @@ -27686,14 +27694,14 @@ "at": "2026-04-16T22:57:09.120Z" } ], - "cooldownUntil": "2026-04-25T15:24:00.000Z", + "cooldownUntil": "2026-04-25T21:24:00.000Z", "autoSkipReason": "health-deprioritised", "healthScore": 32, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:24:00.000Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T21:24:00.000Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "sky-news-uk-rss": { "provider": "Sky News UK a Top Stories (RSS)", @@ -27722,7 +27730,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "the-sun-all": { "provider": "The Sun", @@ -27777,7 +27785,7 @@ "quarantinedAt": "2026-04-18T00:05:41.686Z", "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", "nextFetchAt": "2026-04-27T14:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "the-sun-all-english": { "provider": "The Sun", @@ -27832,7 +27840,7 @@ "quarantinedAt": "2026-04-18T00:05:41.686Z", "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", "nextFetchAt": "2026-04-27T14:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "the-sun-homepage": { "provider": "The Sun", @@ -27887,7 +27895,7 @@ "quarantinedAt": "2026-04-18T00:05:41.686Z", "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", "nextFetchAt": "2026-04-27T14:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "the-sun-news-english": { "provider": "The Sun", @@ -27942,7 +27950,7 @@ "quarantinedAt": "2026-04-18T00:05:41.686Z", "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", "nextFetchAt": "2026-04-27T14:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "west-yorkshire-police-coroner-appeals-rss": { "provider": "West Yorkshire Police - Coroner Appeals Feed", @@ -27981,7 +27989,7 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "wiltshire-999s": { "provider": "Wiltshire 999s", @@ -28035,7 +28043,7 @@ "quarantinedAt": "2026-04-18T03:42:22.439Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "belfast-live": { "provider": "Belfast Live", @@ -28064,7 +28072,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "birmingham-mail": { "provider": "Birmingham Mail", @@ -28093,7 +28101,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "breaking-news-today": { "provider": "Breaking News Today", @@ -28122,7 +28130,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "cambridge-news": { "provider": "Cambridge News", @@ -28157,25 +28165,25 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T01:23:56.797Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "channel-4-news": { "provider": "Channel 4 News", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T13:23:56.797Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 12, - "emptyRuns": 31, + "emptyRuns": 32, "failedRuns": 4, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 9, + "consecutiveEmptyRuns": 10, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": "2026-04-19T17:13:24.435Z", "lastFailureAt": "2026-04-22T14:59:55.048Z", - "lastEmptyAt": "2026-04-25T13:23:56.797Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -28200,14 +28208,14 @@ "at": "2026-04-22T14:59:55.048Z" } ], - "cooldownUntil": "2026-04-25T15:29:56.797Z", + "cooldownUntil": "2026-04-26T04:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:29:56.797Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-26T04:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "consett-magazine": { "provider": "Consett Magazine", @@ -28236,7 +28244,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "daily-echo": { "provider": "Daily Echo", @@ -28265,7 +28273,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "daily-express": { "provider": "Daily Express", @@ -28294,7 +28302,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "daily-mail-online": { "provider": "Daily Mail Online - Popular Stories", @@ -28339,7 +28347,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "daily-mirror": { "provider": "Daily Mirror", @@ -28368,7 +28376,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "daily-politics": { "provider": "Daily Politics", @@ -28418,7 +28426,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T01:23:56.797Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "deadline-news": { "provider": "Deadline News", @@ -28453,7 +28461,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T17:58:37.999Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "evening-standard": { "provider": "Evening Standard", @@ -28482,36 +28490,36 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "glasgow-times": { "provider": "Glasgow Times", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T13:23:56.797Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 4, - "emptyRuns": 27, + "emptyRuns": 28, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 6, + "consecutiveEmptyRuns": 7, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": "2026-04-25T05:58:37.999Z", "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T13:23:56.797Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:29:56.797Z", + "cooldownUntil": "2026-04-25T18:18:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 39, + "healthScore": 36, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:29:56.797Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T18:18:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "grimsby-telegraph": { "provider": "Grimsby Telegraph", @@ -28540,7 +28548,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "herald-scotland-news": { "provider": "Herald Scotland - News", @@ -28569,7 +28577,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "huffpost-uk": { "provider": "HuffPost UK", @@ -28598,7 +28606,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "larne-times": { "provider": "Larne Times", @@ -28627,7 +28635,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "manchester-evening-news": { "provider": "Manchester Evening News", @@ -28656,7 +28664,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "news-uk": { "provider": "News UK", @@ -28685,7 +28693,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "pinknews": { "provider": "PinkNews", @@ -28740,7 +28748,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "politics-co-uk": { "provider": "Politics.co.uk", @@ -28769,7 +28777,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "positive-news": { "provider": "Positive News", @@ -28798,7 +28806,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "scottish-field": { "provider": "Scottish Field", @@ -28827,7 +28835,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "surgezirc-uk": { "provider": "SurgeZirc UK", @@ -28882,7 +28890,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-27T13:23:56.797Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "the-argus-news": { "provider": "The Argus", @@ -28911,7 +28919,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "the-bolton-news": { "provider": "The Bolton News - News", @@ -28940,7 +28948,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "church-of-england-newspaper": { "provider": "Church of England Newspaper", @@ -28975,7 +28983,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "the-daily-mash": { "provider": "The Daily Mash", @@ -29030,7 +29038,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T01:23:56.797Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "daily-record": { "provider": "Daily Record", @@ -29059,7 +29067,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "guardian-uk-top-stories": { "provider": "The Guardian - UK Top Stories", @@ -29104,7 +29112,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T17:51:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "independent-top-stories": { "provider": "The Independent - Top Stories", @@ -29139,7 +29147,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T01:23:56.797Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "northern-echo-news": { "provider": "The Northern Echo - News", @@ -29168,7 +29176,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "the-poke": { "provider": "The Poke", @@ -29197,7 +29205,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "scarborough-news": { "provider": "The Scarborough News", @@ -29226,7 +29234,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "the-scotsman-news": { "provider": "The Scotsman - News", @@ -29255,7 +29263,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "the-scottish-sun": { "provider": "The Scottish Sun", @@ -29310,7 +29318,7 @@ "quarantinedAt": "2026-04-18T00:05:41.686Z", "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", "nextFetchAt": "2026-04-27T14:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "the-sun": { "provider": "The Sun", @@ -29365,25 +29373,25 @@ "quarantinedAt": "2026-04-18T00:05:41.686Z", "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", "nextFetchAt": "2026-04-27T14:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "the-week-uk": { "provider": "The Week UK", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 0, "successfulRuns": 11, - "emptyRuns": 22, + "emptyRuns": 23, "failedRuns": 3, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 9, + "consecutiveEmptyRuns": 10, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": "2026-04-17T11:07:28.674Z", "lastFailureAt": "2026-04-22T14:59:55.048Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T17:11:37.121Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -29403,14 +29411,13 @@ "at": "2026-04-22T14:59:55.048Z" } ], - "cooldownUntil": "2026-04-25T17:02:06.996Z", - "autoSkipReason": "health-deprioritised", + "cooldownUntil": "2026-04-26T05:11:37.121Z", + "autoSkipReason": "empty-cooldown", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T17:02:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-26T05:11:37.121Z" }, "the-york-press-news": { "provider": "The York Press - News", @@ -29439,7 +29446,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "wales-online": { "provider": "WalesOnline", @@ -29468,7 +29475,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "a-lady-in-london": { "provider": "A Lady in London", @@ -29512,7 +29519,7 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-26T03:29:13.488Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "a-luxury-travel-blog": { "provider": "A Luxury Travel Blog", @@ -29541,7 +29548,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "age-uk-discover": { "provider": "Age UK", @@ -29570,7 +29577,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "alan-malcher": { "provider": "Alan Malcher", @@ -29599,7 +29606,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "arcticdry": { "provider": "ArcticDry", @@ -29639,7 +29646,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-27T07:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "britishbeautyblogger": { "provider": "British Beauty Blogger", @@ -29668,7 +29675,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "buy-firewood-direct": { "provider": "Buy Firewood Direct", @@ -29697,7 +29704,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "carly-rowena": { "provider": "Carly Rowena", @@ -29726,7 +29733,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "cherished-holiday-homes": { "provider": "Cherished Holiday Homes", @@ -29755,7 +29762,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "chique-home-living": { "provider": "Chique Home Living", @@ -29784,7 +29791,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "clubwise-blog": { "provider": "ClubWise Blog", @@ -29813,7 +29820,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "disneyrollergirl": { "provider": "Disneyrollergirl", @@ -29842,25 +29849,25 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "elluminet-press": { "provider": "9to5Mac", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 1, + "emptyRuns": 2, "failedRuns": 7, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 1, + "consecutiveEmptyRuns": 2, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T14:03:06.243Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T17:11:37.121Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -29890,32 +29897,31 @@ "at": "2026-04-23T14:03:06.243Z" } ], - "cooldownUntil": "2026-04-25T16:51:06.996Z", - "autoSkipReason": "health-deprioritised", + "cooldownUntil": null, + "autoSkipReason": null, "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T16:51:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T19:31:37.121Z" }, "england-naturally": { "provider": "England, Naturally", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T13:23:56.797Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 22, + "emptyRuns": 23, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 4, + "consecutiveEmptyRuns": 5, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T03:28:47.210Z", - "lastEmptyAt": "2026-04-25T13:23:56.797Z", + "lastEmptyAt": "2026-04-25T17:11:37.121Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -29925,14 +29931,13 @@ "at": "2026-04-23T03:28:47.210Z" } ], - "cooldownUntil": "2026-04-25T16:22:56.797Z", - "autoSkipReason": "health-deprioritised", + "cooldownUntil": null, + "autoSkipReason": null, "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T16:22:56.797Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T20:10:37.121Z" }, "evening-shire": { "provider": "Evening Shire", @@ -29977,7 +29982,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T01:23:56.797Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "everything-zany": { "provider": "Everything Zany", @@ -30021,25 +30026,25 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-25T18:02:43.923Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "faded-spring": { "provider": "Emily Underworld", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 1, + "emptyRuns": 2, "failedRuns": 7, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 1, + "consecutiveEmptyRuns": 2, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T14:03:06.243Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T17:11:37.121Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -30069,14 +30074,13 @@ "at": "2026-04-23T14:03:06.243Z" } ], - "cooldownUntil": "2026-04-25T16:38:06.996Z", - "autoSkipReason": "health-deprioritised", + "cooldownUntil": null, + "autoSkipReason": null, "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T16:38:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T19:18:37.121Z" }, "fmcg-gurus": { "provider": "Europol - Newsroom", @@ -30111,36 +30115,36 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T17:58:37.999Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "foreign-office-blogs": { "provider": "Foreign Office Blogs", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "fresh-design-blog": { "provider": "Fresh Design Blog", @@ -30169,25 +30173,25 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ian-neate-blog": { "provider": "9to5Mac", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 1, + "emptyRuns": 2, "failedRuns": 7, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 1, + "consecutiveEmptyRuns": 2, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T14:03:06.243Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T17:11:37.121Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -30217,14 +30221,13 @@ "at": "2026-04-23T14:03:06.243Z" } ], - "cooldownUntil": "2026-04-25T16:57:06.996Z", - "autoSkipReason": "health-deprioritised", + "cooldownUntil": null, + "autoSkipReason": null, "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T16:57:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T19:37:37.121Z" }, "jollydeck": { "provider": "JollyDeck", @@ -30253,7 +30256,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "lifestylelinked": { "provider": "LifeStyleLinked", @@ -30282,7 +30285,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "london-review-of-books": { "provider": "London Review of Books", @@ -30311,7 +30314,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "love-my-dress": { "provider": "Love My Dress", @@ -30346,7 +30349,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T01:23:56.797Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "manic-mum-life": { "provider": "Manic Mum Life", @@ -30390,7 +30393,7 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-25T18:02:43.923Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "marie-claire-uk": { "provider": "Marie Claire UK", @@ -30419,7 +30422,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "office-breaks": { "provider": "Office Breaks", @@ -30448,7 +30451,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "on-the-think-of": { "provider": "On The Think Of", @@ -30477,7 +30480,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "quadrant2design-exhibiting-guides": { "provider": "Quadrant2Design Exhibiting Guides", @@ -30522,7 +30525,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T17:58:37.999Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "really-ree": { "provider": "Really Ree", @@ -30566,7 +30569,7 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-25T18:02:43.923Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "rocknroll-bride": { "provider": "Rock n Roll Bride", @@ -30595,7 +30598,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "semibold": { "provider": "Semibold", @@ -30640,7 +30643,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "silly-old-sod": { "provider": "Combating Terrorism Center at West Point - CTC Sentinel", @@ -30675,7 +30678,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "silverspoon-london": { "provider": "SilverSpoon London", @@ -30704,25 +30707,25 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "sks-business-services": { "provider": "UN Office of Counter-Terrorism - News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 1, + "emptyRuns": 2, "failedRuns": 7, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 1, + "consecutiveEmptyRuns": 2, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T14:03:06.243Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T17:11:37.121Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -30752,14 +30755,13 @@ "at": "2026-04-23T14:03:06.243Z" } ], - "cooldownUntil": "2026-04-25T16:34:06.996Z", - "autoSkipReason": "health-deprioritised", + "cooldownUntil": null, + "autoSkipReason": null, "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T16:34:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T19:14:37.121Z" }, "hnd-assignment-help-uk-medium": { "provider": "Stories by HND Assignment Help UK", @@ -30788,7 +30790,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "streetspace": { "provider": "Streetspace", @@ -30843,7 +30845,7 @@ "quarantinedAt": "2026-04-18T00:05:41.686Z", "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", "nextFetchAt": "2026-04-27T14:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "tenura": { "provider": "Tenura", @@ -30878,7 +30880,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-27T07:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "thank-you-for-the-days": { "provider": "Thank you for the days", @@ -30932,7 +30934,7 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "the-curry-guy": { "provider": "The Curry Guy", @@ -30961,7 +30963,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "real-talk-uk": { "provider": "The Real Talk UK", @@ -30990,7 +30992,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "the-stratfordian": { "provider": "The Stratfordian", @@ -31019,7 +31021,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "training-express": { "provider": "Training Express", @@ -31048,7 +31050,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-constitutional-law-association": { "provider": "UK Constitutional Law Association", @@ -31077,7 +31079,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-fundraising-blog": { "provider": "UK Fundraising", @@ -31106,7 +31108,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-human-rights-blog": { "provider": "UK Human Rights Blog", @@ -31135,7 +31137,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "vershd": { "provider": "Vershd", @@ -31164,7 +31166,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "vuelio-uk": { "provider": "Vuelio", @@ -31193,36 +31195,36 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ukhsa-updates-atom": { "provider": "UK Health Security Agency", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "nitter-uk-incident-keywords": { "provider": "Nitter - UK Incident Keyword Search", @@ -31266,7 +31268,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "sky-business-rss": { "provider": "Sky News - Business (RSS)", @@ -31295,7 +31297,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "mi5-news-rss": { "provider": "MI5 - News and Updates (RSS)", @@ -31339,7 +31341,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "counter-terrorism-policing-uk-rss": { "provider": "Counter Terrorism Policing UK", @@ -31383,7 +31385,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "act-campaign-feed": { "provider": "Action Counters Terrorism (ACT)", @@ -31427,7 +31429,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "missing-people-uk-rss": { "provider": "Missing People UK", @@ -31456,65 +31458,65 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "home-office-atom": { "provider": "UK Home Office", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "charity-commission-atom": { "provider": "Charity Commission for England and Wales", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "national-trust-news-rss": { "provider": "National Trust", @@ -31553,7 +31555,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T08:13:14.472Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "visitbritain-rss": { "provider": "VisitBritain", @@ -31592,7 +31594,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T08:13:14.472Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "time-out-uk-rss": { "provider": "Time Out UK", @@ -31631,7 +31633,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T08:13:14.472Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "guido-fawkes-feed": { "provider": "Guido Fawkes", @@ -31660,7 +31662,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "wings-over-scotland-feed": { "provider": "Wings Over Scotland", @@ -31689,7 +31691,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "skwawkbox-feed": { "provider": "Skwawkbox", @@ -31718,91 +31720,91 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "breitbart-london-feed": { "provider": "Breitbart London", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T15:10:51.097Z", - "lastBuiltCount": 1, + "lastCheckedAt": "2026-04-25T17:11:37.121Z", + "lastBuiltCount": 0, "successfulRuns": 9, - "emptyRuns": 6, + "emptyRuns": 8, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 0, + "consecutiveEmptyRuns": 2, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": "2026-04-25T15:10:51.097Z", "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T00:10:29.100Z", + "lastEmptyAt": "2026-04-25T17:11:37.121Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], "cooldownUntil": null, "autoSkipReason": null, - "healthScore": 100, + "healthScore": 94, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T18:40:51.097Z" + "nextFetchAt": "2026-04-25T20:41:37.121Z" }, "gb-news-uk-politics-rss": { "provider": "GB News - UK Politics", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T15:10:51.097Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 0, "successfulRuns": 9, - "emptyRuns": 6, + "emptyRuns": 8, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 3, + "consecutiveEmptyRuns": 5, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": "2026-04-25T11:48:31.947Z", "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T15:10:51.097Z", + "lastEmptyAt": "2026-04-25T17:11:37.121Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], "cooldownUntil": null, "autoSkipReason": null, - "healthScore": 91, + "healthScore": 85, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T19:08:51.097Z" + "nextFetchAt": "2026-04-25T21:09:37.121Z" }, "the-canary-feed": { "provider": "The Canary", "lane": "context", "kind": "rss", - "lastCheckedAt": "2026-04-25T15:10:51.097Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 0, "successfulRuns": 11, - "emptyRuns": 4, + "emptyRuns": 6, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 3, + "consecutiveEmptyRuns": 5, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": "2026-04-25T11:48:31.947Z", "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T15:10:51.097Z", + "lastEmptyAt": "2026-04-25T17:11:37.121Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], "cooldownUntil": null, "autoSkipReason": null, - "healthScore": 91, + "healthScore": 85, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T19:07:51.097Z" + "nextFetchAt": "2026-04-25T21:08:37.121Z" }, "sky-news-home-rss": { "provider": "Sky News - Home", @@ -31831,7 +31833,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "telegraph-all-news-rss": { "provider": "The Telegraph - News", @@ -31860,7 +31862,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "my-london-rss": { "provider": "MyLondon", @@ -31889,65 +31891,65 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-data-police-api": { "provider": "Police.uk - API root", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-judiciary-sentencing-remarks": { "provider": "Judiciary UK - Sentencing remarks", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-college-policing-news": { "provider": "College of Policing - News and views", @@ -31991,94 +31993,94 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-ons-crime-england-wales": { "provider": "ONS - Crime in England and Wales", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-serious-fraud-office-news": { "provider": "Serious Fraud Office - GOV.UK organisation", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-hmrc-news": { "provider": "HM Revenue & Customs - News and communications", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-ukfinance-fraud-news": { "provider": "UK Finance - News and insight", @@ -32122,7 +32124,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-cifas-newsroom": { "provider": "Cifas - Newsroom", @@ -32151,7 +32153,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "politics-co-uk-rss": { "provider": "Politics.co.uk", @@ -32180,36 +32182,36 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-met-office-rss-guides": { "provider": "Met Office - RSS feeds guide", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "novara-media-feed": { "provider": "Novara Media", @@ -32238,7 +32240,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "byline-times-feed": { "provider": "Byline Times", @@ -32267,7 +32269,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "reddit-unitedkingdom-rss": { "provider": "Reddit - r/unitedkingdom", @@ -32296,65 +32298,65 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "avon-and-somerset-police-news-html": { "provider": "Avon and Somerset Police - News", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 95, + "emptyRuns": 96, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 95, + "consecutiveEmptyRuns": 96, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "avon-somerset-police-news": { "provider": "Avon & Somerset Police - News", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 95, + "emptyRuns": 96, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 95, + "consecutiveEmptyRuns": 96, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "bedfordshire-police-news": { "provider": "Bedfordshire Police - News", @@ -32408,7 +32410,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "bedfordshire-police-news-search": { "provider": "Bedfordshire Police - News Search", @@ -32462,7 +32464,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "british-transport-police-news": { "provider": "British Transport Police Authority - News Feed", @@ -32517,7 +32519,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-27T10:57:22.432Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "btp-british-transport-police-news-html": { "provider": "British Transport Police - News", @@ -32571,7 +32573,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "cambridgeshire-police-news-search": { "provider": "Cambridgeshire Police - News Search", @@ -32625,7 +32627,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "cheshire-police-news": { "provider": "Cheshire Constabulary - News", @@ -32679,7 +32681,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "cleveland-police-news": { "provider": "Cleveland Police - News", @@ -32733,7 +32735,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "cps-news-centre": { "provider": "Crown Prosecution Service a News Centre", @@ -32787,7 +32789,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ct-policing-north-west": { "provider": "Counter Terrorism Policing North West", @@ -32841,7 +32843,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ct-policing-uk-latest-news": { "provider": "Counter Terrorism Policing UK a Latest News", @@ -32895,7 +32897,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ct-policing-uk-rss-feed": { "provider": "Counter Terrorism Policing UK - Latest News", @@ -32950,7 +32952,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-27T14:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "cumbria-police-news": { "provider": "Cumbria Police - News", @@ -33004,7 +33006,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "cumbria-police-newsroom": { "provider": "Cumbria Police - Newsroom", @@ -33058,7 +33060,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "derbyshire-police-news": { "provider": "Derbyshire Police - News", @@ -33112,7 +33114,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "devon-and-cornwall-police-newsroom": { "provider": "Devon and Cornwall Police - Newsroom", @@ -33166,7 +33168,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "devon-cornwall-police-news": { "provider": "Devon and Cornwall Police - News", @@ -33220,7 +33222,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "dorset-police-news": { "provider": "Dorset Police - News", @@ -33274,7 +33276,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "dorset-police-newsroom": { "provider": "Dorset Police - Newsroom", @@ -33328,7 +33330,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "durham-constabulary-news": { "provider": "Durham Constabulary a News", @@ -33382,7 +33384,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "durham-police-durham-news": { "provider": "Durham Police - Durham News", @@ -33436,7 +33438,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "dyfed-powys-police-news": { "provider": "Dyfed-Powys Police - News", @@ -33490,7 +33492,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "essex-police-news-html": { "provider": "Essex Police - News", @@ -33544,7 +33546,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gloucestershire-police-news": { "provider": "Gloucestershire Police - News", @@ -33598,7 +33600,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gmp-news": { "provider": "Greater Manchester Police a News", @@ -33652,7 +33654,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "greater-manchester-police-news": { "provider": "Greater Manchester Police - News", @@ -33706,7 +33708,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gwent-police-news": { "provider": "Gwent Police - News", @@ -33760,7 +33762,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "hampshire-police-news": { "provider": "Hampshire & Isle of Wight Constabulary a News", @@ -33814,7 +33816,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "hertfordshire-police-news": { "provider": "Hertfordshire Constabulary a News", @@ -33868,7 +33870,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "humberside-police-news-search": { "provider": "Humberside Police - News Search", @@ -33922,7 +33924,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "kent-police-news-html": { "provider": "Kent Police - News", @@ -33976,7 +33978,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "lancashire-constabulary-news": { "provider": "Lancashire Constabulary a News", @@ -34030,7 +34032,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "leicestershire-police-news": { "provider": "National Crime Agency - News", @@ -34085,7 +34087,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — errors alternate between auth blocks and anti-bot; consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-27T10:57:22.432Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "lincolnshire-police-news": { "provider": "Lincolnshire Police - News", @@ -34139,7 +34141,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "merseyside-police-news": { "provider": "Merseyside Police a News", @@ -34193,7 +34195,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "merseyside-police-news-html": { "provider": "Merseyside Police - News", @@ -34247,7 +34249,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "norfolk-constabulary-news": { "provider": "Norfolk Constabulary - News", @@ -34301,7 +34303,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "north-wales-police-news": { "provider": "North Wales Police - News", @@ -34355,7 +34357,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "north-yorkshire-police-news-html": { "provider": "North Yorkshire Police - News", @@ -34409,7 +34411,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "northamptonshire-police-news-html": { "provider": "Northamptonshire Police - News", @@ -34463,25 +34465,25 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "northumbria-police-news": { "provider": "North East Bylines", "lane": "incidents", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 3, + "emptyRuns": 4, "failedRuns": 7, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 3, + "consecutiveEmptyRuns": 4, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T10:13:21.253Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -34511,14 +34513,14 @@ "at": "2026-04-23T10:13:21.253Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "northumbria-police-northumbria-news": { "provider": "Northumbria Police - Northumbria News", @@ -34572,7 +34574,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "nottinghamshire-police-news": { "provider": "Nottinghamshire Police a News", @@ -34626,7 +34628,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "nottinghamshire-police-nottinghamshire-news": { "provider": "Nottinghamshire Police - Nottinghamshire News", @@ -34680,25 +34682,25 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "police-scotland-news": { "provider": "Police Scotland news", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 44, + "emptyRuns": 45, "failedRuns": 4, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-19T19:32:35.264Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -34723,43 +34725,43 @@ "at": "2026-04-19T19:32:35.264Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "psni-latest-news": { "provider": "Police Service of Northern Ireland - Latest News", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 95, + "emptyRuns": 96, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 95, + "consecutiveEmptyRuns": 96, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "psni-news": { "provider": "Police Service of Northern Ireland a News", @@ -34813,7 +34815,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "south-wales-police-news": { "provider": "South Wales Police - News", @@ -34867,7 +34869,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "south-yorkshire-police-news": { "provider": "South Yorkshire Police a News", @@ -34921,7 +34923,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "staffordshire-police-news": { "provider": "Staffordshire Police a News", @@ -34975,7 +34977,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "staffordshire-police-staffordshire-news": { "provider": "Staffordshire Police - Staffordshire News", @@ -35029,7 +35031,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "suffolk-constabulary-news": { "provider": "Suffolk Constabulary - News", @@ -35083,7 +35085,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "surrey-police-news": { "provider": "Surrey Police a News", @@ -35137,7 +35139,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "sussex-police-news": { "provider": "Sussex Police a News", @@ -35191,7 +35193,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "thames-valley-police-news": { "provider": "Thames Valley Police a News", @@ -35245,7 +35247,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "thames-valley-police-news-html": { "provider": "Thames Valley Police - Thames Valley News", @@ -35299,25 +35301,25 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "warwickshire-police-news": { "provider": "Warwickshire Connected - Latest Alerts", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 3, + "emptyRuns": 4, "failedRuns": 7, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 3, + "consecutiveEmptyRuns": 4, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T10:13:21.253Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -35347,14 +35349,14 @@ "at": "2026-04-23T10:13:21.253Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "west-mercia-police-news-html": { "provider": "West Mercia Police - News", @@ -35408,7 +35410,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "west-midlands-police-news": { "provider": "West Midlands Police a News", @@ -35462,36 +35464,36 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "west-yorkshire-police-all-rss": { "provider": "West Yorkshire Police - All News", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 95, + "emptyRuns": 96, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 95, + "consecutiveEmptyRuns": 96, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "west-yorkshire-police-appeals-rss": { "provider": "West Yorkshire Police - Appeals", @@ -35525,7 +35527,7 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-26T11:47:26.601Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "west-yorkshire-police-missing-rss": { "provider": "West Yorkshire Police - Missing Feed", @@ -35580,7 +35582,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", "nextFetchAt": "2026-04-27T10:57:22.432Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "west-yorkshire-police-news": { "provider": "West Yorkshire Police a News", @@ -35619,65 +35621,65 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "west-yorkshire-police-news-appeals": { "provider": "West Yorkshire Police - News Appeals", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 95, + "emptyRuns": 96, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 95, + "consecutiveEmptyRuns": 96, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "west-yorkshire-police-news-rss": { "provider": "West Yorkshire Police - News", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 95, + "emptyRuns": 96, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 95, + "consecutiveEmptyRuns": 96, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "west-yorkshire-police-releases-rss": { "provider": "West Yorkshire Police - RSS Feeds", @@ -35711,7 +35713,7 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-26T11:47:26.601Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "wiltshire-police-news": { "provider": "Wiltshire Police - News", @@ -35765,65 +35767,65 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-npcc-news": { "provider": "National Police Chiefs' Council - News", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-npcc-county-lines": { "provider": "National Police Chiefs' Council - Crime Operations releases", "lane": "incidents", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-btp-england-news": { "provider": "British Transport Police - England news", @@ -35867,7 +35869,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-city-london-police-news": { "provider": "City of London Police - News", @@ -35911,7 +35913,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-city-london-police-fraud": { "provider": "City of London Police - Fraud category", @@ -35955,7 +35957,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-west-mercia-police-news": { "provider": "West Mercia Police - News", @@ -35999,7 +36001,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-british-transport-police-search": { "provider": "British Transport Police - News search", @@ -36043,7 +36045,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "mi5-terrorism-news-category": { "provider": "MI5 - Terrorism News", @@ -36087,7 +36089,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "cps-news-category-feed": { "provider": "Crown Prosecution Service - News", @@ -36126,65 +36128,65 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T08:13:14.472Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "attorney-generals-office-html": { "provider": "Attorney General's Office", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "cabinet-office-html": { "provider": "Cabinet Office", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "cps-homepage": { "provider": "Crown Prosecution Service", @@ -36238,36 +36240,36 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "crown-office-news": { "provider": "Crown Office and Procurator Fiscal Service - News", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "echr-uk-grand-chamber-rss": { "provider": "European Court of Human Rights - HUDOC", @@ -36301,152 +36303,152 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-26T11:47:26.601Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "extremism-commission-blog": { "provider": "Commission for Countering Extremism - Blog", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "fcdo-html": { "provider": "Foreign, Commonwealth & Development Office", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 13, - "emptyRuns": 90, + "emptyRuns": 91, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 89, + "consecutiveEmptyRuns": 90, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": "2026-04-17T14:10:24.787Z", "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gov-scot-access-to-justice-latest": { "provider": "Scottish Government - Access to Justice Latest", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gov-uk-cabinet-office-atom": { "provider": "Cabinet Office", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gov-uk-hmcts": { "provider": "HMCTS a Courts and Tribunals Announcements", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gov-uk-hmic": { "provider": "HM Inspectorate of Constabulary a GOV.UK", @@ -36500,15 +36502,15 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gov-uk-home-office-atom": { "provider": "UK Home Office", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T15:10:51.097Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 1, - "successfulRuns": 20, + "successfulRuns": 22, "emptyRuns": 80, "failedRuns": 0, "consecutiveFailures": 0, @@ -36516,7 +36518,7 @@ "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-25T15:10:51.097Z", + "lastSuccessfulAt": "2026-04-25T17:11:37.121Z", "lastFailureAt": null, "lastEmptyAt": "2026-04-24T08:17:25.806Z", "lastErrorCategory": null, @@ -36528,123 +36530,123 @@ "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T16:10:51.097Z" + "nextFetchAt": "2026-04-25T18:11:37.121Z" }, "gov-uk-ipco": { "provider": "Investigatory Powers Commissioner's Office a GOV.UK", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gov-uk-mod-atom": { "provider": "Ministry of Defence", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gov-uk-moj-atom": { "provider": "Ministry of Justice", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gov-uk-news-and-communications-atom": { "provider": "GOV.UK - News and Communications", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 17, - "emptyRuns": 88, + "emptyRuns": 89, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 44, + "consecutiveEmptyRuns": 45, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": "2026-04-20T21:17:14.299Z", "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gov-uk-parliament-jcnss": { "provider": "UK Parliament a Joint Committee on National Security Strategy", @@ -36698,152 +36700,152 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "hmiprisons-news": { "provider": "HM Inspectorate of Prisons - News", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "hmiprobation-news": { "provider": "HM Inspectorate of Probation - News", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "home-office-media-blog": { "provider": "Home Office Media Blog", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "independent-reviewer-terrorism-legislation": { "provider": "Independent Reviewer of Terrorism Legislation a Reports", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "independent-reviewer-terrorism-legislation-html": { "provider": "Independent Reviewer of Terrorism Legislation", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "joint-committee-human-rights-html": { "provider": "Joint Committee on Human Rights", @@ -36897,94 +36899,94 @@ "quarantinedAt": "2026-04-16T16:57:11.406Z", "quarantineReason": "Endpoint likely removed — all recent errors are HTTP 404", "nextFetchAt": "2026-04-25T19:31:23.009Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "judiciary-rss-feeds-page": { "provider": "Judiciary UK - RSS Feeds", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "judiciary-uk-announcements-feed": { "provider": "Judiciary UK - Announcements Feed", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "judiciary-uk-judgments-feed": { "provider": "Judiciary UK - Judgments Feed", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "judiciary-uk-news": { "provider": "Judiciary of England and Wales a News", @@ -37033,36 +37035,36 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-26T16:38:34.841Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "judiciary-uk-publications-feed": { "provider": "Judiciary UK - Publications Feed", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "lords-in-focus-rss": { "provider": "Hansard Society - Despatch Box", @@ -37117,7 +37119,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T17:52:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "lords-library-notes-rss": { "provider": "Hansard Society - Despatch Box", @@ -37165,71 +37167,72 @@ "at": "2026-04-23T10:13:21.253Z" } ], - "cooldownUntil": null, - "autoSkipReason": null, + "cooldownUntil": "2026-04-25T18:42:51.097Z", + "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T18:42:51.097Z" + "nextFetchAt": "2026-04-25T18:42:51.097Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ministry-of-defence-html": { "provider": "Ministry of Defence", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 14, - "emptyRuns": 89, + "emptyRuns": 90, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 89, + "consecutiveEmptyRuns": 90, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": "2026-04-17T14:10:24.787Z", "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ons-html": { "provider": "Office for National Statistics", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "parliament-all-bills-rss": { "provider": "Parliament - All Bills RSS", @@ -37264,7 +37267,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-27T10:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "parliament-private-bills-rss": { "provider": "Parliament - Private Bills RSS", @@ -37299,7 +37302,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-27T10:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "parliament-public-bills-rss": { "provider": "Parliament - Public Bills RSS", @@ -37334,7 +37337,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-27T10:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "police-ombudsman-current-investigations": { "provider": "Police Ombudsman - Current Investigations", @@ -37388,83 +37391,83 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "police-uk-crime-categories-2024-01": { "provider": "Police.uk - Crime Categories (2024-01)", "lane": "oversight", "kind": "json", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "police-uk-crimes-street-dates": { "provider": "Police.uk - Street Crime Dataset Dates", "lane": "oversight", "kind": "json", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "police-uk-outcomes-at-location-1609590": { "provider": "Police Data UK - Outcomes At Location API Docs", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 3, + "emptyRuns": 4, "failedRuns": 7, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 3, + "consecutiveEmptyRuns": 4, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T10:13:21.253Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -37494,264 +37497,264 @@ "at": "2026-04-23T10:13:21.253Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "police-uk-outcomes-for-crime-e11dade0": { "provider": "Police.uk - Outcomes For Crime e11dade0", "lane": "oversight", "kind": "json", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "scotcourts-fai-determinations-rss": { "provider": "Scottish Courts - Fatal Accident Inquiry Determinations RSS", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "scotcourts-fai-hearings-rss": { "provider": "Scottish Courts - Fatal Accident Inquiry Hearings RSS", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "scotcourts-high-court-justiciary-judgments-rss": { "provider": "Scottish Courts - High Court of Justiciary Judgments RSS", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "scotcourts-high-court-practice-notes-rss": { "provider": "Scottish Courts - High Court of Justiciary Practice Notes RSS", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "scotcourts-judgments-rss": { "provider": "Scottish Courts - Judgments RSS", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "scotcourts-news-articles-rss": { "provider": "Scottish Courts - News Articles RSS", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "scotcourts-publications-rss": { "provider": "Scottish Courts - Publications RSS", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "scotcourts-rss-feeds-page": { "provider": "Scottish Courts and Tribunals - RSS Feeds", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 71, + "emptyRuns": 72, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 6, + "consecutiveEmptyRuns": 7, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T03:28:47.210Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -37761,61 +37764,61 @@ "at": "2026-04-23T03:28:47.210Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "scotcourts-sheriff-criminal-practice-notes-rss": { "provider": "Scottish Courts - Sheriff Court Criminal Practice Notes RSS", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "scottish-government-justice-news": { "provider": "Scottish Government - Justice and Safety", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 36, + "emptyRuns": 37, "failedRuns": 4, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-20T06:30:13.977Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -37840,32 +37843,32 @@ "at": "2026-04-20T06:30:13.977Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "serious-fraud-office-news": { "provider": "Serious Fraud Office a News", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 77, + "emptyRuns": 78, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-20T04:05:33.139Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -37875,22 +37878,22 @@ "at": "2026-04-20T04:05:33.139Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-home-office": { "provider": "UK Home Office a Announcements and Publications", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T15:10:51.097Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 1, - "successfulRuns": 121, + "successfulRuns": 123, "emptyRuns": 4, "failedRuns": 0, "consecutiveFailures": 0, @@ -37898,7 +37901,7 @@ "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-25T15:10:51.097Z", + "lastSuccessfulAt": "2026-04-25T17:11:37.121Z", "lastFailureAt": null, "lastEmptyAt": "2026-04-19T18:05:04.781Z", "lastErrorCategory": null, @@ -37910,44 +37913,44 @@ "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T16:10:51.097Z" + "nextFetchAt": "2026-04-25T18:11:37.121Z" }, "uk-iopc-news": { "provider": "Independent Office for Police Conduct a News", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-ncsc-news": { "provider": "National Cyber Security Centre (UK) a News", "lane": "oversight", "kind": "rss", - "lastCheckedAt": "2026-04-25T15:10:51.097Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 5, - "successfulRuns": 125, + "successfulRuns": 127, "emptyRuns": 0, "failedRuns": 0, "consecutiveFailures": 0, @@ -37955,7 +37958,7 @@ "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-25T15:10:51.097Z", + "lastSuccessfulAt": "2026-04-25T17:11:37.121Z", "lastFailureAt": null, "lastEmptyAt": null, "lastErrorCategory": null, @@ -37967,7 +37970,7 @@ "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T16:10:51.097Z" + "nextFetchAt": "2026-04-25T18:11:37.121Z" }, "uk-ncsc-threat-reports": { "provider": "National Cyber Security Centre (UK) a Threat Reports", @@ -38021,7 +38024,7 @@ "quarantinedAt": "2026-04-18T05:49:08.723Z", "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-parliament-business-news": { "provider": "UK Parliament - Business News", @@ -38075,25 +38078,25 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-parliament-defence-committee": { "provider": "UK Parliament a Defence Select Committee", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 71, + "emptyRuns": 72, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 3, + "consecutiveEmptyRuns": 4, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T10:13:21.253Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -38103,14 +38106,14 @@ "at": "2026-04-23T10:13:21.253Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-parliament-foreign-affairs-committee": { "provider": "UK Parliament a Foreign Affairs Select Committee", @@ -38164,7 +38167,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-parliament-home-affairs-committee": { "provider": "UK Parliament a Home Affairs Committee (News)", @@ -38198,7 +38201,7 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-26T08:17:25.806Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-parliament-isc": { "provider": "UK Parliament a Intelligence and Security Committee (Reports & News)", @@ -38252,7 +38255,7 @@ "quarantinedAt": "2026-04-18T05:49:08.723Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-parliament-justice-committee": { "provider": "UK Parliament a Justice Select Committee", @@ -38306,7 +38309,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-parliament-rss-feeds-index": { "provider": "UK Parliament - RSS Feeds", @@ -38350,7 +38353,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "act-campaign": { "provider": "ACT Awareness Campaign", @@ -38384,25 +38387,25 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-26T17:57:58.900Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "cheshire-police-alert": { "provider": "Cheshire Police Alert", "lane": "prevention", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 73, + "emptyRuns": 74, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-19T17:13:24.435Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -38412,14 +38415,14 @@ "at": "2026-04-19T17:13:24.435Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ct-policing-prevent-programme": { "provider": "Counter Terrorism Policing - Prevent", @@ -38473,7 +38476,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ct-policing-what-you-can-do": { "provider": "Counter Terrorism Policing - What You Can Do", @@ -38527,25 +38530,25 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "dc-police-community-messaging": { "provider": "Dorset and Cornwall Police - Community Messaging", "lane": "prevention", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 73, + "emptyRuns": 74, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-19T17:13:24.435Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -38555,32 +38558,32 @@ "at": "2026-04-19T17:13:24.435Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "devon-cornwall-alerts": { "provider": "Devon and Cornwall Alerts", "lane": "prevention", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 73, + "emptyRuns": 74, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-19T17:13:24.435Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -38590,22 +38593,22 @@ "at": "2026-04-19T17:13:24.435Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gnet-research": { "provider": "Global Network on Extremism & Technology (GNET) a Main Feed", "lane": "prevention", "kind": "rss", - "lastCheckedAt": "2026-04-25T15:10:51.097Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 4, - "successfulRuns": 113, + "successfulRuns": 115, "emptyRuns": 8, "failedRuns": 0, "consecutiveFailures": 0, @@ -38613,7 +38616,7 @@ "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-25T15:10:51.097Z", + "lastSuccessfulAt": "2026-04-25T17:11:37.121Z", "lastFailureAt": null, "lastEmptyAt": "2026-04-25T10:04:35.232Z", "lastErrorCategory": null, @@ -38625,54 +38628,54 @@ "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T18:53:51.097Z" + "nextFetchAt": "2026-04-25T20:54:37.121Z" }, "gov-uk-contest-strategy": { "provider": "GOV.UK a CONTEST Counter-Terrorism Strategy", "lane": "prevention", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gov-uk-counter-extremism-commissioner": { "provider": "Counter Extremism Commissioner a GOV.UK", "lane": "prevention", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 93, + "emptyRuns": 94, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 91, + "consecutiveEmptyRuns": 92, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-16T19:01:30.233Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -38682,43 +38685,43 @@ "at": "2026-04-16T19:01:30.233Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gov-uk-prevent-strategy": { "provider": "UK Home Office - Prevent duty guidance", "lane": "prevention", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gov-uk-report-terrorism": { "provider": "GOV.UK - Report Terrorism", @@ -38772,7 +38775,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gov-uk-terrorism-national-emergency": { "provider": "GOV.UK - Terrorism National Emergency", @@ -38826,7 +38829,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "icsr-kcl": { "provider": "International Centre for the Study of Radicalisation (ICSR) a Updates", @@ -38880,36 +38883,36 @@ "quarantinedAt": "2026-04-18T03:42:22.439Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "met-office-seasonal-advice": { "provider": "Met Office - Seasonal Advice", "lane": "prevention", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "mi5-terrorism-threat-levels": { "provider": "MI5 - Terrorism Threat Levels", @@ -38963,54 +38966,54 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "mi5-uk-threat-level": { "provider": "MI5 (Security Service) a UK Threat Level", "lane": "prevention", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "my-community-alert": { "provider": "My Community Alert", "lane": "prevention", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 47, + "emptyRuns": 48, "failedRuns": 2, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 2, + "consecutiveEmptyRuns": 3, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-23T11:47:27.254Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -39025,14 +39028,14 @@ "at": "2026-04-23T11:47:27.254Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "north-wales-community-alert": { "provider": "North Wales Community Alert", @@ -39081,7 +39084,7 @@ "quarantinedAt": null, "quarantineReason": "Low health score – needs review", "nextFetchAt": "2026-04-26T03:29:13.488Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "northamptonshire-talking": { "provider": "Northamptonshire Talking", @@ -39135,7 +39138,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "npsa-blog": { "provider": "NPSA - Blog", @@ -39189,7 +39192,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "npsa-blog-news": { "provider": "NPSA - Blog News", @@ -39243,36 +39246,36 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "npsa-national-protective-security-authority": { "provider": "NPSA - Activity on GOV.UK", "lane": "prevention", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "protectuk": { "provider": "ProtectUK (NPSA) a Protective Security Guidance", @@ -39326,25 +39329,25 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "south-yorkshire-police-alerts": { "provider": "South Yorkshire Police Alerts", "lane": "prevention", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 73, + "emptyRuns": 74, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-19T17:13:24.435Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -39354,32 +39357,32 @@ "at": "2026-04-19T17:13:24.435Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "stay-in-the-know-home": { "provider": "Stay In The Know - Community Alerts", "lane": "prevention", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 73, + "emptyRuns": 74, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-19T17:13:24.435Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -39389,32 +39392,32 @@ "at": "2026-04-19T17:13:24.435Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "stay-in-the-know-latest-alerts": { "provider": "Stay In The Know - Latest Alerts", "lane": "prevention", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 72, + "emptyRuns": 73, "failedRuns": 2, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-19T17:13:24.435Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -39429,43 +39432,43 @@ "at": "2026-04-19T17:13:24.435Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-ncsc-all-rss": { "provider": "UK NCSC - All Updates RSS", "lane": "prevention", "kind": "rss", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 14, - "emptyRuns": 89, + "emptyRuns": 90, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 89, + "consecutiveEmptyRuns": 90, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": "2026-04-17T14:10:24.787Z", "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-ncsc-homepage": { "provider": "UK NCSC - Homepage", @@ -39519,54 +39522,54 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "uk-prevent-duty-guidance": { "provider": "GOV.UK a Prevent Duty Guidance (Collection)", "lane": "prevention", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "west-midlands-community-alerts": { "provider": "WMNow - Community Alerts", "lane": "prevention", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 73, + "emptyRuns": 74, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-19T17:13:24.435Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -39576,32 +39579,32 @@ "at": "2026-04-19T17:13:24.435Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "west-yorkshire-community-alert": { "provider": "West Yorkshire Community Alert", "lane": "prevention", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 73, + "emptyRuns": 74, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-19T17:13:24.435Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -39611,14 +39614,14 @@ "at": "2026-04-19T17:13:24.435Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "protectuk-news": { "provider": "ProtectUK - News", @@ -39662,36 +39665,36 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "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-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 14, + "emptyRuns": 15, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 14, + "consecutiveEmptyRuns": 15, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", - "healthScore": 38, + "healthScore": 35, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "npsa-national-security-threats": { "provider": "National Protective Security Authority - National Security Threats", @@ -39735,7 +39738,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T00:33:33.442Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "hedayah-news": { "provider": "Hedayah - News", @@ -39774,7 +39777,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T08:13:14.472Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "tech-against-terrorism-news": { "provider": "Tech Against Terrorism - News", @@ -39803,102 +39806,102 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T22:04:35.232Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gov-uk-proscribed-terrorist-orgs": { "provider": "GOV.UK a Proscribed Terrorist Organisations", "lane": "sanctions", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "hm-treasury-html": { "provider": "HM Treasury", "lane": "sanctions", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ofsi-blog-home": { "provider": "OFSI - Blog", "lane": "sanctions", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "otsi-blog-home": { "provider": "OTSI - Blog", "lane": "sanctions", "kind": "html", - "lastCheckedAt": "2026-04-25T15:10:51.097Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 1, - "successfulRuns": 121, + "successfulRuns": 123, "emptyRuns": 4, "failedRuns": 0, "consecutiveFailures": 0, @@ -39906,7 +39909,7 @@ "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-25T15:10:51.097Z", + "lastSuccessfulAt": "2026-04-25T17:11:37.121Z", "lastFailureAt": null, "lastEmptyAt": "2026-04-19T18:05:04.781Z", "lastErrorCategory": null, @@ -39918,15 +39921,15 @@ "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T16:10:51.097Z" + "nextFetchAt": "2026-04-25T18:11:37.121Z" }, "uk-ofsi-blog": { "provider": "Office of Financial Sanctions Implementation (OFSI) a Blog", "lane": "sanctions", "kind": "rss", - "lastCheckedAt": "2026-04-25T15:10:51.097Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 2, - "successfulRuns": 125, + "successfulRuns": 127, "emptyRuns": 0, "failedRuns": 0, "consecutiveFailures": 0, @@ -39934,7 +39937,7 @@ "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, - "lastSuccessfulAt": "2026-04-25T15:10:51.097Z", + "lastSuccessfulAt": "2026-04-25T17:11:37.121Z", "lastFailureAt": null, "lastEmptyAt": null, "lastErrorCategory": null, @@ -39946,7 +39949,7 @@ "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T16:10:51.097Z" + "nextFetchAt": "2026-04-25T18:11:37.121Z" }, "uk-sanctions-list": { "provider": "UK Sanctions List (FCDO) a Consolidated List (XML Service)", @@ -40001,7 +40004,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", "nextFetchAt": "2026-04-27T10:57:22.432Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "ctc-sentinel": { "provider": "Combating Terrorism Center at West Point - CTC Sentinel", @@ -40035,54 +40038,54 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-26T17:58:51.723Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "dhs-press-releases": { "provider": "US Department of Homeland Security - News", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "dni-press-releases": { "provider": "Office of the Director of National Intelligence - Press Releases", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 36, + "emptyRuns": 37, "failedRuns": 4, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-20T06:30:13.977Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -40107,32 +40110,32 @@ "at": "2026-04-20T06:30:13.977Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "doj-nsd-press-releases": { "provider": "U.S. Department of Justice - National Security Division Press Releases", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 36, + "emptyRuns": 37, "failedRuns": 4, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 36, + "consecutiveEmptyRuns": 37, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-20T06:30:13.977Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -40157,14 +40160,14 @@ "at": "2026-04-20T06:30:13.977Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "fbi-national-press-releases": { "provider": "FBI - National Press Releases (RSS)", @@ -40219,7 +40222,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", "nextFetchAt": "2026-04-27T10:57:22.432Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "fbi-stories": { "provider": "FBI - Top Stories (RSS)", @@ -40274,7 +40277,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Access protection added — consistent 401/403 blocks; consider new endpoint", "nextFetchAt": "2026-04-27T10:57:22.432Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "fbi-top-stories": { "provider": "FBI - Top Stories (RSS)", @@ -40329,7 +40332,7 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "HTML structure changed — selectors no longer match; needs parser update", "nextFetchAt": "2026-04-27T10:57:22.432Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "gw-program-extremism": { "provider": "George Washington University - Program on Extremism", @@ -40358,36 +40361,36 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T19:34:50.373Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "nsa-cybersecurity-news": { "provider": "NSA - Cybersecurity Advisories & Guidance", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "rand-terrorism-topic": { "provider": "RAND - Terrorism Topic Updates", @@ -40441,36 +40444,36 @@ "quarantinedAt": "2026-04-18T03:42:22.439Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "rewards-for-justice": { "provider": "U.S. Department of State - Rewards for Justice", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "start-baad-database": { "provider": "National Consortium for the Study of Terrorism (START) - BAAD Database", @@ -40524,7 +40527,7 @@ "quarantinedAt": "2026-04-18T03:42:22.439Z", "quarantineReason": "Persistent network failures — DNS/connection issues; infrastructure may be down", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "start-center-publications": { "provider": "START Center (UMD) - News & Publications", @@ -40578,65 +40581,65 @@ "quarantinedAt": "2026-04-18T03:42:22.439Z", "quarantineReason": "Persistent network failures — DNS/connection issues; infrastructure may be down", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "state-dept-terrorism": { "provider": "US State Department - Bureau of Counterterrorism", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "cisa-cybersecurity-advisories": { "provider": "CISA - Cybersecurity Alerts & Advisories", "lane": "oversight", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 13, - "emptyRuns": 90, + "emptyRuns": 91, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 89, + "consecutiveEmptyRuns": 90, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": "2026-04-17T14:10:24.787Z", "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "us-house-homeland-security": { "provider": "US House Committee on Homeland Security - News", @@ -40690,25 +40693,25 @@ "quarantinedAt": "2026-04-17T22:12:37.099Z", "quarantineReason": "Anti-bot protection active — consider Playwright fallback or new endpoint", "nextFetchAt": "2026-04-26T15:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "us-treasury-ofac-press-releases": { "provider": "U.S. Treasury (OFAC) - Press Releases", "lane": "sanctions", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 93, + "emptyRuns": 94, "failedRuns": 1, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 93, + "consecutiveEmptyRuns": 94, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": "2026-04-16T15:11:26.228Z", - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [ @@ -40718,43 +40721,43 @@ "at": "2026-04-16T15:11:26.228Z" } ], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "us-treasury-ofac-recent-actions": { "provider": "U.S. Treasury (OFAC) - Recent Actions", "lane": "sanctions", "kind": "html", - "lastCheckedAt": "2026-04-25T14:31:06.996Z", + "lastCheckedAt": "2026-04-25T16:12:36.088Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 94, + "emptyRuns": 95, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 94, + "consecutiveEmptyRuns": 95, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T14:31:06.996Z", + "lastEmptyAt": "2026-04-25T16:12:36.088Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], - "cooldownUntil": "2026-04-25T15:31:06.996Z", + "cooldownUntil": "2026-04-25T17:12:36.088Z", "autoSkipReason": "health-deprioritised", "healthScore": 0, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:31:06.996Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "nextFetchAt": "2026-04-25T17:12:36.088Z", + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "requested-rss-feed-48d28e8f4091": { "provider": "RSS Feed", @@ -40798,7 +40801,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T18:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "requested-rss-feed-c34c5c93b43b": { "provider": "RSS Feed", @@ -40842,7 +40845,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T18:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "requested-rss-feed-b3c5f204dee8": { "provider": "RSS Feed", @@ -40871,7 +40874,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T23:48:31.947Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "requested-neighbourhood-alerts-feed-8ad5321239de": { "provider": "Neighbourhood Alerts Feed", @@ -40915,7 +40918,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T18:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "requested-rss-feed-364751d1cc8d": { "provider": "RSS Feed", @@ -40944,35 +40947,35 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T23:48:31.947Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "requested-news-national-police-air-service-4c2fff6ba6c7": { "provider": "News | National Police Air Service", "lane": "context", "kind": "html", - "lastCheckedAt": "2026-04-25T15:10:51.097Z", + "lastCheckedAt": "2026-04-25T17:11:37.121Z", "lastBuiltCount": 0, "successfulRuns": 0, - "emptyRuns": 20, + "emptyRuns": 22, "failedRuns": 0, "consecutiveFailures": 0, - "consecutiveEmptyRuns": 20, + "consecutiveEmptyRuns": 22, "consecutiveBlockedFailures": 0, "consecutiveDeadUrlFailures": 0, "consecutiveTimeoutFailures": 0, "lastSuccessfulAt": null, "lastFailureAt": null, - "lastEmptyAt": "2026-04-25T15:10:51.097Z", + "lastEmptyAt": "2026-04-25T17:11:37.121Z", "lastErrorCategory": null, "lastErrorMessage": null, "recentErrors": [], "cooldownUntil": null, "autoSkipReason": null, - "healthScore": 20, + "healthScore": 14, "quarantined": false, "quarantinedAt": null, "quarantineReason": null, - "nextFetchAt": "2026-04-25T15:47:51.097Z" + "nextFetchAt": "2026-04-25T17:48:37.121Z" }, "requested-rss-feed-3f8b8535297b": { "provider": "RSS Feed", @@ -41016,7 +41019,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T18:22:10.638Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" }, "requested-bsc-policing-network-f5c77a83a91e": { "provider": "BSC Policing Network", @@ -41045,7 +41048,7 @@ "quarantinedAt": null, "quarantineReason": null, "nextFetchAt": "2026-04-25T23:48:31.947Z", - "lastDeferredAt": "2026-04-25T15:10:51.097Z" + "lastDeferredAt": "2026-04-25T17:11:37.121Z" } } } diff --git a/source-quarantine.html b/source-quarantine.html index 512fd80b..d2b6d4c4 100644 --- a/source-quarantine.html +++ b/source-quarantine.html @@ -269,13 +269,13 @@