diff --git a/server-plugins/notification-resources/src/index.ts b/server-plugins/notification-resources/src/index.ts index 643070dfa6..9145bb9588 100644 --- a/server-plugins/notification-resources/src/index.ts +++ b/server-plugins/notification-resources/src/index.ts @@ -607,6 +607,8 @@ export async function createPushNotification ( } } +const errorMessages = ['expired', 'Unregistered', 'No such subscription'] + async function sendPushToSubscription ( control: TriggerControl, targetUser: Ref, @@ -617,9 +619,11 @@ async function sendPushToSubscription ( await webpush.sendNotification(subscription, JSON.stringify(data)) } catch (err) { control.ctx.info('Cannot send push notification to', { user: targetUser, err }) - if (err instanceof WebPushError && err.body.includes('expired')) { - const tx = control.txFactory.createTxRemoveDoc(subscription._class, subscription.space, subscription._id) - await control.apply(control.ctx, [tx]) + if (err instanceof WebPushError) { + if (errorMessages.some((p) => (err as WebPushError).body.includes(p))) { + const tx = control.txFactory.createTxRemoveDoc(subscription._class, subscription.space, subscription._id) + await control.apply(control.ctx, [tx]) + } } } }