FCM 失敗條件的錯誤代碼。
錯誤碼 | 說明與解決步驟 |
---|---|
UNSPECIFIED_ERROR 無法取得這個錯誤的詳細資訊。 |
無 |
INVALID_ARGUMENT (HTTP 錯誤代碼 = 400) 要求參數無效。系統會傳回 google.rpc.BadRequest 類型的延伸模組,指定無效欄位。 |
可能的原因包括註冊無效、套件名稱無效、訊息過大、資料金鑰無效、存留時間無效,或其他參數無效。 註冊無效:請檢查您傳送至伺服器的註冊權杖格式。必須與用戶端應用程式註冊 FCM 後收到的註冊權杖相符。請勿截斷符記或新增其他字元。 套件名稱無效:請確認訊息寄送地址是註冊權杖,而且該註冊權杖的套件名稱與要求中傳送的值相符。 郵件太大:檢查訊息內含的酬載資料總大小並未超過 FCM 限制:大多數訊息為 4096 個位元組;如果訊息傳送至主題則為 2048 位元組。包括鍵和值。 資料金鑰無效:請確認酬載資料不含 FCM 內部使用的鍵 (例如 from、gcm 或任何 google 前置字串的值)。請注意,FCM 也會使用某些字詞 (例如 merge_key),但有效酬載中允許,在此情況下,FCM 值會覆寫酬載值。 存留時間無效:請確認 ttl 中使用的值是整數,代表介於 0 至 2,419,200 (4 週) 之間的時間長度秒數。 參數無效:請確認提供的參數名稱和類型正確無誤。 |
UNREGISTERED (HTTP 錯誤代碼 = 404) 已從 FCM 取消註冊應用程式執行個體。這通常表示您使用的權杖已經失效,必須使用新的權杖。 |
缺少註冊權杖或未註冊權杖都可能導致這項錯誤。 缺少註冊資訊:如果訊息的目標為 token 值,請檢查要求是否包含註冊權杖。未註冊:現有的註冊權杖可能會在許多情況下失效,包括: - 如果用戶端應用程式向 FCM 取消註冊, - 如果用戶端應用程式為自動取消註冊,當使用者解除安裝應用程式時,就可能發生這種情況。舉例來說,在 iOS 上,如果 APNs 意見回饋服務將 APN 權杖回報為無效, - 如果註冊權杖已過期 (例如 Google 可能會決定更新註冊權杖,或者 iOS 裝置的 APN 權杖已失效)。 - 如果用戶端應用程式已更新,但新版本未設為接收訊息。 針對上述所有情況,請從應用程式伺服器中移除這個註冊權杖,並停止使用該權杖傳送訊息。 |
SENDER_ID_MISMATCH (HTTP 錯誤代碼 = 403) 已驗證的寄件者 ID 與註冊權杖的傳送者 ID 不同。 |
註冊權杖與特定的寄件者群組相關聯。用戶端應用程式註冊 FCM 時,必須指定允許哪些寄件者傳送訊息。傳送郵件至用戶端應用程式時,請務必使用其中一個傳送者 ID。如果改用其他傳送者,現有的註冊權杖將無法運作。 |
QUOTA_EXCEEDED (HTTP 錯誤代碼 = 429) 訊息目標的傳送上限已超過上限。系統會傳回 google.rpc.QuotaFailure 類型的擴充功能,指定已經超出的配額。 |
這可能是因為訊息比率超過配額、超出裝置訊息傳送率配額,或超過主題訊息比率配額。 郵件傳送頻率超過上限:訊息傳送率過高。您必須降低整體傳送訊息的速率。使用指數輪詢策略,並將初始延遲時間設為至少 1 分鐘,藉此重試遭到拒絕的訊息。 裝置訊息比率超過上限:傳送至特定裝置的訊息比率過高。請參閱僅限單一裝置的訊息頻率。請減少傳送至這部裝置的訊息數量,並使用指數輪詢策略重試傳送。 超過主題訊息比率:向訂閱者傳送特定主題的訊息比率過高。請減少為這個主題傳送的訊息數量,並採用指數輪詢策略,將初始延遲時間設為至少 1 分鐘,然後重試傳送。 |
UNAVAILABLE (HTTP 錯誤代碼 = 503) 伺服器超載。 |
伺服器無法及時處理這項要求。重試相同的要求,但您必須採取以下動作: - 如果 FCM 連線伺服器的回應中含有 Retrie-After 標頭。 - 在重試機制中實作指數輪詢。(例如,如果您等待一秒就送出一次重試,請至少等待兩秒鐘,再等待 2 秒鐘,再等待 4 秒,依此類推)。如果您要傳送多則訊息,請考慮套用時基誤差。詳情請參閱處理重試。造成問題風險遭拒絕的寄件者。 |
INTERNAL (HTTP 錯誤代碼 = 500) 發生未知的內部錯誤。 |
伺服器在嘗試處理要求時發生錯誤。您可以按照「處理重試」一文的建議,重試相同的要求。如果錯誤持續發生,請與 Firebase 支援團隊聯絡。 |
THIRD_PARTY_AUTH_ERROR (HTTP 錯誤代碼 = 401) APN 憑證或網路推送驗證金鑰無效或遺失。 |
無法傳送指定 iOS 裝置或網路推送註冊的訊息。檢查開發和實際工作環境憑證是否有效。 |