ErrorCode

FCM 障害状態のエラー コード。

エラーコード説明と解決手順
UNSPECIFIED_ERRORこのエラーに関するこれ以上の情報はありません。なし。
INVALID_ARGUMENT (HTTP エラー コード = 400) リクエスト パラメーターが無効でした。無効なフィールドを指定するために、タイプgoogle.rpc.BadRequestの拡張子が返されます。考えられる原因には、無効な登録、無効なパッケージ名、大きすぎるメッセージ、無効なデータ キー、無効な TTL、またはその他の無効なパラメーターが含まれます。
無効な登録: サーバーに渡す登録トークンの形式を確認してください。クライアント アプリが FCM への登録から受け取る登録トークンと一致していることを確認してください。トークンを切り詰めたり、文字を追加したりしないでください。
無効なパッケージ名: メッセージの宛先が、リクエストで渡された値とパッケージ名が一致する登録トークンであることを確認してください。
メッセージが大きすぎます: メッセージに含まれるペイロード データの合計サイズが FCM 制限 (ほとんどのメッセージでは 4096 バイト、トピックへのメッセージの場合は 2048 バイト) を超えていないことを確認します。これにはキーと値の両方が含まれます。
無効なデータ キー: ペイロード データに、FCM によって内部的に使用されるキー (from、gcm、または google のプレフィックスが付いた値など) が含まれていないことを確認してください。一部の単語 (collapse_key など) は 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 分にしてください。
UNAVAILABLE (HTTP エラー コード = 503) サーバーが過負荷になっています。サーバーはリクエストを時間内に処理できませんでした。同じリクエストを再試行しますが、次のことを行う必要があります。
- FCM 接続サーバーからの応答に Retry-After ヘッダーが含まれている場合は、それを尊重します。
- 再試行メカニズムに指数バックオフを実装します。 (たとえば、最初の再試行の前に 1 秒待った場合は、次の再試行まで少なくとも 2 秒待ち、その後 4 秒というように続きます)。複数のメッセージを送信する場合は、ジッタリングの適用を検討してください。詳細については、 「再試行の処理」を参照してください。問題を引き起こす送信者は拒否リストに登録されるリスクがあります。
INTERNAL (HTTP エラー コード = 500) 不明な内部エラーが発生しました。サーバーがリクエストを処理しようとしたときにエラーが発生しました。 「再試行の処理」の提案に従って同じリクエストを再試行できます。エラーが解決しない場合は、Firebase サポートにお問い合わせください。
THIRD_PARTY_AUTH_ERROR (HTTP エラー コード = 401) APN 証明書または Web プッシュ認証キーが無効か欠落しています。 iOS デバイスまたは Web プッシュ登録を対象としたメッセージを送信できませんでした。開発および運用の認証情報の有効性を確認してください。