ErrorCode

FCM の失敗条件のエラーコード。

エラーコード 説明と解決手順
UNSPECIFIED_ERRORこのエラーについて、これ以上の情報はありません。 なし
INVALID_ARGUMENT(HTTP エラーコード = 400)リクエスト パラメータが無効でした。無効なフィールドを示すために、google.rpc.BadRequest タイプの拡張機能が返されます。 原因としては、無効な登録、無効なパッケージ名、メッセージが大きすぎる、無効なデータキー、無効な TTL、その他の無効なパラメータが考えられます。
登録が無効: サーバーに渡す登録トークンの形式を確認してください。登録トークンが、FCM への登録時にクライアント アプリが受信した登録トークンと一致していることを確認します。トークンを切り捨てたり、文字を追加したりしないでください。
無効なパッケージ名: メッセージの宛先が、リクエストで渡された値と一致するパッケージ名を持つ登録トークンであることを確認します。
メッセージが大きすぎる: メッセージに含まれるペイロード データの合計サイズが FCM の上限(ほとんどのメッセージでは 4,096 バイト、トピック メッセージでは 2,048 バイト)を超えていないことを確認します。これにはキーと値の両方が含まれます。
データキーが無効: ペイロード データに、FCM 内部で使用されるキー(from、gcm、または google で始まる値など)が含まれていないことを確認します。一部の単語(折りたたみキーなど)は FCM でも使用されますが、ペイロードでも使用できます。この場合、ペイロードの値は FCM の値によってオーバーライドされます。
TTL が無効: ttl で使用される値が、期間(0 ~ 2,419,200(4 週間)の秒数)を表す整数であることを確認します。
無効なパラメータ: 指定したパラメータの名前と型が正しいことを確認してください。
UNREGISTERED(HTTP エラーコード = 404)アプリ インスタンスが FCM から登録解除されました。通常は、使用されているトークンが無効であるため、新しいトークンを使用する必要があります。 このエラーは、登録トークンがないか、トークンが登録されていない場合に発生します。
登録がない: メッセージのターゲットが token の値の場合は、リクエストに登録トークンが含まれていることを確認します。
未登録: 既存の登録トークンは、次のようなさまざまな状況で無効になることがあります。
- クライアント アプリが FCM に登録されていない場合。
- クライアント アプリが自動的に登録解除された場合。これは、ユーザーがアプリケーションをアンインストールした場合に発生することがあります。たとえば、iOS では、APNs フィードバック サービスによって APNs トークンが無効であると報告された場合です。
- 登録トークンが期限切れになった場合(たとえば、Google が登録トークンの更新を決定した場合や、iOS デバイスの APNs トークンが期限切れになった場合)。
- クライアント アプリが更新されたが、新しいバージョンがメッセージを受信するように構成されていない場合。
このような場合は、該当する登録トークンをアプリサーバーから削除し、その登録トークンを使用したメッセージの送信を中止します。
SENDER_ID_MISMATCH(HTTP エラーコード = 403)認証された送信者 ID が、登録トークンの送信者 ID とは異なります。 登録トークンは、特定の送信者グループに結び付けられています。クライアント アプリを FCM に登録するには、メッセージの送信を許可する送信者を指定する必要があります。クライアント アプリにメッセージを送信する場合は、これらの送信者 ID のいずれかを使用する必要があります。別の送信者に切り替えると、既存の登録トークンは機能しなくなります。
QUOTA_EXCEEDED(HTTP エラーコード = 429)メッセージ ターゲットの送信制限を超えました。超過した割り当てを指定するために、google.rpc.QuotaFailure タイプの拡張機能が返されます。 このエラーは、メッセージ レートの割り当ての超過、デバイスのメッセージ レートの割り当ての超過、トピックのメッセージ レートの割り当ての超過のいずれかが原因で発生する可能性があります。
メッセージ レートが超過: メッセージの送信レートが高すぎます。メッセージを送信する全体的な頻度を下げる必要があります。指数バックオフを使用し、最小初期遅延を 1 分に設定して、拒否されたメッセージを再試行します。
デバイスのメッセージ レートを超過しました: 特定のデバイスへのメッセージ レートが高すぎます。1 台のデバイスへのメッセージのレート制限をご覧ください。このデバイスに送信されるメッセージの数を減らし、指数バックオフを使用して送信を再試行してください。
トピック メッセージ レートを超過しました: 特定のトピックのサブスクライバーへのメッセージ レートが高すぎます。このトピックに送信されるメッセージの数を減らし、最小初期遅延を 1 分として指数バックオフを使用して送信を再試行します。
UNAVAILABLE(HTTP エラーコード = 503)サーバーが過負荷状態です。 サーバーで時間内にリクエストを処理できませんでした。同じリクエストを再試行します。ただし、次のことを行う必要があります。
- FCM 接続サーバーからのレスポンスに Retry-After ヘッダーが含まれている場合は、それに従います。
- 再試行メカニズムに指数バックオフを実装します。(たとえば、最初の再試行の前に 1 秒待機した場合、次の再試行まで少なくとも 2 秒待機した後、4 秒の間隔を空けます)。複数のメッセージを送信する場合は、ジッターの適用を検討してください。詳細については、再試行の処理をご覧ください。問題を引き起こす送信者は拒否リストに登録される可能性があります。
INTERNAL(HTTP エラーコード = 500)不明な内部エラーが発生しました。 リクエストを処理しようとしてサーバーでエラーが発生しました。再試行の処理の推奨事項に沿って、同じリクエストを再試行できます。エラーが解決しない場合は、Firebase サポートにお問い合わせください。
THIRD_PARTY_AUTH_ERROR(HTTP エラーコード = 401)APNs 証明書またはウェブプッシュ認証キーが無効であるか、存在しません。 iOS デバイスまたはウェブプッシュ登録をターゲットにしたメッセージを送信できませんでした。開発環境用と本番環境用の認証情報の有効性を確認します。