diff --git a/libs/common/src/platform/server-notifications/internal/default-server-notifications.service.ts b/libs/common/src/platform/server-notifications/internal/default-server-notifications.service.ts index e8ac93dc61f..6d0728ab65d 100644 --- a/libs/common/src/platform/server-notifications/internal/default-server-notifications.service.ts +++ b/libs/common/src/platform/server-notifications/internal/default-server-notifications.service.ts @@ -172,6 +172,7 @@ export class DefaultServerNotificationsService implements ServerNotificationsSer private hasAccessToken$(userId: UserId) { return this.configService.getFeatureFlag$(FeatureFlag.PushNotificationsWhenLocked).pipe( + distinctUntilChanged(), switchMap((featureFlagEnabled) => { if (featureFlagEnabled) { return this.authService.authStatusFor$(userId).pipe( @@ -305,11 +306,23 @@ export class DefaultServerNotificationsService implements ServerNotificationsSer startListening() { return this.notifications$ .pipe( - mergeMap(async ([notification, userId]) => this.processNotification(notification, userId)), + mergeMap(async ([notification, userId]) => { + try { + await this.processNotification(notification, userId); + } catch (err: unknown) { + this.logService.error( + `Problem processing notification of type ${notification.type}`, + err, + ); + } + }), ) .subscribe({ - error: (e: unknown) => - this.logService.warning("Error in server notifications$ observable", e), + error: (err: unknown) => + this.logService.error( + "Fatal error in server notifications$ observable, notifications won't be recieved anymore.", + err, + ), }); }