When push notifications sent from OneSignal have a “Delivered” status, it means we have successfully sent the notification to the push services (FCM/APNS/HMS etc.). These push services then distribute the notifications to your users. When viewing the Push message reports in the OneSignal dashboard, you can see how quickly we delivered the notification to these services.

The “Confirmed” stat means our SDK received the notification which should have been shown on the device.

The following are common reasons for push notifications not showing or getting delayed. This guide provides troubleshooting steps to diagnose and resolve the issue.

See Test subscriptions for details on how to find your device and set it as a test subscription.

This will help make sure you are setup correctly and make troubleshooting much easier.


Notification permission

On your device, check your app’s notification settings. Verify that notifications are enabled for your app then open your app. In your OneSignal dashboard Audience > Subscriptions, you should see your push Subscription has a “Subscribed” push status.


Sending push


Network connection

Devices must be online to receive push notifications. If your device is turned off, in airplane mode, has unstable or no internet connection, the push will not show until a proper connection is made. See Time To Live (TTL) Parameter for details.


Device options


Code blocking, preventing, removing notifications


Android specific issues

Each Android manufacturer creates their own flavor of Android for their devices. Sometimes this can cause different experiences with push notifications across different devices.


Testing

Follow Getting a Debug Log to add our verbose debugging methods to the app.

Have the app running in the background and send yourself a message.

If you are not getting the message event, contact support@onesignal.com with the following information:

1

The full log from the test. See Getting a Debug Log for details.

2

The link to the message report in your onesignal.com dashboard that you sent when debugging. This can be found in Delivery > Sent Messages. Just click the message you sent, then copy-paste the URL and share that with us.

Checking your app state

1

Run the following to check the current state of your app. Replace “com.company.appname” with your package name.

adb shell dumpsys package com.company.appname | grep stopped

If you see stopped=false if everything is fine, otherwise you will see stopped=true then your app was force killed in some way.

2

Another way is to send a few notifications and check for the following GCM logcat entry.

W/GCM-DMM: broadcast intent callback: result=CANCELLED forIntent {
   act=com.google.android.c2dm.intent.RECEIVE pkg=com.onesignal.example (has extras)
}

If you seen this cancelled intent above then your app could not be started to process the notification.

Some device manufactures will white list apps from going into the force closed state. Example such as Gmail and Whatsapp.

Additional Debugging

FCM provides a REST API to query the last time a device has been connected to FCM. See the following Google documentation on how to get this. https://developers.google.com/instance-id/reference/server#get_information_about_app_instances