[Problem/Question]
We are experiencing an issue where some users are not receiving push notifications, and we would like to ask for your support. (The same issue also occurs on iOS)
Issue details
- The issue primarily occurs for first-time app users or users who have reinstalled the app after deleting it.
- It is reproducible with a very high probability, although it occasionally works as expected.
- Even when the push token exists and is successfully matched with the userId, some users do not receive push notifications in certain cases.
- When push notifications are not received, entering the chat room allows normal message sending and receiving.
- However, after leaving the chat room, push notifications are again intermittently not received.
- As a result, when the other party sends a message, the user does not receive any push notifications.
Questions
- Are there any specific cases where Sendbird does not send push notifications?
- Is there anything additional we should check on our side?
[UIKit Version]
- sendbird : 4.22.0
[Reproduction Steps]
- (After reinstalling the app or on a fresh install) Launch the app → Navigate to screen A → Navigate to screen B → Navigate to screen C.
- Below is a summarized version of the code we are currently using.
After saving the push token, we match it with theuserId
, and based on whether the matching succeeds or fails, we proceed with the next operation. -
override fun onNewToken(token: String) { super.onNewToken(token) SendbirdChat.registerPushToken(token) { status, error -> // .. } }
-
override fun sendbirdConnect(phone: String) { SendbirdChat.connect(phone) { sendbirdUser, error -> if (token.isNotNullNorBlank()) { SendbirdChat.registerPushToken(token) { status, error -> error?.let { Timber.e(it) } } } else { FirebaseMessaging.getInstance().token.addOnSuccessListener { item -> SendbirdChat.registerPushToken(item) { status, error -> // ... } } } } }
[Frequency]
- The issue occurs with over 80% probability when following the reproduction steps above.
[Current impact]
- This is occurring in the production app, directly affecting user experience, and is considered a high-priority issue to resolve.