From 327ebc354fd2e43d6745e156ea2453da02ff0466 Mon Sep 17 00:00:00 2001 From: Maurice Date: Sun, 1 Nov 2026 22:51:27 +0100 Subject: [PATCH] fix(push): accept Google's jmt17.google.com push endpoints Chrome on Android increasingly hands out push subscriptions on jmt17.google.com, which the push service allowlist did not know, so turning push on failed with a 400. The host is added as an exact entry, next to the two FCM hosts. Closes #2939 --- .../src/nest/notifications/push/push-subscription.helpers.ts | 2 ++ .../unit/nest/notifications/push-subscriptions.service.test.ts | 3 +++ 2 files changed, 5 insertions(+) diff --git a/server/src/nest/notifications/push/push-subscription.helpers.ts b/server/src/nest/notifications/push/push-subscription.helpers.ts index 62408f5d3..08ab050fc 100644 --- a/server/src/nest/notifications/push/push-subscription.helpers.ts +++ b/server/src/nest/notifications/push/push-subscription.helpers.ts @@ -13,6 +13,8 @@ export const PUSH_SERVICE_HOSTS: readonly string[] = [ // Chrome, Edge on Android, and every Chromium browser that uses Google's push. 'fcm.googleapis.com', 'android.googleapis.com', + // Google's newer push host, which Chrome on Android hands out more and more (#2939). + 'jmt17.google.com', // Firefox (autopush). 'updates.push.services.mozilla.com', 'push.services.mozilla.com', diff --git a/server/tests/unit/nest/notifications/push-subscriptions.service.test.ts b/server/tests/unit/nest/notifications/push-subscriptions.service.test.ts index a15dac669..5226d3fad 100644 --- a/server/tests/unit/nest/notifications/push-subscriptions.service.test.ts +++ b/server/tests/unit/nest/notifications/push-subscriptions.service.test.ts @@ -74,6 +74,7 @@ describe('checkPushEndpoint / checkPushSubscription', () => { for (const endpoint of [ FCM, 'https://android.googleapis.com/gcm/send/x', + 'https://jmt17.google.com/fcm/send/x', 'https://updates.push.services.mozilla.com/wpush/v2/gAAAA', 'https://push.services.mozilla.com/wpush/v1/x', 'https://web.push.apple.com/QGx9', @@ -111,6 +112,8 @@ describe('checkPushEndpoint / checkPushSubscription', () => { 'https://example.com/push', 'https://127.0.0.1/push', 'https://fcm.googleapis.com.evil.test/x', + 'https://jmt17.google.com.evil.test/x', + 'https://google.com/fcm/send/x', 'https://evilnotify.windows.com/x', 'https://.notify.windows.com/x', 'https://push.apple.com/x',