diff --git a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/subscriptions/impl/SubscriptionManager.kt b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/subscriptions/impl/SubscriptionManager.kt index 57bc9f175b..ee869cafb2 100644 --- a/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/subscriptions/impl/SubscriptionManager.kt +++ b/OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/subscriptions/impl/SubscriptionManager.kt @@ -190,6 +190,14 @@ internal class SubscriptionManager( model: SubscriptionModel, tag: String, ) { + // Do not remove the push subscription: we need to keep the existing push subscription and its observers + // This push subscription will immediately be replaced by the new one in the [onModelAdded] event + // The [onModelRemoved] event for a push subscription model should always be followed by a [onModelAdded] + // event with a new push subscription model. On 404s, no push subscription models are removed. + if (model.type == SubscriptionType.PUSH) { + return + } + val subscription = subscriptions.collection.firstOrNull { it.id == model.id } if (subscription != null) {