If you are not receiving any of the notifications sent from Batch, here are some suggestions to find the issue:

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.

In some cases Batch cannot collect the advertising ID of your device (IDFA). You will need to use Batch's Installation ID or find your push token from the logs of your app.

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 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 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 6pm, your Canadian, Italian and Chinese users will receive it on Friday, July 19th when it's 6pm 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 6pm global time (UTC), your users will receive it:

  • At 2PM in Canada (UTC -4)
  • At 8PM in Italy (UTC +2)
  • At 2AM on July 20th in China (UTC +8
Did this answer your question?