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