Pushes can fail for various reasons- the token might have expired or the push message was too large for Push service to process etc. Here are the most frequently occurring errors and their reasons.
There are few errors which are generated by our internal system and are applicable to pushes sent to all the platforms.
Personalization Failed: Occurs when Push Personalization fails and No Fallback message was set. System won't send the notification to the user and in turn generates an error - Personalization Failed.
Removed due to Minimum Delay: Occurs when notifications were not sent to few devices because they were breaching minimum delay settings for Push Notifications. Marketers can use Ignore Minimum Delay setting in campaign to avoid this failure.
Then there are platform specific errors as mentioned below.
Android includes both the errors for GCM/FCM & Baidu Push.
|Invalid Registration||If you are handling GCM yourself, you may have passed an Invalid token|
|Not Registered||An existing registration token may cease to be valid in a number of scenarios, including:
If the registration token expires (for example, Google might decide to refresh registration tokens, or the APNS token has expired for iOS devices). If the client app is updated but the new version is not configured to receive messages.
|Google Authentication Error (GAE)||Check sender ID on MoEngage dashboard. If you are handling push yourself, you have sent the wrong token to MoEngage. Read this FAQ doc.|
|Mismatch Sender Id||The GCM/FCM Server Key provided to MoEngage & the one with which the token was registered do not match. Update the Android Server Key saved with MoEngage at MoEngage Dashboard > Channel > Push > Mobile Push|
|Invalid JSON||Check that the JSON message is properly formatted and contains valid fields in the Name Value pairs you are passing|
|Message Too Big||Check that the total size of the payload data included in a message does not exceed GCM limits: 4096 bytes. You may need to reduce the number of Name Value pairs you are passing|
|Invalid DataKey||Check that the name value pairs you provided data do not contain a key (such as from, or gcm, or any value prefixed by google) that is used internally by GCM. Note that some words (such as collapse_key) are also used by GCM but are allowed in the payload, in which case the payload value will be overridden by the GCM value.|
|Device Message Rate Exceeded||The rate of messages to a particular user is too high.|
|Push Amp+ targets were invalid||
The Push Amp+ tokens are not valid or not found at the time of sending the notifications.
For the next run, we update these tokens with the new valid ones sent to us in the callbacks or remove them from our system.
|Processing error||There was an issue at APNS’s end|
|Others||Usually a network outage between MoEngage & APNS|
|Invalid token||The token for the users has expired|
|Invalid payload size||Check that the total size of the payload data included in a message does not exceed APNS limits: 4096 bytes. You may need to reduce the number of key-value pairs you are passing|
|Invalid token size||The token provided to MoEngage was not correct|
|BadCollapseId||The collapse identifier exceeds the maximum allowed size|
|BadDeviceToken||The specified device token was bad. Verify that the request contains a valid token and that the token matches the environment|
|BadExpirationDate||The apns-expiration value is bad|
|BadMessageId||The apns-id value is bad|
|BadPriority||The apns-priority value is bad|
|BadTopic||The apns-topic was invalid|
|DeviceTokenNotForTopic||The device token does not match the specified topic|
|DuplicateHeaders||One or more headers were repeated|
|IdleTimeout||Idle time out|
|MissingDeviceToken||The device token is not specified in the request :path. Verify that the :path header contains the device token|
|MissingTopic||The apns-topic header of the request was not specified and was required. The apns-topic header is mandatory when the client is connected using a certificate that supports multiple topics|
|PayloadEmpty||The message payload was empty|
|TopicDisallowed||Pushing to this topic is not allowed|
|BadCertificate||The certificate was bad|
|BadCertificateEnvironment||The client certificate was for the wrong environment|
|ExpiredProviderToken||The provider token is stale and a new token should be generated|
|Forbidden||The specified action is not allowed|
|InvalidProviderToken||The provider token is not valid or the token signature could not be verified|
|MissingProviderToken||No provider certificate was used to connect to APNs and Authorization header was missing or no provider token was specified|
|BadPath||The request contained a bad :path value|
|MethodNotAllowed||The specified :method was not POST|
|Unregistered||The device token is inactive for the specified topic.Expected HTTP/2 status code is 410; see Table 8-6|
|PayloadTooLarge||The message payload was too large. See The Remote Notification Payload for details on maximum payload size|
|TooManyProviderTokenUpdates||The provider token is being updated too often|
|TooManyRequests||Too many requests were made consecutively to the same device token|
|InternalServerError||An internal server error occurred|
|ServiceUnavailable||The service is unavailable|
|Shutdown||The server is shutting down|
|Delivered, Device Offline||The Notification was delivered to WPS, but the user was offline. The push may be delivered later.|
|Delivered, Temp Lost Connection to WNS||The Notification was delivered to WPS, but the user is currently not connected to WPS. The push may be delivered later.|
|WPS Queue Full For User||The Notification was delivered to WPS, but the users has 30 Previous undelivered due to which this notification was dropped|
|Delivered, Suppressed||The Notification was delivered to WPS, but was suppressed by WPS|
|Dropped||The notification was explicitly dropped because of an error. Check your Name Value pairs|
|Rate Limit Exceeded||You have probably created too many campaigns at once due to which MoEngage has reached WPS’s Throttle limit.|
|Bad Request||There was either an issue at MoEngage’s end or the content of your Push, check your Name Value pairs.|
|Unauthorised||MoEngage is not authorised to send pushes on your behalf|
|Forbidden||MoEngage is not authorised to send pushes on your behalf. The access token provided in the request does not match the credentials of the app.|
|Invalid Token||The token provided is invalid|
|Invalid Request||There was an issue at MoEngage’s end, please contact the success team.|
|Throttling Limit Exceeded||You have exceeded WPS’s throttle limit.|
|Token Expired||The Device Token has expired.|
|Device Disconnected||The device is not connected to WPS|
|Request Too Large||The notification payload exceeds the 5000 byte size limit. Check your Name Value Pairs|
|Internal Server Error||An internal failure at WPS caused notification delivery to fail.|
|WPS Service Unavailable||The WPS service is currently unavailable|