Push Notifications can fail for various reasons- the token might have expired or the push message may have been too large for the Push service to process, and so on. Here are the most frequently occurring errors and their reasons.
Internal Errors
There are a few errors that are generated by our internal system and are applicable to pushes sent to all the platforms.
Error | Description |
---|---|
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 a 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 Amplification™ Plus targets were invalid |
Occurs when the Push Amplification™ Plus 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 Amplification™ Plus. |
Platform Errors
MoEngage sends Android and iOS Notifications using FCM and APNS services respectively. If errors are encountered while using these services, notifications may not be sent. Here is a list of common errors for reference.
Android - Google Cloud Messaging / Firebase Cloud Messaging Errors
Error | Description |
---|---|
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:
|
FCM Message rate exceeded (May also appear as error starting with "Quotaexceededforquotametric...") |
Sending speed is exceeding the service capacity for your FCM account. Requests beyond serving capacity are rejected to limit the ingress flow rate. This happens because of multiple campaigns being triggered at the same time at high speeds. Consider spacing out campaigns or reducing request limits in the campaign delivery control. To learn more, refer to Changes in Sending Speed with Private Key Configuration |
Google Authentication Error (GAE) | Check the sender ID on the 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 and 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 the data do not contain a key (such as from, 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 Amplification™ Plus targets were invalid |
The Push Amplification™ Plus 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. |
iOS - Apple Push Notification Service Errors
Error String | Description |
---|---|
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 incorrect |
BadMessageId | The apns-id value is incorrect |
BadPriority | The apns-priority value is incorrect |
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. The 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 the 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 |