ErrorCode

FCM 故障狀況的錯誤代碼。

錯誤代碼描述和解決步驟
UNSPECIFIED_ERROR沒有關於此錯誤的更多資訊。沒有任何。
INVALID_ARGUMENT (HTTP 錯誤代碼 = 400)請求參數無效。傳回google.rpc.BadRequest類型的擴充以指定哪個欄位無效。可能的原因包括無效註冊、無效包名稱、訊息太大、無效資料金鑰、無效 TTL 或其他無效參數。
無效註冊:檢查您傳遞給伺服器的註冊令牌的格式。確保它與客戶端應用程式透過 FCM 註冊收到的註冊令牌相符。不要截斷標記或添加其他字元。
包名稱無效:確保訊息傳送至註冊令牌,其包名稱與請求中傳遞的值相符。
訊息太大:檢查訊息中包含的有效負載資料的總大小是否超過 FCM 限制:大多數訊息為 4096 字節,對於主題訊息為 2048 位元組。這包括鍵和值。
資料金鑰無效:檢查負載資料是否不包含 FCM 內部使用的金鑰(例如 from、gcm 或任何以 google 為前綴的值)。請注意,FCM 也使用某些單字(例如collapse_key),但在有效負載中允許使用,在這種情況下,有效負載值將被 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) 伺服器過載。伺服器無法及時處理請求。重試相同的請求,但您必須:
- 如果 Retry-After 標頭包含在 FCM 連線伺服器的回應中,則遵守該標頭。
- 在重試機制中實施指數退避。 (例如,如果您在第一次重試之前等待一秒,則在下一次重試之前至少等待兩秒,然後等待 4 秒,依此類推)。如果您要傳送多個訊息,請考慮套用抖動。有關更多信息,請參閱處理重試。造成問題的寄件者可能會被列入拒絕名單。
INTERNAL (HTTP 錯誤代碼 = 500) 發生未知內部錯誤。伺服器在嘗試處理請求時遇到錯誤。您可以按照處理重試中的建議重試相同的請求。如果錯誤仍然存在,請聯絡 Firebase 支援。
THIRD_PARTY_AUTH_ERROR (HTTP 錯誤代碼 = 401)APN 憑證或 Web 推送驗證金鑰無效或遺失。無法傳送針對 iOS 裝置或 Web 推播註冊的訊息。檢查您的開發和生產憑證的有效性。