Carillon docs

Troubleshooting

Diagnose missing devices, failed sends, rejected credentials, and missing opens.

Each section starts from what you are seeing rather than from a code. If you already have a code, the error reference and the provider table at the bottom are faster.

My device does not appear

Sent but never received

My credential is rejected

My open rates look wrong

Provider codes, verbatim

Where a provider gives a reason, the trace carries that code. Transient failures are retried while the delivery remains queued and retry attempts remain. Once it is marked failed, no further automatic retry is pending.

CodeMeaningWhat to do
UnregisteredAPNs reports that the token is no longer validNothing. The device returns if the app is reinstalled
BadDeviceTokenApple does not recognise this token for this appCheck the build's environment against the device's
BadEnvironmentKeyTokenSandbox token sent to production, or the reverseOpen the app so it re-registers
DeviceTokenNotForTopicThe token does not belong to the Bundle ID on the credentialFix the Bundle ID on the credential
TopicDisallowedThe App ID is not registered for push notificationsEnable the capability in your Apple developer account
MissingTopicNo app identifier was namedAdd the Bundle ID to the APNs credential
PayloadTooLargeOver Apple's 4096-byte limitShorten the payload; send a resource ID instead of its full contents
InvalidProviderTokenThe .p8, Key ID and Team ID do not agreeRe-check all three, or generate a new key
ExpiredProviderTokenOur signing token was stale when Apple read itNot retried for this error; contact support if it persists
TooManyRequestsApple is throttling this token or topicRetried automatically. Lower delivery_rate if it persists
ShutdownApple closed the connection for routine maintenanceNothing. Retried automatically
UNREGISTEREDFirebase no longer knows this tokenNothing. The device returns if the app is reinstalled
SENDER_ID_MISMATCHThe token belongs to another Firebase projectMatch google-services.json to the service account
QUOTA_EXCEEDEDYour own Firebase project hit its sending quotaRaise it in the Google Cloud console
INVALID_ARGUMENTFirebase refused the message as malformedCheck the token, and that custom data holds only text
THIRD_PARTY_AUTH_ERRORFirebase could not reach Apple with your APNs keyFix the APNs key in the Firebase console
UNAVAILABLEThe provider answered with a failure of its ownNothing. Retried automatically

Carillon error codes

Carillon also records these delivery errors. None of them comes from a provider: each names a send that stopped before, or instead of, Apple or Google answering.

CodeMeaning
NoCredentialThe app has no credential for that provider
NoTeamIdThe APNs credential has no Team ID, and Apple will not accept a notification signed without one
NoTopicNothing named the app this notification was for
CanceledThe campaign was cancelled before this delivery was handed over
NotificationExpiredThe payload's ttl ran out before an attempt could be made, after scheduling, pacing or retries; the provider was not contacted
AbandonedThe delivery stayed queued for 24 hours without ever being handed to a provider and was written off by maintenance. It never reached Apple or Google and can be sent again
OutcomeUnknownAn interrupted send left no confirmed provider outcome; it is not resent

Errors · FAQ · Delivery

Need more help?

You can contact support with the app, campaign or delivery ID and a description of what happened. The support guide lists useful context to include.

On this page