Codes d'erreur pour les conditions de défaillance du FCM.
Code d'erreur | Étapes de description et de résolution |
---|---|
UNSPECIFIED_ERROR Aucune information supplémentaire n'est disponible sur cette erreur. | Aucun. |
INVALID_ARGUMENT (code d'erreur HTTP = 400) Les paramètres de la requête n'étaient pas valides. Une extension de type google.rpc.BadRequest est renvoyée pour spécifier quel champ n'était pas valide. | Les causes potentielles incluent un enregistrement non valide, un nom de package non valide, un message trop volumineux, une clé de données non valide, une durée de vie non valide ou d'autres paramètres non valides. Inscription invalide : Vérifiez le format du jeton d'enregistrement que vous transmettez au serveur. Assurez-vous qu'il correspond au jeton d'enregistrement que l'application client reçoit lors de son inscription auprès de FCM. Ne tronquez pas le jeton et n'ajoutez pas de caractères supplémentaires. Nom de package invalide : assurez-vous que le message a été adressé à un jeton d'enregistrement dont le nom de package correspond à la valeur transmise dans la requête. Message trop gros : Vérifiez que la taille totale des données utiles incluses dans un message ne dépasse pas les limites FCM : 4096 octets pour la plupart des messages, ou 2048 octets dans le cas des messages vers des sujets. Cela inclut à la fois les clés et les valeurs. Clé de données non valide : vérifiez que les données utiles ne contiennent pas de clé (telle que from, ou gcm, ou toute valeur préfixée par google) utilisée en interne par FCM. Notez que certains mots (tels que Colombo_key) sont également utilisés par FCM mais sont autorisés dans la charge utile, auquel cas la valeur de la charge utile sera remplacée par la valeur FCM. TTL invalide : Vérifiez que la valeur utilisée dans ttl est un entier représentant une durée en secondes comprise entre 0 et 2 419 200 (4 semaines). Paramètres invalides : Vérifiez que les paramètres fournis ont le bon nom et le bon type. |
UNREGISTERED (code d'erreur HTTP = 404) L'instance d'application n'a pas été enregistrée auprès de FCM. Cela signifie généralement que le token utilisé n'est plus valide et qu'un nouveau doit être utilisé. | Cette erreur peut être provoquée par des jetons d'enregistrement manquants ou par des jetons non enregistrés. Enregistrement manquant : Si la cible du message est une valeur token , vérifiez que la requête contient un jeton d'enregistrement.Non enregistré : un jeton d'enregistrement existant peut cesser d'être valide dans un certain nombre de scénarios, notamment : - Si l'application client se désinscrit auprès de FCM. - Si l'application client est automatiquement désenregistrée, ce qui peut arriver si l'utilisateur désinstalle l'application. Par exemple, sur iOS, si le service de commentaires APNs a signalé le jeton APNs comme non valide. - Si le jeton d'enregistrement expire (par exemple, Google peut décider d'actualiser les jetons d'enregistrement ou le jeton APNs a expiré pour les appareils iOS). - Si l'application client est mise à jour mais que la nouvelle version n'est pas configurée pour recevoir des messages. Dans tous ces cas, supprimez ce jeton d'enregistrement du serveur d'applications et arrêtez de l'utiliser pour envoyer des messages. |
SENDER_ID_MISMATCH (code d'erreur HTTP = 403) L'ID de l'expéditeur authentifié est différent de l'ID de l'expéditeur du jeton d'enregistrement. | Un jeton d'enregistrement est lié à un certain groupe d'expéditeurs. Lorsqu'une application client s'inscrit à FCM, elle doit spécifier quels expéditeurs sont autorisés à envoyer des messages. Vous devez utiliser l'un de ces identifiants d'expéditeur lors de l'envoi de messages à l'application client. Si vous passez à un autre expéditeur, les jetons d'enregistrement existants ne fonctionneront pas. |
QUOTA_EXCEEDED (code d'erreur HTTP = 429) Limite d'envoi dépassée pour la cible du message. Une extension de type google.rpc.QuotaFailure est renvoyée pour spécifier quel quota a été dépassé. | Cette erreur peut être provoquée par un dépassement du quota de débit de messages, un dépassement du quota de débit de messages de l'appareil ou un dépassement du quota de débit de messages de sujet. Débit de messages dépassé : Le débit d'envoi des messages est trop élevé. Vous devez réduire la vitesse globale à laquelle vous envoyez des messages. Utilisez une interruption exponentielle avec un délai initial minimum de 1 minute pour réessayer les messages rejetés. Débit de messages de l'appareil dépassé : le débit de messages vers un appareil particulier est trop élevé. Voir la limite de débit de messages sur un seul appareil . Réduisez le nombre de messages envoyés à cet appareil et utilisez l'intervalle exponentiel pour réessayer l'envoi. Taux de messages du sujet dépassé : le taux de messages aux abonnés à un sujet particulier est trop élevé. Réduisez le nombre de messages envoyés pour ce sujet et utilisez un intervalle exponentiel avec un délai initial minimum d'une minute pour réessayer l'envoi. |
UNAVAILABLE (code d'erreur HTTP = 503) Le serveur est surchargé. | Le serveur n'a pas pu traiter la demande à temps. Réessayez la même demande, mais vous devez : - Respectez l'en-tête Retry-After s'il est inclus dans la réponse du serveur de connexion FCM. - Implémentez une interruption exponentielle dans votre mécanisme de nouvelle tentative. (par exemple si vous avez attendu une seconde avant la première tentative, attendez au moins deux secondes avant la suivante, puis 4 secondes et ainsi de suite). Si vous envoyez plusieurs messages, pensez à appliquer le jitter. Pour plus d'informations, consultez Gestion des tentatives . Les expéditeurs qui causent des problèmes risquent d’être refusés. |
INTERNAL (code d'erreur HTTP = 500) Une erreur interne inconnue s'est produite. | Le serveur a rencontré une erreur lors de la tentative de traitement de la demande. Vous pouvez réessayer la même demande en suivant les suggestions dans Gestion des tentatives . Si l'erreur persiste, veuillez contacter l'assistance Firebase. |
THIRD_PARTY_AUTH_ERROR (code d'erreur HTTP = 401) Le certificat APN ou la clé d'authentification Web Push était invalide ou manquant. | Un message destiné à un appareil iOS ou une inscription Web Push n'a pas pu être envoyé. Vérifiez la validité de vos références de développement et de production. |