Notification payload is missing in watch since wOS7

There is an issue with our app when showing a dynamic watch notification. Our app would sometimes receive a push notification with extra payload. In wOS6, the notification would be sent to the watch and show a dynamic detailed notification based on the data within the notification. But ever since wOS7, the watch does not show the data that is being sent.

We found out that the UNNotification that is being passed through in WKUserNotificationInterfaceController via. [didReceive:notification:](https://developer.apple.com/documentation/watchkit/wkusernotificationinterfacecontroller/2963125-didreceive) has an empty [userInfo](https://developer.apple.com/documentation/usernotifications/unnotificationcontent/1649869-userinfo).

I was wondering if anyone else have that issue. Or was there a change in wOS7 that prevents the userInfo from being received by the watch? Thanks!


Replies

I confirm we have the same issue, still haven't found any workaround
Can confirm same issue with no great workaround. I started eliminating extra payload key/values and got it to work after removing ones with ISO8601 date strings and empty strings (not null just empty ""). This discovery is still work in progress so I can't say for certain if it was the date or empty strings.

If you have the ability to easily remove/change k/v in your custom payload, I'd suggest doing so to eliminate the offending values. This may not offer a solid workaround since your app could depend on accuracy of those values.
Update. Turns out it was null values in custom payload. Replacing null values with empty strings "" worked for us.
None of the values in my userInfo dictionary are nil, and I'm not getting the extra data. I'm getting content.body, .title, .sound, .badge etc., just nothing in userInfo.

I'm using watchOS 7.0.1 on a Series 4 44mm Watch. I get the same issue on the Simulator in watchOS 7.0.

It's pretty annoying that these notifications worked fine before, and some change Apple has made has changed the behaviour and we haven't been informed.
I'm also seeing an empty userInfo dictionary from a local notification on watchOS. On iOS the userInfo is what it should be but on watchOS it's just [:]. The payload I'm sending is simply ["myKey": 5]. Has anyone found any workarounds for this?
It seems I'm a little late, but has anyone found a reliable solution to this problem? This is still happening on watchOS 7.4.1.