I followed the instructions of provisioning and integration from http://salesforce-marketingcloud.github.io/JB4A-SDK-iOS/ step by step. The app starts on my physical device, throws no exceptions and i can see a new iOS opt in in Marketing Cloud containing the device id and some metadata about the devices.

I've created a list containing the devices for use in Mobile Push to send out a new push notification. So far everything works as expected.

If i create a new push message, click through the steps and finally on schedule, everything looks fine at a first glance - but no notification arrives at the registered devices. To make it worse the devices will be opted out with the status "ServiceFeedback" and the message has status "Error". To re-opt-in the devices, i have to uninstall the app and start over with a fresh install.

The problem here is, that - on the device - no exception happens. Log output shows success and SDK status confirms, that the device is registered with the correct identifiers and IDs.

The Marketing cloud web interface has no option to show logs. At least i couldn't find such an option. So it is impossible to debug this problem for know. The JB4A SDK comes as a compiled library, which makes debugging on library level nearly impossible - and even if it would be possible, there's no way to find out what happens on backend side.

To make it even worse, there's no useful documentation available for trouble shooting. Yet i've no chance to continue this path.

Does anyone had/or have a similar problem and probably a solution for it?

  • Have you checked: salesforce-marketingcloud.github.io/JB4A-SDK-iOS/trouble/…. You will find some useful debugging tips on that page.
    – Bill Mote
    Commented Jun 26, 2017 at 17:23
  • Thanks. As written above, everything i can check and debug on client-side was done. Logging is enabled and SDK state shows no error, but correct IDs and tokens. Also no exception will be raised. Because the devices are not managed and/or with VPN / Network connection created, no ports will be blocked. On client side no error or exception happens. The device are also correctly opted in Marketing Cloud. It fails as soon as a message was created and scheduled - regardless, if immediate or scheduled send was configured. Commented Jun 27, 2017 at 16:37
  • I'm having the exact same problem with both iOS and Android. For Android device won't opt out but still see error
    – Frank Tian
    Commented Nov 24, 2017 at 20:20

2 Answers 2


Please verify what kind of push certificate you are using and that is set in the Marketing Cloud App Center. If you are debugging, you MUST use an "Apple Push Notification service SSL (Sandbox)" certificate. If running an ad-hoc build, iTunes release or other distribution builds, you should use a "Apple Push Notification service SSL (Sandbox & Production)" certificate.

  • Certificates were created and configured correctly. As written in my initial post, these steps were checked and they are correct. Commented Jun 27, 2017 at 16:34

The solution is pretty simple:

  • Even if the App Center App was created as a production app, which was necessary in this case to link the app to the production instance of SFMC, you must choose the Sandbox Push Certificate.

If you do it, it should work.

Meaningful error messages or access to a error log would make it easier to understand the reasons for problems.

In this case there are two massively confusing parts:

  1. The client does not show exceptions or suspicious SFMC responses
  2. Error messages in SFMC are pointless and do not help

SF should hurry to improve exception handling and error reporting to make it easier for developers to analyze problems.

Hope it helps. Would love get some feedback.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .