ErrorCode

Códigos de error para condiciones de falla del 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 eran válidos. Se devuelve una extensión de tipo google.rpc.BadRequest para especificar qué campo no era válido. Las posibles causas incluyen registro no válido, nombre de paquete no válido, mensaje demasiado grande, clave de datos no válida, TTL no válido u otros parámetros no válidos.
Registro no válido : verifique el formato del token de registro que pasa al servidor. Asegúrese de que coincida con el token de registro que recibe la aplicación cliente al registrarse en FCM. No trunca el token ni agrega caracteres adicionales.
Nombre de paquete no válido : asegúrese de que el mensaje se haya dirigido a un token de registro cuyo nombre de paquete coincida con el valor pasado en la solicitud.
Mensaje demasiado grande : compruebe que el tamaño total de los datos de carga útil incluidos en un mensaje no exceda los límites de FCM: 4096 bytes para la mayoría de los mensajes, o 2048 bytes en el caso de mensajes a temas. Esto incluye tanto las claves como los valores.
Clave de datos no válida : compruebe que los datos de la carga útil no contengan una clave (como from, gcm o cualquier valor con el prefijo de google) que FCM utilice internamente. Tenga en cuenta que FCM también utiliza algunas palabras (como colapso_key), pero están permitidas en la carga útil, en cuyo caso el valor de la carga útil será anulado por el valor de FCM.
TTL no válido : compruebe que el valor utilizado en ttl sea un número entero que represente una duración en segundos entre 0 y 2.419.200 (4 semanas).
Parámetros no válidos : compruebe que los parámetros proporcionados tengan el nombre y tipo correctos.
UNREGISTERED (código de error HTTP = 404) La instancia de la aplicación no se registró en FCM. Esto normalmente significa que el token utilizado ya no es válido y se debe utilizar uno nuevo. Este error puede deberse a que faltan tokens de registro o a tokens no registrados.
Registro faltante : si el destino del mensaje es un valor token , verifique que la solicitud contenga un token de registro.
No registrado : un token de registro existente puede dejar de ser válido en varios escenarios, que incluyen:
- Si la aplicación cliente se da de baja de FCM.
- Si la aplicación cliente se cancela automáticamente, lo que puede suceder si el usuario desinstala la aplicación. Por ejemplo, en iOS, si el servicio de comentarios de APN informa que el token de APN no es válido.
- Si el token de registro caduca (por ejemplo, Google podría decidir actualizar los tokens de registro o el token APN ha caducado para dispositivos iOS).
- Si la aplicación cliente está actualizada pero la nueva versión no está configurada para recibir mensajes.
Para todos estos casos, elimine este token de registro del servidor de aplicaciones y deje de usarlo para enviar mensajes.
SENDER_ID_MISMATCH (código de error HTTP = 403) El ID del remitente autenticado es diferente del ID del remitente del token de registro. Un token de registro está vinculado a un determinado grupo de remitentes. Cuando una aplicación cliente se registra en FCM, debe especificar qué remitentes pueden enviar mensajes. Debe utilizar una de esas ID de remitente al enviar mensajes a la aplicación cliente. Si cambia a un remitente diferente, los tokens de registro existentes no funcionarán.
QUOTA_EXCEEDED (código de error HTTP = 429) Se superó el límite de envío para el destino del mensaje. Se devuelve una extensión de tipo google.rpc.QuotaFailure para especificar qué cuota se superó. Este error puede deberse a que se excedió la cuota de tasa de mensajes, se excedió la cuota de tasa de mensajes del dispositivo o se excedió la cuota de tasa de mensajes de tema.
Tasa de mensajes excedida : la tasa de envío de mensajes es demasiado alta. Debe reducir la velocidad general a la que envía mensajes. Utilice un retroceso exponencial con un retraso inicial mínimo de 1 minuto para reintentar los mensajes rechazados.
Se excedió la tasa de mensajes del dispositivo : la tasa de mensajes a un dispositivo en particular es demasiado alta. Ver límite de velocidad de mensajes a un solo dispositivo . Reduzca la cantidad de mensajes enviados a este dispositivo y utilice un retroceso exponencial para volver a intentar enviarlos.
Tasa de mensajes de tema excedida : la tasa de mensajes a suscriptores de un tema en particular es demasiado alta. Reduzca la cantidad de mensajes enviados para este tema y utilice un retroceso exponencial con un retraso inicial mínimo de 1 minuto para volver a intentar el envío.
UNAVAILABLE (código de error HTTP = 503) El servidor está sobrecargado. El servidor no pudo procesar la solicitud a tiempo. Vuelva a intentar la misma solicitud, pero debe:
- Respete el encabezado Retry-After si está incluido en la respuesta del servidor de conexión FCM.
- Implemente un retroceso exponencial en su mecanismo de reintento. (por ejemplo, si esperó un segundo antes del primer reintento, espere al menos dos segundos antes del siguiente, luego 4 segundos y así sucesivamente). Si envía varios mensajes, considere aplicar jittering. Para obtener más información, consulte Manejo de reintentos . Los remitentes que causan problemas corren el riesgo de ser incluidos en la lista negra.
INTERNAL (código de error HTTP = 500) Se produjo un error interno desconocido. El servidor encontró un error al intentar procesar la solicitud. Puede volver a intentar la misma solicitud siguiendo las sugerencias en Manejo de reintentos . Si el error persiste, comuníquese con el soporte de Firebase.
THIRD_PARTY_AUTH_ERROR (código de error HTTP = 401) El certificado APN o la clave de autenticación de inserción web no eran válidos o faltaban. No se pudo enviar un mensaje dirigido a un dispositivo iOS o un registro push web. Verifique la validez de sus credenciales de desarrollo y producción.