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
Issue when App opens through Push Notification(Cold Start) #873
We are facing an issue with deep linking on Android.
When sending a push with Additional Data (e.g., playback_data), the data is not available in the Android Intent when the app is opened from a notification (cold start).
Observations:
getStringExtra("custom") > null
Dumping all extras shows no payload data
Impact:
This prevents deep link handling on Android without using Launch URL, which creates issues on iOS (browser opening).
Request:
Is this expected behavior on Android?
How can we reliably access Additional Data on notification click (cold start)?
Is there a recommended approach for deep linking without relying on Launch URL?
It looks like there's a bug on the Android side where a click that cold-started the app could be silently dropped if your Clicked handler was subscribed after OneSignal.Initialize(). The Unity bridge attached its native listener before a C# handler existed, so the replayed event did nothing.
We've opened #881 so that the native click listener is now registered when you subscribe to Clicked. I'll follow up with more details once that's merged and released.
I also wanted to address a few things from your original bug report:
Is there a recommended approach for deep linking without relying on Launch URL?
Yes — the recommended approach is exactly what you're doing: send Additional Data (no Launch URL needed) and perform navigation inside the Clicked handler. That avoids the iOS browser-opening behavior entirely, and once the fix lands it works reliably for cold starts on Android too.
Reading Intent extras is not the supported path in SDK v5.getStringExtra("playback_data") / getStringExtra("custom") was the legacy v3/v4 pattern but in v5 the SDK no longer places the payload on the launch Intent, so those extras will always be null (expected behavior). The supported way to access Additional Data on a notification click is the SDK's click event would be as follows:
OneSignal.Notifications.Clicked+=(sender,e)=>{vardata=e.Notification.AdditionalData;// IDictionary<string, object>if(data!=null&&data.TryGetValue("playback_data",outvarplaybackData)){// navigate / deep link using playbackData}};
Note:JsonUtility.ToJson(e.Notification) will always show AdditionalData as empty because Unity's JsonUtility can't serialize dictionaries. So we recommend inspecting e.Notification.AdditionalData directly (or serialize it with Json.NET / MiniJSON) when debugging.
Hope this helps, please let me know if you have any other questions.
Activity
akashchetu23-arch commentedon Jun 10, 2026
Hi
Any update on this?
fadi-george commentedon Jun 11, 2026
Hey, I'll see if someone can take a look tomorrow.
sherwinski commentedon Jun 12, 2026
Hey there, I'll be looking into this over the next week.
sherwinski commentedon Jul 7, 2026
Hi @akashchetu23-arch, just wanted to follow up here.
It looks like there's a bug on the Android side where a click that cold-started the app could be silently dropped if your
Clickedhandler was subscribed afterOneSignal.Initialize(). The Unity bridge attached its native listener before a C# handler existed, so the replayed event did nothing.We've opened #881 so that the native click listener is now registered when you subscribe to
Clicked. I'll follow up with more details once that's merged and released.sherwinski commentedon Jul 7, 2026
I also wanted to address a few things from your original bug report:
Yes — the recommended approach is exactly what you're doing: send Additional Data (no Launch URL needed) and perform navigation inside the
Clickedhandler. That avoids the iOS browser-opening behavior entirely, and once the fix lands it works reliably for cold starts on Android too.Reading Intent extras is not the supported path in SDK v5.
getStringExtra("playback_data")/getStringExtra("custom")was the legacy v3/v4 pattern but in v5 the SDK no longer places the payload on the launch Intent, so those extras will always be null (expected behavior). The supported way to access Additional Data on a notification click is the SDK's click event would be as follows:Note:
JsonUtility.ToJson(e.Notification)will always showAdditionalDataas empty because Unity'sJsonUtilitycan't serialize dictionaries. So we recommend inspectinge.Notification.AdditionalDatadirectly (or serialize it with Json.NET / MiniJSON) when debugging.Hope this helps, please let me know if you have any other questions.
sherwinski commentedon Jul 10, 2026
We've released a fix for this in v5.3.0 🚀 Please give it a try and let us know if it helps with the issue you're running into.