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 推播註冊的訊息。檢查您的開發和生產憑證的有效性。 |