ErrorCode

รหัสข้อผิดพลาดสำหรับเงื่อนไขความล้มเหลวของ FCM

รหัสข้อผิดพลาด คำอธิบายและขั้นตอนการแก้ปัญหา
UNSPECIFIED_ERROR ไม่มีข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดนี้ ไม่มี.
INVALID_ARGUMENT (รหัสข้อผิดพลาด HTTP = 400) พารามิเตอร์คำขอไม่ถูกต้อง ส่วนขยายประเภท google.rpc.BadRequest จะถูกส่งกลับเพื่อระบุว่าช่องใดไม่ถูกต้อง สาเหตุที่เป็นไปได้ ได้แก่ การลงทะเบียนไม่ถูกต้อง ชื่อแพ็กเกจไม่ถูกต้อง ข้อความใหญ่เกินไป คีย์ข้อมูลที่ไม่ถูกต้อง TTL ไม่ถูกต้อง หรือพารามิเตอร์อื่นๆ ที่ไม่ถูกต้อง
การลงทะเบียนไม่ถูกต้อง : ตรวจสอบรูปแบบของโทเค็นการลงทะเบียนที่คุณส่งไปยังเซิร์ฟเวอร์ ตรวจสอบให้แน่ใจว่าตรงกับโทเค็นการลงทะเบียนที่แอปไคลเอ็นต์ได้รับจากการลงทะเบียนกับ FCM อย่าตัดทอนโทเค็นหรือเพิ่มอักขระเพิ่มเติม
ชื่อแพ็คเกจไม่ถูกต้อง : ตรวจสอบให้แน่ใจว่าข้อความถูกส่งไปยังโทเค็นการลงทะเบียนซึ่งมีชื่อแพ็คเกจตรงกับค่าที่ส่งในคำขอ
ข้อความใหญ่เกินไป : ตรวจสอบว่าขนาดรวมของข้อมูลเพย์โหลดที่รวมอยู่ในข้อความไม่เกินขีดจำกัด FCM: 4096 ไบต์สำหรับข้อความส่วนใหญ่ หรือ 2048 ไบต์ในกรณีของข้อความไปยังหัวข้อ ซึ่งรวมถึงทั้งคีย์และค่า
คีย์ข้อมูลไม่ถูกต้อง : ตรวจสอบว่าข้อมูลเพย์โหลดไม่มีคีย์ (เช่น จาก หรือ gcm หรือค่าใดๆ ที่ google นำหน้า) ที่ FCM ใช้เป็นการภายใน โปรดทราบว่า FCM จะใช้คำบางคำ (เช่นยุบคีย์) เช่นกัน แต่อนุญาตให้ใช้ในเพย์โหลด ซึ่งในกรณีนี้ค่าเพย์โหลดจะถูกแทนที่ด้วยค่า FCM
TTL ไม่ถูกต้อง : ตรวจสอบว่าค่าที่ใช้ใน ttl เป็นจำนวนเต็มที่แสดงถึงระยะเวลาเป็นวินาทีระหว่าง 0 ถึง 2,419,200 (4 สัปดาห์)
พารามิเตอร์ไม่ถูกต้อง : ตรวจสอบว่าพารามิเตอร์ที่ให้มามีชื่อและประเภทที่ถูกต้อง
UNREGISTERED (รหัสข้อผิดพลาด HTTP = 404) อินสแตนซ์ของแอปไม่ได้ลงทะเบียนจาก FCM ซึ่งโดยปกติหมายความว่าโทเค็นที่ใช้ไม่ถูกต้องอีกต่อไป และต้องใช้โทเค็นใหม่ ข้อผิดพลาดนี้อาจเกิดจากโทเค็นการลงทะเบียนหายไปหรือโทเค็นที่ไม่ได้ลงทะเบียน
การลงทะเบียนขาดหายไป : หากเป้าหมายของข้อความเป็นค่า token ให้ตรวจสอบว่าคำขอมีโทเค็นการลงทะเบียน
ไม่ได้ลงทะเบียน : โทเค็นการลงทะเบียนที่มีอยู่อาจใช้ไม่ได้ในหลายสถานการณ์ รวมไปถึง:
- หากแอปไคลเอ็นต์ยกเลิกการลงทะเบียนกับ FCM
- หากแอปไคลเอ็นต์ยกเลิกการลงทะเบียนโดยอัตโนมัติ ซึ่งอาจเกิดขึ้นได้หากผู้ใช้ถอนการติดตั้งแอปพลิเคชัน ตัวอย่างเช่น บน iOS หาก APN Feedback Service รายงานว่าโทเค็น APN ไม่ถูกต้อง
- หากโทเค็นการลงทะเบียนหมดอายุ (เช่น Google อาจตัดสินใจรีเฟรชโทเค็นการลงทะเบียน หรือโทเค็น APN สำหรับอุปกรณ์ iOS หมดอายุ)
- หากแอปไคลเอ็นต์ได้รับการอัปเดตแต่ไม่ได้กำหนดค่าเวอร์ชันใหม่ให้รับข้อความ
ในกรณีทั้งหมดเหล่านี้ ให้ลบโทเค็นการลงทะเบียนนี้ออกจากเซิร์ฟเวอร์แอปและหยุดใช้เพื่อส่งข้อความ
SENDER_ID_MISMATCH (รหัสข้อผิดพลาด HTTP = 403) ID ผู้ส่งที่ได้รับการรับรองความถูกต้องแตกต่างจาก ID ผู้ส่งสำหรับโทเค็นการลงทะเบียน โทเค็นการลงทะเบียนเชื่อมโยงกับกลุ่มผู้ส่งบางกลุ่ม เมื่อแอปไคลเอ็นต์ลงทะเบียน FCM ต้องระบุผู้ส่งที่ได้รับอนุญาตให้ส่งข้อความ คุณควรใช้หนึ่งในรหัสผู้ส่งเหล่านั้นเมื่อส่งข้อความไปยังแอปไคลเอนต์ หากคุณเปลี่ยนไปใช้ผู้ส่งรายอื่น โทเค็นการลงทะเบียนที่มีอยู่จะไม่ทำงาน
QUOTA_EXCEEDED (รหัสข้อผิดพลาด HTTP = 429) เกินขีดจำกัดการส่งสำหรับเป้าหมายข้อความ ส่วนขยายประเภท google.rpc.QuotaFailure จะถูกส่งกลับเพื่อระบุว่าเกินโควต้าใด ข้อผิดพลาดนี้อาจเกิดจากการเกินโควต้าอัตราข้อความ เกินโควต้าอัตราข้อความของอุปกรณ์ หรือเกินโควต้าอัตราข้อความหัวข้อ
เกินอัตราข้อความ : อัตราการส่งข้อความสูงเกินไป คุณต้องลดอัตราโดยรวมที่คุณส่งข้อความ ใช้ Exponential Backoff โดยหน่วงเวลาเริ่มต้นขั้นต่ำ 1 นาทีเพื่อลองข้อความที่ถูกปฏิเสธอีกครั้ง
เกินอัตราข้อความของอุปกรณ์ : อัตราข้อความไปยังอุปกรณ์เฉพาะสูงเกินไป ดู ขีดจำกัดอัตราข้อความไปยังอุปกรณ์เครื่อง เดียว ลดจำนวนข้อความที่ส่งไปยังอุปกรณ์นี้และใช้ Exponential Backoff เพื่อลองส่งอีกครั้ง
เกินอัตราข้อความหัวข้อ : อัตราข้อความถึงสมาชิกในหัวข้อใดหัวข้อหนึ่งสูงเกินไป ลดจำนวนข้อความที่ส่งสำหรับหัวข้อนี้ และใช้ Exponential Backoff โดยหน่วงเวลาเริ่มต้นขั้นต่ำ 1 นาทีเพื่อลองส่งอีกครั้ง
UNAVAILABLE (รหัสข้อผิดพลาด HTTP = 503) เซิร์ฟเวอร์โอเวอร์โหลด เซิร์ฟเวอร์ไม่สามารถประมวลผลคำขอได้ทันเวลา ลองคำขอเดิมอีกครั้ง แต่คุณต้อง:
- ปฏิบัติตามส่วนหัว Retry-After หากรวมอยู่ในการตอบกลับจากเซิร์ฟเวอร์การเชื่อมต่อ FCM
- ใช้การถอยกลับแบบเอ็กซ์โพเนนเชียลในกลไกการลองใหม่ของคุณ (เช่น หากคุณรอหนึ่งวินาทีก่อนลองอีกครั้งครั้งแรก ให้รออย่างน้อยสองวินาทีก่อนครั้งถัดไป จากนั้นรอ 4 วินาทีเป็นต้นไป) หากคุณส่งข้อความหลายข้อความ ให้ลองใช้การกระวนกระวายใจ สำหรับข้อมูลเพิ่มเติม โปรดดูที่ การจัดการการลอง ใหม่ ผู้ส่งที่ทำให้เกิดปัญหาอาจเสี่ยงต่อการถูกปฏิเสธ
INTERNAL (รหัสข้อผิดพลาด HTTP = 500) เกิดข้อผิดพลาดภายในที่ไม่ทราบสาเหตุ เซิร์ฟเวอร์พบข้อผิดพลาดขณะพยายามประมวลผลคำขอ คุณสามารถลองคำขอเดิม อีก ครั้งโดยทำตามคำแนะนำใน Handling retry หากข้อผิดพลาดยังคงอยู่ โปรดติดต่อฝ่ายสนับสนุน Firebase
THIRD_PARTY_AUTH_ERROR (รหัสข้อผิดพลาด HTTP = 401) ใบรับรอง APN หรือรหัสรับรองความถูกต้องของ Web Push ไม่ถูกต้องหรือหายไป ไม่สามารถส่งข้อความที่กำหนดเป้าหมายไปที่อุปกรณ์ iOS หรือการลงทะเบียนแบบพุชบนเว็บได้ ตรวจสอบความถูกต้องของข้อมูลรับรองการพัฒนาและการใช้งานจริงของคุณ