You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: External ID and User Tags being cleared/removed automatically #1659
For the past 2 weeks, we have observed a regression where identified users are being reverted to "Anonymous" status. The external_id is removed, and user tags—specifically "County" and "Language"—are being wiped.
This behavior began around mid-April 2026
1 - We suspect the SDK might be misidentifying the custom tag "Language" as the internal system property language. Is v5.5.0 inadvertently syncing custom tags into system property slots and failing to persist them if they don't match the device's locale settings?
2 - Similarly, is there a new internal logic in the User Model that treats "County" as a protected location-based field, causing it to be overwritten by the SDK's auto-detected location data?
3 - Is this a known issue on the 5.5.0 branch? Should we downgrade to 5.2.14 to avoid this new User Model behavior?
4 - Given that this started 2-3 weeks ago (during the April 15th Data Model migration), is the SDK sending an "Anonymous" heartbeat on launch that the backend processes after the login call, effectively wiping the identified session?
Steps to reproduce?
Some of our 2-3 years old subscriptions suddenly becoming anonymous.
What did you expect to happen?
Once I set the external id and the user tags, I expect them to stay there forever unless I manually remove a tag or log the user out.
We are experiencing a very similar issue on iOS using SDK version 5.5.0, and it matches the behavior described here.
In our case:
The app calls OneSignal.login(externalId) correctly
The push subscription is initially created and appears under the correct external_id
Notifications work correctly (foreground, background, and terminated)
After some time (e.g., ~1 hour or after lifecycle changes), the push subscription is no longer associated with that external_id
The subscription either:
becomes attached to an anonymous OneSignal user, or
disappears from the expected user’s subscriptions in the dashboard
Additional observation
We also consistently observe the following pattern:
Same physical device
Same time window
Multiple active push subscriptions
Subscriptions distributed across different OneSignal users (one with external_id, another anonymous)
This appears to be a single underlying identity/subscription association issue, which manifests as:
The active subscription is temporarily linked to the correct user, then later gets detached
The same device ends up with subscriptions spread across multiple OneSignal users
This leads to inconsistent notification delivery when targeting by external_id.
What we verified on our side
We do NOT call OneSignal.logout()
We removed any custom logic using subscription IDs (no active_subscription tag)
We only target users via external_id
We re-link the user on:
app launch
app became active
onPushSubscriptionDidChange
We use manual forwarding with OneSignal_disable_swizzling = true
Questions
1-Is this a known issue in SDK 5.5.0 related to identity reconciliation or subscription association?
2-Is there any scenario where the SDK may overwrite or drop the external_id after login?
Onesignal ids seem to be changing too but it is not the case for every subscription that had lost their external ids.
There is one user that got 11 different onesignal ids in the last 12 days.
Ok, so this is saying the push subscription moved to a new user, as a OneSignal ID uniquely identifies a single user instance from the perspective of a OneSignal, and does not change for a OneSignal user. A new OneSignal ID would mean a new user instance.
When you say one user got 11 different onesignal ids, you mean that a user has logged into a device and hasn't done anything different (no logouts, no other logins to a different user) and the onesignal ID is changing (user instance is changing)? How are you finding this information? Is it reproducible or do you have logs / data that we can look at? Please send any sensitive information to support@onesignal.com and reference this issue.
But overall half of the users that lost their external ids had their onesignal ids changed. The other half's onesignal ids stayed the same.
The half whose onesignal IDs stayed the same, did the same onesignal ID previously have an external_id and now the external_id is gone (as the following example illustrates)? Or do you mean the OneSignal User in the app stayed the same?
// When you View User, you previously see it has an external_id
"identity": {
"external_id": "user1",
"onesignal_id": "1861a7b6-23d3-4751-9454-13889856aae4"
},
// But now the external_id is gone for the same onesignal_id
"identity": {
"onesignal_id": "1861a7b6-23d3-4751-9454-13889856aae4"
},
Hi, we followed up through another channel of conversation, but no SDK changes should affect what you are seeing since 5.2.14 so we would like to figure out what is happening for you app.
Activity
afnanalfazary commentedon May 3, 2026
We are experiencing a very similar issue on iOS using SDK version 5.5.0, and it matches the behavior described here.
In our case:
The app calls OneSignal.login(externalId) correctly
The push subscription is initially created and appears under the correct external_id
Notifications work correctly (foreground, background, and terminated)
After some time (e.g., ~1 hour or after lifecycle changes), the push subscription is no longer associated with that external_id
The subscription either:
becomes attached to an anonymous OneSignal user, or
disappears from the expected user’s subscriptions in the dashboard
Additional observation
We also consistently observe the following pattern:
Same physical device
Same time window
Multiple active push subscriptions
Subscriptions distributed across different OneSignal users (one with external_id, another anonymous)
This appears to be a single underlying identity/subscription association issue, which manifests as:
The active subscription is temporarily linked to the correct user, then later gets detached
The same device ends up with subscriptions spread across multiple OneSignal users
This leads to inconsistent notification delivery when targeting by external_id.
What we verified on our side
We do NOT call OneSignal.logout()
We removed any custom logic using subscription IDs (no active_subscription tag)
We only target users via external_id
We re-link the user on:
app launch
app became active
onPushSubscriptionDidChange
We use manual forwarding with OneSignal_disable_swizzling = true
Questions
1-Is this a known issue in SDK 5.5.0 related to identity reconciliation or subscription association?
2-Is there any scenario where the SDK may overwrite or drop the external_id after login?
marclucraft commentedon May 8, 2026
Hello @afnanalfazary!
Are you using "Country" and/or "Language" as tags, as @bundleberk described in their report, or any other tags that share names with user properties?
Also, is the behaviour still the same after removing the active_subscription tag logic you described?
nan-li commentedon May 8, 2026
Additionally, can you elaborate on this point:
Does the user have the same onesignal_id, but the external_id is gone? Or is the user in the SDK a new user with a new onesignal_id?
bundleberk commentedon May 11, 2026
Onesignal ids seem to be changing too but it is not the case for every subscription that had lost their external ids.
There is one user that got 11 different onesignal ids in the last 12 days.
But overall half of the users that lost their external ids had their onesignal ids changed. The other half's onesignal ids stayed the same.
nan-li commentedon May 12, 2026
Ok, so this is saying the push subscription moved to a new user, as a OneSignal ID uniquely identifies a single user instance from the perspective of a OneSignal, and does not change for a OneSignal user. A new OneSignal ID would mean a new user instance.
When you say one user got 11 different onesignal ids, you mean that a user has logged into a device and hasn't done anything different (no logouts, no other logins to a different user) and the onesignal ID is changing (user instance is changing)? How are you finding this information? Is it reproducible or do you have logs / data that we can look at? Please send any sensitive information to support@onesignal.com and reference this issue.
The half whose onesignal IDs stayed the same, did the same onesignal ID previously have an
external_idand now theexternal_idis gone (as the following example illustrates)? Or do you mean the OneSignal User in the app stayed the same?bundleberk commentedon May 13, 2026
@nan-li is it technically safe to downgrade from 5.5.0 to 5.2.14? would it break anything?
nan-li commentedon May 15, 2026
Hi, we followed up through another channel of conversation, but no SDK changes should affect what you are seeing since 5.2.14 so we would like to figure out what is happening for you app.
bundleberk commentedon Jun 1, 2026
It is unfortunately not reproducible, cannot provide you logs because it seems random
nan-li commentedon Sep 17, 2026
Closing this out as we have been in direct conversation. Upgrading to 5.5.4 appears to fix it