Códigos de erro para condições de falha do FCM.
Código do erro | Etapas de descrição e resolução |
---|---|
UNSPECIFIED_ERROR Não há mais informações disponíveis sobre este erro. |
Nenhuma. |
INVALID_ARGUMENT (código de erro HTTP = 400) Os parâmetros da solicitação eram inválidos. Uma extensão do tipo google.rpc.BadRequest é retornada para especificar qual campo era inválido. |
As possíveis causas incluem registro inválido, nome de pacote inválido, mensagem muito grande, chave de dados inválida, TTL inválido ou outros parâmetros inválidos. Registro inválido: verifique o formato do token de registro transmitido ao servidor. Verifique se ele corresponde ao token de registro que o app cliente recebe ao se registrar no FCM. Não trunca o token nem adicione outros caracteres. Nome de pacote inválido: confira se a mensagem foi endereçada a um token de registro com um nome de pacote igual ao valor transmitido na solicitação. Mensagem muito grande: verifique se o tamanho total dos dados de payload incluídos em uma mensagem não excede os limites do FCM: 4.096 bytes para a maioria das mensagens ou 2.048 bytes no caso de mensagens para tópicos. Inclui as chaves e os valores. Chave de dados inválida: verifique se os dados de payload não contêm uma chave (como "from", "gcm" ou qualquer valor prefixado pelo google) usada internamente pelo FCM. Algumas palavras, como fall_key, também são usadas pelo FCM, mas são permitidas no payload. Nesse caso, o valor do payload será substituído pelo valor do FCM. TTL inválido: verifique se o valor usado em ttl é um número inteiro que representa uma duração em segundos entre 0 e 2.419.200 (4 semanas). Parâmetros inválidos: verifique se os parâmetros fornecidos têm o nome e o tipo corretos. |
UNREGISTERED (código de erro HTTP = 404) A inscrição da instância do app foi cancelada no FCM. Isso geralmente significa que o token usado não é mais válido e precisa usar um novo. |
Esse erro pode ser causado por tokens de registro ausentes ou tokens não registrados. Missing Registration: se o destino da mensagem for um valor token , verifique se a solicitação contém um token de registro.Não registrado: um token de registro atual pode deixar de ser válido em diversas situações, incluindo: - Se o app cliente cancelar o registro com o FCM. - Se o app cliente tiver o registro cancelado automaticamente, o que pode acontecer se o usuário desinstalar o app. Por exemplo, no iOS, se o serviço de feedback do APNs informou o token deles como inválido. - Se o token de registro expirar, por exemplo, se o Google atualizar os tokens de registro, ou o token de APNs expirou para dispositivos iOS. : se o app cliente estiver atualizado, mas a nova versão não estiver configurada para receber mensagens. Para todos esses casos, remova o token de registro do servidor do app e pare de usá-lo para enviar mensagens. |
SENDER_ID_MISMATCH (código de erro HTTP = 403) O ID do remetente autenticado é diferente do ID do remetente do token de registro. |
Um token de registro é vinculado a um determinado grupo de remetentes. Quando um app cliente se registra no FCM, ele precisa especificar os remetentes autorizados a enviar mensagens. Use um desses IDs de remetente ao enviar mensagens para o app cliente. Se você mudar para um remetente diferente, os tokens de registro atuais não vão funcionar. |
QUOTA_EXCEEDED (código de erro HTTP = 429) Limite de envio excedido para o destino da mensagem. Uma extensão do tipo google.rpc.QuotaFailure é retornada para especificar qual cota foi excedida. |
Esse erro pode ser causado por que você excedeu a cota de taxa de mensagens, a cota de taxa de mensagens do dispositivo ou a cota de taxa de mensagens de tópico. Taxa de mensagens excedida: a taxa de envio de mensagens está muito alta. Reduza a taxa geral de envio de mensagens. Use a espera exponencial com um atraso inicial mínimo de um minuto para repetir mensagens rejeitadas. Taxa de mensagens do dispositivo excedida: a taxa de mensagens para um dispositivo específico está muito alta. Consulte o limite de taxa de mensagens para um único dispositivo. Reduza o número de mensagens enviadas a esse dispositivo e use a espera exponencial para tentar enviar novamente. Taxa de mensagens de tópico excedida: a taxa de mensagens para assinantes de um determinado tópico está muito alta. Reduza o número de mensagens enviadas a esse tópico e use a espera exponencial com um atraso inicial mínimo de um minuto para tentar novamente. |
UNAVAILABLE (código do erro HTTP = 503) O servidor está sobrecarregado. |
O servidor não conseguiu processar a solicitação a tempo. Tente fazer a mesma solicitação novamente. Para isso, é necessário: - respeitar o cabeçalho "Retry-After" se ele estiver incluído na resposta do servidor de conexão do FCM; - Implemente a espera exponencial no seu mecanismo de nova tentativa. Por exemplo, se você esperou um segundo antes da primeira nova tentativa, aguarde pelo menos dois segundos antes da próxima, depois 4 segundos e assim por diante. Se você estiver enviando várias mensagens, considere a aplicação de instabilidade. Para mais informações, consulte Como lidar com novas tentativas. Os remetentes que causam problemas podem ser incluídos na lista de bloqueio. |
INTERNAL (código de erro HTTP = 500) Ocorreu um erro interno desconhecido. |
O servidor encontrou um erro enquanto tentava processar a solicitação. Repita a mesma solicitação seguindo as sugestões em Como lidar com novas tentativas. Se o erro persistir, entre em contato com o suporte do Firebase. |
THIRD_PARTY_AUTH_ERROR (código de erro HTTP = 401) O certificado de APNs ou a chave de autenticação de push da Web era inválido ou está ausente. |
Não foi possível enviar uma mensagem segmentada para um dispositivo iOS ou um registro de push da Web. Verifique a validade de suas credenciais de desenvolvimento e produção. |