ErrorCode

Códigos de error de condiciones de falla de FCM

Código de error Descripción y pasos de resolución
UNSPECIFIED_ERROR No hay más información disponible sobre este error. Ninguno
INVALID_ARGUMENT (código de error HTTP = 400). Los parámetros de la solicitud no son válidos. Se muestra una extensión de tipo google.rpc.BadRequest para especificar qué campo no es válido. Las causas posibles incluyen un registro no válido, un nombre de paquete no válido, el mensaje demasiado grande, una clave de datos no válida, un TTL no válido o cualquier otro parámetro no válido.
Registro no válido: Verifica el formato del token de registro que pasaste al servidor. Asegúrate de que coincida con el token de registro que la app cliente recibe cuando se registra en FCM. No trunques el token ni agregues caracteres adicionales.
Nombre del paquete no válido: Asegúrate de que el mensaje se haya dirigido a un token de registro cuyo nombre de paquete coincida con el valor que se pasó en la solicitud.
Mensaje demasiado grande: Verifica que el tamaño total de los datos de la carga útil incluidos en un mensaje no supere los límites de FCM: 4,096 bytes para la mayoría de los mensajes o 2,048 bytes en el caso de mensajes a temas. Esto incluye las claves y los valores.
Clave de datos no válida: Verifica que los datos de la carga útil no contengan una clave (como from, gcm o ningún valor con prefijo de Google) que se utiliza internamente en FCM. Ten en cuenta que FCM también usa algunas palabras (como Collaps_key), pero se permiten en la carga útil, en cuyo caso el valor de la carga útil será anulado por el valor de FCM.
TTL no válido: Verifica que el valor que se usa en ttl sea un número entero que represente la duración en segundos entre 0 y 2,419,200 (4 semanas).
Parámetros no válidos: Verifica que los parámetros proporcionados tengan el nombre y el tipo correctos.
UNREGISTERED (código de error HTTP = 404). Se canceló el registro de la instancia de app en FCM. Por lo general, esto significa que el token utilizado ya no es válido y se debe utilizar uno nuevo. Este error puede deberse a tokens de registro faltantes o tokens no registrados.
Falta un registro: Si el destino del mensaje es un valor token, verifica que la solicitud contenga un token de registro.
No registrado: Un token de registro existente puede dejar de ser válido en diversas situaciones, como las siguientes:
- Si la app cliente cancela su registro en FCM.
: Si se cancela el registro de la app cliente automáticamente, que puede ocurrir si el usuario desinstala la aplicación. Por ejemplo, en iOS, si el servicio de comentarios de APNS informó que el token de APNS no es válido.
- Si el token de registro vence (por ejemplo, porque Google decidió actualizar los tokens de registro o porque venció el token de APNS para los dispositivos iOS)
Si se actualiza la app cliente, pero la versión nueva no está configurada para recibir mensajes.
En todos estos casos, quita este token de registro del servidor de apps y deja de usarlo para enviar mensajes.
SENDER_ID_MISMATCH (código de error de HTTP = 403). El ID de remitente autenticado es diferente del ID de remitente del token de registro. Un token de registro está asociado con un determinado grupo de emisores. Cuando una app cliente se registra en FCM, debe especificar qué remitentes tienen permiso para enviar mensajes. Debes utilizar el ID de uno de esos remitentes cuando envíes mensajes a la app cliente. Si cambias a otro remitente, los tokens de registro existentes no funcionarán.
QUOTA_EXCEEDED (código de error de HTTP = 429). Se superó el límite de envío del destino del mensaje. Se muestra una extensión de tipo google.rpc.QuotaFailure para especificar qué cuota se superó. Este error puede deberse a que se superó la cuota de frecuencia de mensajes, se superó la cuota de frecuencia de mensajes por dispositivo o se superó la cuota de frecuencia de mensajes por temas.
Se superó la tasa de mensajes: La tasa de envío de mensajes es demasiado alta. Debes reducir la velocidad general a la que envías mensajes. Usa la retirada exponencial con un retraso inicial mínimo de 1 minuto para reintentar los mensajes rechazados.
Se superó la tasa de mensajes del dispositivo: La tasa de mensajes a un dispositivo específico es demasiado alta. Consulta el límite de frecuencia de mensajes a un solo dispositivo. Reduce la cantidad de mensajes que se envían a este dispositivo y usa la retirada exponencial para volver a intentar el envío.
Se superó la tasa de mensajes por temas: La tasa de mensajes a suscriptores de un tema específico es demasiado alta. Reduce la cantidad de mensajes enviados a este tema y usa la retirada exponencial con un retraso inicial mínimo de 1 minuto para reintentar el envío.
UNAVAILABLE (código de error de HTTP = 503). El servidor está sobrecargado. El servidor no pudo procesar la solicitud a tiempo. Vuelve a intentar la misma solicitud, pero haz lo siguiente:
- Sigue el encabezado Retry-After si se incluye en la respuesta del servidor de conexiones de FCM.
Implementa la retirada exponencial en tu mecanismo de reintento. (p.ej., si esperaste un segundo antes del primer reintento, espera al menos dos segundos antes del próximo, luego, 4 segundos y así sucesivamente). Si envías varios mensajes, considera aplicar el jitter. Para obtener más información, consulta Maneja los reintentos. Los remitentes que causen problemas corren el riesgo de que se incluyan en la lista de bloqueo.
INTERNAL (código de error de HTTP = 500). Se produjo un error interno desconocido. Se produjo un error en el servidor mientras se intentaba procesar la solicitud. Puedes volver a intentar la misma solicitud con las sugerencias que se indican en Cómo controlar los reintentos. Si el error persiste, comunícate con el equipo de asistencia de Firebase.
THIRD_PARTY_AUTH_ERROR (código de error HTTP = 401) El certificado APNS o la clave de autenticación push web no era válido o faltaba. No se pudo enviar un mensaje destinado a un dispositivo iOS o un registro push web. Verifica la validez de tus credenciales de desarrollo y producción.