ErrorCode

Kody błędów dla warunków awarii FCM.

Kod błędu Opis i kroki rozwiązywania
UNSPECIFIED_ERROR Nie ma więcej informacji na temat tego błędu. Nic.
INVALID_ARGUMENT (kod błędu HTTP = 400) Parametry żądania były nieprawidłowe. Zwracane jest rozszerzenie typu google.rpc.BadRequest w celu określenia, które pole jest nieprawidłowe. Potencjalne przyczyny to nieprawidłowa rejestracja, nieprawidłowa nazwa pakietu, zbyt duża wiadomość, nieprawidłowy klucz danych, nieprawidłowy TTL lub inne nieprawidłowe parametry.
Nieprawidłowa rejestracja : Sprawdź format tokena rejestracyjnego przekazywanego do serwera. Upewnij się, że jest zgodny z tokenem rejestracji, który aplikacja kliencka otrzymuje podczas rejestracji w FCM. Nie obcinaj tokena ani nie dodawaj dodatkowych znaków.
Nieprawidłowa nazwa pakietu : Upewnij się, że wiadomość została skierowana do tokena rejestracyjnego, którego nazwa pakietu jest zgodna z wartością przekazaną w żądaniu.
Wiadomość za duża : sprawdź, czy całkowity rozmiar danych zawartych w wiadomości nie przekracza limitów FCM: 4096 bajtów dla większości wiadomości lub 2048 bajtów w przypadku wiadomości do tematów. Dotyczy to zarówno kluczy, jak i wartości.
Nieprawidłowy klucz danych : sprawdź, czy dane ładunku nie zawierają klucza (takiego jak from, gcm lub jakakolwiek wartość poprzedzona przez Google), który jest używany wewnętrznie przez FCM. Należy zauważyć, że niektóre słowa (takie jak klucz_zwijania) są również używane przez FCM, ale są dozwolone w ładunku, w którym to przypadku wartość ładunku zostanie zastąpiona wartością FCM.
Nieprawidłowy TTL : Sprawdź, czy wartość użyta w ttl jest liczbą całkowitą reprezentującą czas trwania w sekundach od 0 do 2 419 200 (4 tygodnie).
Nieprawidłowe parametry : sprawdź, czy podane parametry mają właściwą nazwę i typ.
UNREGISTERED (kod błędu HTTP = 404) Instancja aplikacji została wyrejestrowana z FCM. Zwykle oznacza to, że użyty token nie jest już ważny i należy użyć nowego. Ten błąd może być spowodowany brakiem tokenów rejestracyjnych lub niezarejestrowanymi tokenami.
Brak rejestracji : jeśli celem wiadomości jest wartość token , sprawdź, czy żądanie zawiera token rejestracji.
Niezarejestrowany : istniejący token rejestracyjny może utracić ważność w wielu scenariuszach, w tym:
- Jeśli aplikacja kliencka wyrejestruje się z FCM.
- Jeśli aplikacja kliencka zostanie automatycznie wyrejestrowana, co może się zdarzyć, jeśli użytkownik odinstaluje aplikację. Na przykład w systemie iOS, jeśli usługa opinii APNs zgłosiła, że ​​token APNs jest nieprawidłowy.
- Jeśli token rejestracji wygaśnie (na przykład Google może podjąć decyzję o odświeżeniu tokenów rejestracji lub token APNs wygasł w przypadku urządzeń z systemem iOS).
- Jeśli aplikacja kliencka została zaktualizowana, ale nowa wersja nie jest skonfigurowana do odbierania wiadomości.
We wszystkich tych przypadkach usuń ten token rejestracji z serwera aplikacji i przestań używać go do wysyłania wiadomości.
SENDER_ID_MISMATCH (kod błędu HTTP = 403) Identyfikator uwierzytelnionego nadawcy różni się od identyfikatora nadawcy w tokenie rejestracyjnym. Token rejestracyjny jest powiązany z określoną grupą nadawców. Gdy aplikacja kliencka rejestruje się w FCM, musi określić, którzy nadawcy mogą wysyłać wiadomości. Podczas wysyłania wiadomości do aplikacji klienckiej należy używać jednego z tych identyfikatorów nadawcy. Jeśli zmienisz nadawcę, istniejące tokeny rejestracyjne przestaną działać.
QUOTA_EXCEEDED (kod błędu HTTP = 429) Przekroczono limit wysyłania dla celu wiadomości. Zwracane jest rozszerzenie typu google.rpc.QuotaFailure w celu określenia, który limit został przekroczony. Przyczyną tego błędu może być przekroczenie limitu szybkości wiadomości, przekroczenie limitu szybkości wiadomości na urządzeniu lub przekroczenie limitu szybkości wiadomości tematu.
Przekroczono szybkość wysyłania wiadomości : Szybkość wysyłania wiadomości jest zbyt wysoka. Musisz zmniejszyć ogólną szybkość wysyłania wiadomości. Użyj wykładniczego wycofywania z minimalnym początkowym opóźnieniem wynoszącym 1 minutę, aby ponowić próbę odrzucenia wiadomości.
Przekroczono szybkość wysyłania wiadomości do urządzenia : Szybkość wysyłania wiadomości do określonego urządzenia jest zbyt wysoka. Zobacz limit szybkości przesyłania wiadomości dla jednego urządzenia . Zmniejsz liczbę wiadomości wysyłanych na to urządzenie i użyj wykładniczego wycofywania, aby ponowić próbę wysłania.
Przekroczono częstotliwość wiadomości w temacie : liczba wiadomości do subskrybentów określonego tematu jest zbyt wysoka. Zmniejsz liczbę wiadomości wysyłanych w tym temacie i użyj wykładniczego wycofywania z minimalnym początkowym opóźnieniem wynoszącym 1 minutę, aby ponowić próbę wysłania.
UNAVAILABLE (kod błędu HTTP = 503) Serwer jest przeciążony. Serwer nie mógł przetworzyć żądania na czas. Ponów tę samą prośbę, ale musisz:
- Honoruj ​​nagłówek Retry-After, jeśli jest on zawarty w odpowiedzi z serwera połączeń FCM.
- Zaimplementuj wykładnicze wycofywanie w mechanizmie ponawiania prób. (np. jeśli odczekałeś jedną sekundę przed pierwszą ponowną próbą, odczekaj co najmniej dwie sekundy przed następną, potem 4 sekundy i tak dalej). Jeśli wysyłasz wiele wiadomości, rozważ zastosowanie drgań. Aby uzyskać więcej informacji, zobacz Obsługa ponownych prób . Nadawcy powodujący problemy mogą zostać odrzuceni na liście.
INTERNAL (kod błędu HTTP = 500) Wystąpił nieznany błąd wewnętrzny. Serwer napotkał błąd podczas próby przetworzenia żądania. Możesz ponowić tę samą prośbę, postępując zgodnie z sugestiami w sekcji Obsługa ponownych prób . Jeśli błąd będzie się powtarzał, skontaktuj się z pomocą techniczną Firebase.
THIRD_PARTY_AUTH_ERROR (kod błędu HTTP = 401) Certyfikat APN lub klucz autoryzacji web push jest nieprawidłowy lub go brak. Nie udało się wysłać wiadomości kierowanej na urządzenie z systemem iOS lub rejestracji web push. Sprawdź ważność swoich uprawnień programistycznych i produkcyjnych.