关于错误码说明
移动推送设备状态分为设备在线和设备离线,若接入了厂商通道在设备离线时推送,并且在对应的厂商开放平台配置了回执地址,则厂商通道发送失败(event_type=sent_fail)或到达失败(event_type=arrive_fail)时会返回错误原因,本文是针对常见错误码的解释。
移动推送收不到消息时,可通过以下两种方式获取消息状态。
1.通过EMAS控制台→用户增长→移动推送→排查工具→排查消息,输入消息ID和设备ID查询消息的状态。其中设备信息显示在线状态,推送设备列表显示已推送的设备信息,右侧推送链路显示的推送状态。
2.开通回执日志,选择时间范围,系统自动筛选符合时间范围的回执日志。在日志reason字段中是发送失败(event_type=sent_fail)或到达失败(event_type=arrive_fail)原因。
错误码格式
一般格式为:
Android:code#msg,code为厂商通道错误码,msg为错误解释或HTTP Code。
iOS:msg,msg为错误解释或HTTP Code。
厂商通道错误码汇总
下行消息错误码 | 回执错误码 | |
华为 | ||
荣耀 | ||
小米 | ||
OPPO | ||
vivo | ||
魅族 | 无 | |
FCM | 无 | |
APNs | 无 | |
鸿蒙 |
常见厂商通道错误码
华为
6003#certificate fingerprint error
指纹证书配置不一致。客户端应用打包的证书和在AppGallery Connect网站上给应用配置的“SHA256证书指纹”不一致。
80100016#Anti-Spam: word is forbidden in [CONTENT]
消息体中带有敏感词汇,请检查发送消息内容。
80300007#Invalid Token
指定的Token无效,建议检查EMAS控制台华为厂商配置参数与华为开发平台→项目设置→推送服务→常规→应用下的 APP ID、包名、client Secret 是否一致。
2#app deleted
成功发送到设备后发现应用不存在,通常表示应用已卸载。
5#invalid token
指定的Token在当前Android终端用户下不存在,APP卸载了。
6#notify disabled
手机通知栏权限未开启,请开启通知栏权限。
10#inactive device
非活跃设备,设备为非活跃设备(终端设备未接入网络达30天),消息不进行下发。
31#invalid version
系统版本或应用不支持该消息请确认目标应用是否支持该消息。
如下几种情况不支持该消息:
1、目标应用中不存在Intent中指向的页面。
2、目标应用中的activity有权限保护。
3、推送服务版本低于11.1.2.300且目标应用中的activity设置了exported为false。
4、尝试升级推送服务(EMUI 9.1.0以下不支持升级)。
102#frequency control
消息频控丢弃,每天向某个设备上某个应用最多可发送3000条,超过后会被限流24小时。
201#invalid device
消息发送管控,消息被Push服务端管控不下发,建议做过滤处理减少无效推送。
可能的原因:
1、消息中指定的Token与设备当前登录的用户无法匹配。
2、用户关闭了显示通知栏消息。应用被卸载。
256#frequency control
资讯营销类消息频次限制,设备离线时推送通知走华为通道,推送条数受限,参考 https://developer.huawei.com/consumer/cn/doc/HMSCore-Guides/message-restriction-description-0000001361648361 建议排查服务端推送时 AndroidMessageCategory参数(1、未配置 2、已配置参数,但该分类在华为开放平台自分类权益中未申请/申请中/申请成功后未激活/申请分类属于资讯营销类。属于以上情况则会受到条数限制)。
vivo
null#getAuthTokenFail
对比vivo开放平台的appkey等参数与EMAS控制台vivo厂商通道参数是否配置一致。
100_0#other
管控,包括不在推送时间、版本不支持等问题。
100_12000#device frequency control
单应用单用户频次限制。
服务端推送时配置 AndroidNotificationVivoChannel,AndroidMessageVivoCategory 。
具体参考:https://help.aliyun.com/document_detail/2249916.html
101#audit not pass
消息审核不通过。
102_0#other
不匹配其他,包括设备未注册、设备空间不匹配等。
102_20001#not subscribe
不匹配,用户未订阅。检查APP是否卸载,或者是否有第三方推送影响。
102_20002#user not exist
不匹配,用户不存在或者APP卸载。
102_20006#offline XX days
设备不活跃 https://dev.vivo.com.cn/documentCenter/doc/174-399ae34be99511e9bae6d0946672c4fb#w2-89991014。
104_0#other
未展示其他,使用排查消息 获取vivo厂商token、vivo消息Id,咨询vivo开放平台客服。
104_1017#out of hour
未展示,运营消息在夜间23:00~早上07:00不展示。
104_2124#message duplicated
未展示,内容和标题完全相同的运营消息
注:同一天内给同一个用户发送标题和内容相同的运营消息,只会展示一条消息。
104_2144#message expired on show
未展示,消息已过了有效期 。
104_2161#activity not exported
服务端推送时参数AndroidPupopActivity对应的Activity需要在Android侧 AndroidMainFest.xml 中配置exported=true。
104_2162#activity not found
被拉起activity未找到,检查服务端推送时参数AndroidPupopActivity 是否全路径类名,是否存在。
104_2183#activity invalid token
regid失效,请重新从Android端获取。
小米
27001#invalid channel info!
服务端推送时AndroidNotificationXiaomiChannel参数是否正确配置, 小米开放平台消息渠道是否成功申请。https://dev.mi.com/console/doc/detail?pId=2422#_2
16#invalid device
目标设备无效(设备超过30天未联网;alias/user account/regID不正确;App未注册或已卸载;发送目标的区域有误等原因)。
32#notify disabled
关闭了通知栏权限。
1024#expired TTL
消息有效期TTL过期。
128#frequency control
当日推送总量超限或单设备接收超限,限制规则请参见消息限制说明。
OPPO
null#responseIsNull
EMAS控制台移动推送OPPO厂商通道 MasterSecret 配置错误,建议OPPO开放平台应用详情 appserversecret 配置到MasterSecret。若配置无误请联系EMAS技术支持获取更多帮助。
regid_invalid#regId invalid
无效RegistrationID,应用被卸载、应用自动注销、用户设备刷机、设备30天内未联网会导致RegistrationID失效。
user_daily_limit#frequency control
单应用单设备限量,当日应用对该设备推送条数超过单设备推送条数限制 https://open.oppomobile.com/new/developmentDoc/info?id=11210。
荣耀
40000003#app deleted
目标应用不存在(未安装)。
40000004#token invalid or not exist
指定的Token在终端用户下失效或不存在。
40000005#notify disabled
目标应用通知栏开关被关闭,无通知栏展示权限。
40000009#frequency control
消息因系统原因丢弃,展示失败。主要的原因可能是消息发送数量超过《消息数量管理细则》配额。
40000013#message is managed
通知消息被管控,表示手机处于息屏状态一段时间后,系统对电量优化的一种管控状态,当手机再次亮屏后,会重新下发消息。
40000014#invalid token
token指定的用户与终端设备当前用户不匹配。
40000021#unknown status
使用排查消息获取荣耀消息id,荣耀厂商token咨询荣耀开放平台客服。
魅族
1006#签名认证失败
110002#pushId⽆效
110010#应用请求频率超过限制
110000#appId不合法
5000#回执地址不存在,请在推送平台配置 魅族开放平台回执地址配置
FCM
AUTH_ERROR#Authentication error.
登录Firebase检查推送相关配置并对比移动端及EMAS配置文件中参数值是否正确。
INVALID_ARGUMENT#The registration token is not a valid FCM registration token
app卸载或token失效。
PERMISSION_DENIED#Firebase Cloud Messaging API has not been used in project atli-cam-new before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/fcm.googleapis.com/overview?project=atli-cam-new then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.
登录Firebase 项目设置→云消息传递, 启用Firebase Cloud Messaging API(v1);项目设置→服务账号,选择java生成服务器密钥json文件并在EMAS控制台厂商通道FCM上传服务器密钥json文件。
SENDER_ID_MISMATCH#SenderId mismatch
移动端配置的SenderId与EMAS控制台 FCM上传的服务证书不匹配。
鸿蒙
80100003#Illegal payload, payload notification category not support
服务端推送时HarmonyCategory配置错误。
80300002#No permission to send message to these tmIDs
登录华为开放平台查看Push服务状态是否已开通,参考配置账号密钥文件创建并下载JSON,EMAS控制台厂商通道证书配置上传JSON文件。
80300007#{"illegalTokens":{"noPushTypeRight":["xxx"]},"failure":1}
所有Token都是无效的,检查客户端应用配置的应用包名、应用ID与AppGallery Connect网站上申请的是否一致。
80300008#Push message size is too long
消息体大小(不含Token)超过系统设置的默认值(4096Bytes)。请求消息体大小超过默认值,请减小消息体后重新发送消息。
APNs
BadDeviceToken
安装包环境和推送环境不匹配。
DeviceTokenNotForTopic
此状态只会出现在iOS的推送,表示此token与推送的证书的bundleID不匹配。先检查证书是否正确,并且检查与客户端打包的bundleId是否一致。
InvalidProviderToken
DeviceToken是一个无效的token。
Received fatal alert: certificate_revoked
证书在开发者平台被撤销了。
Received fatal alert: certificate_expired
证书在开发者平台过期了。
TopicDisallowed
证书的 bundleID非法。
Unregistered
iOS端上未注册DeviceToken,或注册失败,或注册了但没有上报到EMAS推送服务端。