Push Notification sending 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. The system will not send the notification to the user and will generate the Personalization Failed error.|
|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 the campaign to avoid this failure.|
|Push Amp+ targets were invalid||
Occurs when the Push Amp+ tokens are not valid or not found while sending the notifications.
When the token is invalid or not found MoEngage cannot reach the users using Push Amp+.
MoEngage sends Android and iOS Notifications via FCM and APNS services respectively. While sending via these services, certain errors will result in sending failure. Here is the list for reference so that you can understand more why some errors occur and plan the fixes.
|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 in 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|