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. |