With v29.0.0 push notifications are now asynchronously delivered, with step 1 processing push Tickets to see whether Expo enqueued notifications and step 2 processing push Receipts to see whether Apple or Google successfully received the notification.
The example README code within the Node SDK (https://github.com/expo/exponent-server-sdk-node) imply that the response format for both Tickets and Receipts are the same, namely DeviceNotRegistered | MessageTooBig | MessageRateExceeded | InvalidCredentials.
Are the 4 errors listed above the only 4 possible errors that we can get back? Does each apply to Tickets, Receipts, or both? The reason I ask is because from my own testing, it looks like DeviceNotRegistered and MessageTooBig are ever only returned in Tickets, implying that they’ll never be returned in Receipts (we never get a Receipt ID in that case).
Are there sample Receipt Ids that we can use to test error scenarios? I’m not exactly sure how to trigger MessageRateExceeded, InvalidCredentials, or any other possible errors to ensure that I’m acting on them properly.