Коды ошибок для условий отказа FCM.
Код ошибки | Описание и шаги решения |
---|---|
UNSPECIFIED_ERROR Дополнительной информации об этой ошибке нет. | Никто. |
INVALID_ARGUMENT (код ошибки HTTP = 400) Параметры запроса недействительны. Расширение типа google.rpc.BadRequest возвращается, чтобы указать, какое поле было недействительным. | Возможные причины: неверная регистрация, недопустимое имя пакета, слишком большое сообщение, неверный ключ данных, неверный срок жизни или другие недопустимые параметры. Неверная регистрация : проверьте формат регистрационного токена, который вы передаете на сервер. Убедитесь, что он соответствует регистрационному токену, который клиентское приложение получает при регистрации в FCM. Не обрезайте токен и не добавляйте дополнительные символы. Недопустимое имя пакета . Убедитесь, что сообщение было адресовано регистрационному токену, имя пакета которого соответствует значению, переданному в запросе. Сообщение слишком большое : убедитесь, что общий размер полезных данных, включенных в сообщение, не превышает ограничения FCM: 4096 байт для большинства сообщений или 2048 байт в случае сообщений в темах. Сюда входят как ключи, так и значения. Неверный ключ данных . Убедитесь, что полезные данные не содержат ключ (например, from, gcm или любое значение с префиксом Google), который используется внутри FCM. Обратите внимание, что некоторые слова (например, свернуть_ключ) также используются FCM, но разрешены в полезных данных, и в этом случае значение полезных данных будет переопределено значением FCM. Неверный срок жизни : убедитесь, что значение, используемое в сроке жизни, является целым числом, представляющим продолжительность в секундах от 0 до 2 419 200 (4 недели). Недопустимые параметры . Убедитесь, что предоставленные параметры имеют правильное имя и тип. |
UNREGISTERED (код ошибки HTTP = 404). Экземпляр приложения не зарегистрирован в FCM. Обычно это означает, что используемый токен больше не действителен и необходимо использовать новый. | Эта ошибка может быть вызвана отсутствием токенов регистрации или незарегистрированными токенами. Отсутствует регистрация . Если целью сообщения является значение token , убедитесь, что запрос содержит токен регистрации.Не зарегистрировано : существующий регистрационный токен может перестать быть действительным в ряде сценариев, в том числе: - Если клиентское приложение отменяет регистрацию в FCM. - Если регистрация клиентского приложения автоматически отменяется, что может произойти, если пользователь удалит приложение. Например, в iOS, если служба обратной связи APNs сообщила, что токен APNs недействителен. - Если срок действия токена регистрации истек (например, Google может принять решение обновить токены регистрации или срок действия токена APNs истек для устройств iOS). - Если клиентское приложение обновлено, но новая версия не настроена на получение сообщений. Во всех этих случаях удалите этот регистрационный токен с сервера приложений и прекратите использовать его для отправки сообщений. |
SENDER_ID_MISMATCH (код ошибки HTTP = 403) Идентификатор проверенного отправителя отличается от идентификатора отправителя для токена регистрации. | Регистрационный токен привязан к определенной группе отправителей. Когда клиентское приложение регистрируется в FCM, оно должно указать, каким отправителям разрешено отправлять сообщения. Вам следует использовать один из этих идентификаторов отправителя при отправке сообщений в клиентское приложение. Если вы переключитесь на другого отправителя, существующие регистрационные токены не будут работать. |
QUOTA_EXCEEDED (код ошибки HTTP = 429) Превышен лимит отправки для целевого сообщения. Расширение типа google.rpc.QuotaFailure возвращается, чтобы указать, какая квота была превышена. | Эта ошибка может быть вызвана превышением квоты скорости сообщения, превышением квоты скорости сообщения устройства или превышением квоты скорости сообщения темы. Превышена скорость передачи сообщений : Скорость отправки сообщений слишком высока. Вы должны снизить общую скорость отправки сообщений. Используйте экспоненциальную отсрочку с минимальной начальной задержкой в 1 минуту для повторной попытки отклоненных сообщений. Превышена частота сообщений устройства : Скорость сообщений на конкретное устройство слишком высока. См. ограничение скорости передачи сообщений для одного устройства . Уменьшите количество сообщений, отправляемых на это устройство, и используйте экспоненциальную отсрочку для повторной отправки. Превышена частота сообщений по теме : Частота сообщений подписчикам по определенной теме слишком высока. Уменьшите количество сообщений, отправляемых по этой теме, и используйте экспоненциальную задержку с минимальной начальной задержкой в 1 минуту для повторной отправки. |
UNAVAILABLE (код ошибки HTTP = 503) Сервер перегружен. | Сервер не смог вовремя обработать запрос. Повторите тот же запрос, но необходимо: — Учитывайте заголовок Retry-After, если он включен в ответ сервера соединений FCM. - Внедрите экспоненциальную отсрочку в механизме повторных попыток. (например, если вы подождали одну секунду перед первой повторной попыткой, подождите не менее двух секунд перед следующей, затем 4 секунды и так далее). Если вы отправляете несколько сообщений, рассмотрите возможность применения дрожания. Дополнительные сведения см. в разделе Обработка повторных попыток . Отправители, вызывающие проблемы, рискуют попасть в список запрещенных. |
INTERNAL (код ошибки HTTP = 500) Произошла неизвестная внутренняя ошибка. | Сервер обнаружил ошибку при попытке обработать запрос. Вы можете повторить тот же запрос, следуя рекомендациям в разделе «Обработка повторных попыток» . Если ошибка не исчезнет, обратитесь в службу поддержки Firebase. |
THIRD_PARTY_AUTH_ERROR (код ошибки HTTP = 401) Сертификат APN или ключ аутентификации через веб-приложение недействительны или отсутствуют. | Не удалось отправить сообщение, предназначенное для устройства iOS, или веб-приложение. Проверьте действительность своих учетных данных для разработки и производства. |