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/Alternative errors | Description |
---|---|
MOE_PFR 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 | User is removed from receiving the notification due to the campaign minimum delay. |
Not sent due to campaign level min delay |
User is removed from receiving the notification due to the campaign minimum delay. |
Rejected because of DND |
The campaign is rejected because of the DND set in the campaign. |
Timer Duration Exceeded Limit |
When the Timer template duration exceeds more than 12 hours. |
Removal of duplicate tokens |
Removal of duplicate tokens. |
Timer Duration Less Than 15 Minutes |
When the Timer template duration is less than 15 mins. |
Users removed due to Global Control Group |
Users were removed due to Global Control Group. |
Users removed due to Campaign Control Group |
Users were removed due to the Campaign Control Group. |
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 - Firebase Cloud Messaging(FCM) and Huawei Messaging Service (HMS) Errors
Error/Alternative Errors | Description |
---|---|
Invalid Registration Also known as:
|
If you are handling the registration of FCM Push tokens yourself, you may have passed on an invalid token. Please check your token registration setup. |
Not Registered
Also known as:
|
An existing registration token may cease to be valid in a number of scenarios, including:
|
FCM Message rate exceeded Also known as:
|
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, reduce request limits in the campaign delivery control or request FCM to increase the allowed rate. |
FirebaseCloudMessaging Also known as:
|
FCM Project in use does not have Cloud messaging access. You may need to enable Firebase Cloud Messaging separate from Firebase Cloud Services in FCM Console. |
Mismatch Sender Id Also known as:
|
The Sender ID provided to MoEngage & the one with which the token was registered do not match. |
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 Also known as:
|
Message payload size limit exceeded. You may need to reduce the number of K-V Pairs you have added. |
Invalid FCM Auth Key Also known as:
|
The Authentication Key uploaded for FCM is invalid/expired. Please check your FCM Auth key setup. |
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. |
Sender temporarily unavailable Also known as:
|
There was an internal error in the Sender server while trying to process the request, or the server is temporarily unavailable. |
Response Decode Error |
Unable to parse FCM response due to unknown JSON format. |
HMS Message too big Also known as:
|
Message payload size limit exceeded for HMS. You may need to reduce the number of K-V Pairs you have added. |
FCM Insufficient Permission Also known as:
|
FCM Private key generated does not have permission for creating cloud messaging. Please upload Auth key with Permission to create cloud messaging. |
iOS - Apple Push Notification Service Errors
Error/Alternative Error | Description |
---|---|
Others | Usually, there is a network outage between MoEngage and APNS. |
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. |
APNS Provider Certificate Expired | The APNS provider certificate uploaded to the MoEngage Dashboard has expired. Please upload a new provider certificate or switch to the APNS Authentication Key method (recommended). |
APNs Client Connection Failed | Failed to establish a connection with APNS temporarily. |
BadExpirationDate | The APNS-expiration value is incorrect. |
Device Token Not For Topic Also known as:
|
The APNS Bundle ID provided to MoEngage and the one with which the token was registered does not match. |
Invalid Provider Token Also known as:
|
The APNS Authentication key or Provider token provided is invalid, or the token signature cannot be verified. Please update the APNS configuration in the Push settings. |
MissingDeviceToken |
The device token is not specified in the request: path. Verify that the: path header contains the device token. |
TopicDisallowed |
Pushing to this topic is not allowed. |
Authorization Error Also known as:
|
The Authentication Key for APNS or Web Push is invalid/expired. Please check your push Authorization setup. |
Unregistered |
An existing registration token may cease to be valid in a number of scenarios, including:
|
PayloadTooLarge |
Message payload size limit exceeded. You may need to reduce the number of K-V Pairs you have added. |
TooManyProviderTokenUpdates |
The provider token is being updated too often. |
Sender temporarily unavailable Also known as:
|
There was an internal error in the Sender server while trying to process the request, or the server is temporarily unavailable. |
ServiceUnavailable |
The service is unavailable. |