If you are not receiving any of the notifications sent from Batch, here are some suggestions to find the issue.
Keep in mind the issue may happen:
At your campaign level
At the integration level
At the device level
1. Send a test notification
Try to send a test notification to your device from the debug tool:
You may notice different issues from the debug tool:
a) I cannot find my install
Make sure you have opened the app once and the version you installed includes Batch's SDK.
b) No token found
The token field is empty. Make sure the install date you see in the debug tool makes sense and check if notifications are turned on for the app you are testing. Go to iOS' settings → "Your app name" → Notifications to ensure notifications are enabled for your app.
You will need to restart your app after enabling push notifications.
c) App opened in the foreground
If you find a recent install with a push token in the debug tool, make sure your app is not opened in the foreground during your tests. By default, iOS only displays notifications for apps opened in the background.
🚧 Note: If you need to be able to display notifications in the foreground, follow the steps described in that article.
d) "BadDeviceToken" error
BadDeviceToken errors can happen for two reasons:
Invalid token: The token you are targeting is not valid anymore, probably because you have recently reinstalled the app. You will need to update it from the debug tool by clicking the "save as a test device" button.
Wrong environment: If your device token is valid, ensure you have chosen the right environment (sandbox/production) from Batch settings for your saved token (Settings → Push settings).
e) "DeviceTokenNotForTopic" error
Your app's bundle ID and .p12 certificate's bundle ID don't match.
You will need to generate a new .p12 certificate or, in case you are using a .p8 file, double-check the appID/bundleID you are using on Batch's dashboard (Settings → Push Settings).
2. Network issues
Connect your device to a 3G/4G network or try to disconnect/reconnect to your WiFi network.
3. Campaign Targeting
If notifications are enabled and your device can receive test push notifications, double-check the targeting of your campaign:
Ensure it matches the information you see from the debug tool (Dashboard Settings → Debug).
In case you are using Batch's Transactional API with raw tokens, ensure you are targeting the right environment (e.g. {"sandbox":true}).
4. Campaign Scheduling
See if you scheduled your campaign based on local time or global time (UTC):
The Local Time option lets you send a push notification that will be received at the same hour in every country. For example, if your push campaign is scheduled to be sent on Friday, July 19th at 6 PM, your Canadian, Italian and Chinese users will receive it on Friday, July 19th when it's 6 PM in their country.
The Global Time (UTC) option allows you to send a push notification to your users at a specific UTC time regardless of their location. If your push campaign is scheduled to be sent on Friday, July 19th at 6 PM global time (UTC), your users will receive it:
At 2 PM in Canada (UTC -4)
At 8 PM in Italy (UTC +2)
At 2 AM on July 20th in China (UTC +8)