指南针推送错误说明

更新时间: 2024/06/27 14:47:05

消息推送到达率会比较影响推广的效果。因此,网易云信针对网易云信服务器下发给推送平台的数据做了全面的数据分析和统计,针对各个平台返回的错误码做了记录分类。然而,每个平台都有自己的错误码。部分错误码可能并不是比较容易理解,所以本文整理了常见的平台侧返回给网易云信的错误码的说明和处理方式,便于您基于指南针的数据更快的处理推送失败的问题。

APNs 推送

更多 APNs(Apple Push Notification service)推送错误码,请访问 苹果开发者官网

指南针记录错误 APNs 官网说明 网易云信错误说明 处理方案
BadDeviceToken The specified device token is invalid. Verify that the request contains a valid token and that the token matches the environment.

网易云信控制台 上传的推送证书和客户端的打包环境不一致导致的推送失败

参考 FAQ [KB0258] iOS 推送问题排查,修改打包环境和证书环境保持一致即可

DeviceTokenNotForTopic The device token doesn’t match the specified topic. DeviceToken 和当前的 bundleID 不匹配 网易云信控制台 重新上传对应的推送证书
InvalidCollapseId The collapse identifier exceeds the maximum allowed size. payload 字段里配置的 collapseid 异常 调整触发推送的消息撤回,消息发送,自定义系统通知发送的 payload 里的 collapseid 字段
InvalidProviderToken The provider token is not valid, or the token signature can’t be verified. 推送证书、bundleid 和 Token 不一致或者有错误

参考 FAQ [KB0258] iOS 推送问题排查,验证对应的配置和推送 Token

MissingProviderToken

No provider certificate was used to connect to APNs, and the 

authorization header is missing or no provider token is specified.

推送证书、bundleid 和 Token 不一致或者有错误

参考 FAQ [KB0258] iOS 推送问题排查,验证对应的配置和推送 Token

PayloadTooLarge The message payload is too large. For information about the allowed payload size, see Create a POST request to APNs in Sending notification requests to APNs. payload 的字段长度过长 调整触发推送的消息撤回,消息发送,自定义系统通知发送的 payload 的长度
TopicDisallowed Pushing to this topic is not allowed. 推送证书、bundleid 和 Token 不一致或者有错误

参考 FAQ [KB0258] iOS 推送问题排查,验证对应的配置和推送 Token

Unregistered The device token is inactive for the specified topic. There is no need to send further pushes to the same device token, unless your application retrieves the same device token, see Registering your app with APNs 推送 Token 失效,一般是用户卸载了应用 用户行为导致,不用处理
authentication error There was an error with the certificate or with the provider’s authentication token. 推送证书、bundleid 和 Token 不一致或者有错误

参考 FAQ [KB0258] iOS 推送问题排查,验证对应的配置和推送 Token

certificate error There was an error with the certificate or with the provider’s authentication token. 上传到 网易云信控制台 的推送证书过期了,或者证书异常 网易云信控制台 重新上传对应的推送证书
certificate_revoked - 一般是 App 被苹果下架了 向苹果申诉
connection error - 请求 APNs 服务器异常 一般是 APNs 平台自身的推送服务器异常,多天连续出现可以反馈网易云信核实
notification expired The device token has expired. 推送 Token 失效,一般是用户卸载了应用 用户行为导致,不用处理

华为推送

华为推送错误码:

错误码 指南针记录错误 华为官网说明 网易云信错误说明 处理方案
3 authentication error 网易云信内部错误码 推送 Token 无效 一般是客户端推送配置与服务器配置不一致,建议检查对应的配置
4 connection error 网易云信内部错误码 请求华为推送服务器异常 一般是华为自身的推送服务器异常,多天连续出现可以反馈网易云信核实
503 http status code error 网易云信内部错误码 请求华为推送服务器异常 一般是华为自身的推送服务器异常,多天连续出现可以反馈网易云信核实
80100003 Illegal payload,xxxxxx 消息结构体错误。 通过网易云信配置的 hwfiled 字段异常,具体异常会在错误描述具体说明。

网易云信官网 hwfiled 字段配置说明:消息分类方式

华为侧 payload 字段配置说明:下行消息

参考华为官网的说明,调整网易云信 hwfiled 里面的字段内容

80100016

Anti-Spam: word is forbidden in [CONTENT]

Anti-Spam: word is forbidden in [TITLE]

消息里面含有敏感信息。

发送的 title 和 body 可能涉政涉黄

关于敏感词的问题,如果有疑义,可以通过邮箱发送至 hwpush@huawei.com,需要运营人员处理,并提供使用场景、消息内容,问题描述

可以发送前先调用华为的第三方检测基于第三方审核结果的消息推送

或者接入网易云信的安全通反垃圾,在发送时就实时做检测拦截

如果是自行发送的内容命中,可以调整发送的 title 和 body 内容后重试

80300002 No permission to send message to these tmIDs

说明

如果只开通 Push 服务,请您先去应用市场上传一个 APK,保存草稿状态即可,否则重新添加的时候您可能无法找到原来的应用。

一般是没有向华为申请推送权限导致 建议联系华为的同事沟通处理
80300007 All the tokens are invalid
  • 同一个设备,不同应用的 Token 原则上是不一样,但实际操作时可能误传递同样的值。
  • 客户端应用配置的应用包名、应用 ID 与 AppGallery Connect
  • 检查获取 access_token 的 URL 是否正确。
荣耀手机在本地荣耀推送缺失部分配置时,类似 manifest 配置异常,导致 SDK 使用荣耀的推送 token 上报给华为推送,会返回 token 异常,从而提示这个错误 建议检查 网易云信控制台 配置的推送证书和客户端的信息是否一致
80600003 Request oAuth2 Server failed 请求 Oauth 服务失败。 请检查 Oauth 2.0 客户端 ID 和客户端密钥。 建议联系华为的同事沟通处理
其他错误 其他错误 {"sub_error":20003,"error_description":"parameter invalid","error":1101}

一般是管理后台上传的推送证书信息错误

错误码

建议检查上传的华为推送证书配置,重新更新 网易云信控制台 的推送证书

荣耀推送

荣耀推送错误码,请访问 荣耀开发者官网

错误码 指南针记录错误 荣耀官网说明 网易云信错误说明 处理方案
3 authentication error 网易云信内部错误码 推送 Token 无效 一般是客户端推送配置与服务器配置不一致,建议检查对应的配置
4 connection error 网易云信内部错误码 请求荣耀推送服务器异常 一般是荣耀自身的推送服务器异常,多天连续出现可以反馈网易云信核实
400 body should be set notification.body 和 android.notification.body 最少需要设置一个 网易云信配置的消息 payload 里面 honorField 字段未配置 body 检查 payload 的传参,调整传参内容
400 title should be set notification.title 和 android.notification.title 最少需要设置一个 网易云信配置的消息 payload 里面 honorField 字段未配置 title -
400 intent or action is required when click type=1 android.notification.clickAction.style 为 1 时,intent or action 至少填一个 网易云信配置的消息 payload 里面 honorField 字段配置 clicktype 为 1,但是没有配置跳转对应的 intent 和 action 字段

参考网易云信官网文档 荣耀推送,在 payload 的 honorField 字段补充对应的字段

小米推送

小米推送错误码,请访问 小米开发者平台

错误码 指南针记录错误 小米官网说明 网易云信错误说明 处理方案
3 authentication error 网易云信内部错误码 推送 Token 无效 一般是客户端推送配置与服务器配置不一致,建议检查对应的配置
4 connection error 网易云信内部错误码 请求小米推送服务器异常 一般是小米自身的推送服务器异常,多天连续出现可以反馈网易云信核实
10031 AppId(id=xxx) in the blacklist, forbid to send messages 应用在黑名单中,禁止发送消息 推送证书配置的应用在小米的黑名单 向小米申诉解除黑名单
20301 No valid targets! 发送消息失败 一般是推送 Token 异常 建议找小米的同事核实 Token 异常的原因
21301 Invalid application secret. 认证失败 网易云信控制台 配置的 appsecret 错误导致 检查 网易云信控制台 上传的小米推送证书和小米推送后台获取的 appsecret 是否一致
27001 invalid channel info! channel 相关信息不匹配

网易云信如果管理后台没有配置小米 channelid 的情况下默认不会携带 channelid,如果 payload 没有按照官网文档添加 channelid,或者配置的 channelid 不对。

channelid 的配置优先级

payload 主动配置的>管理后台配置的

小米推送

参考官网文档,在发送消息时配置 payload 的 channelid 参数,或者在 网易云信控制台 配置默认的小米 channelid,并且保证配置的 channelid 和小米后台申请的 channelid 一致

65011 Title or Description is empty! 未提供参数 发送消息未配置 pushcontent 的推送内容

建议参考 FAQ [KB0291] 关于 IM 推送的主要配置参数,配置一下 pushcontent 的推送内容

200002 send message too frequently, per second requests num must be lower than xxx

推送 QPS 超过限额。

限制说明请参考 小米推送消息限制说明

小米侧的推送频率限制 建议联系小米侧看是否可以升级频控,或者优化接口调用频率

VIVO 推送

VIVO 推送错误码,请访问 VIVO 开发者官网

错误码 指南针记录错误 VIVO 官网说明 网易云信错误说明 处理方案
3 authentication error 网易云信内部错误码 推送 Token 无效 一般是客户端推送配置与服务器配置不一致,建议检查对应的配置
4 connection error 网易云信内部错误码 请求 VIVO 推送服务器异常 一般是 VIVO 自身的推送服务器异常,多天连续出现可以反馈网易云信核实
10043 该 App 已关闭 push 通道 该应用已关闭 push 通道 推送证书未开启推送,或者由于惩罚被关闭通道 联系 vivo 的同事沟通处理
10045 应用审核中不可发送正式消息 应用审核中不可发送正式消息 审核状态为未通过、审核中,推送权限为受限的应用不能通过 vivo 推送平台发送正式推送消息,可在 API 向测试设备发送测试消息 联系 vivo 同事加速审核进度,等待应用审核完成再测试
10055 title 不能为空 title 不能为空 SDK 默认会配置 title,除非在网易云信发送的消息或者自定义系统通知里面主动配置了 payload 的 pushtitle 字段为""这样的空字符 payload 的 pushtitle 字段,如果没有单独需要配置的内容,建议不传,走 SDK 默认的 title,如果希望自定义推送标题的话,建议配置 pushtitle 为非空字段
10057 content 不能为空 content 不能为空 网易云信发送自定义系统通知或者消息的时候没有配置推送的 pushcontent 的推送文案内容

需要推送的自定义系统通知或者消息建议主动配置 pushcontent 的推送文案内容,具体参数参考下面链接

链接:[KB0291] 关于 IM 推送的主要配置参数

10068 skipType = 4, skipContent 不能为空 skipType = 4, skipContent 不能为空 SDK 的 payload 里面配置 vivofield 了 skipType 参数,但是没有配置 skipContent 参数 设置发送的自定义系统通知或者消息的 payload 里面的 vivofield 里新增 skipContent 跳转自定义界面需要的内容
10070 运营消息发送量总量超出限制

运营消息发送量总量超出限制

当日运营消息发送量已到达上限,规则参考《vivo》推送消息限制说明

vivo 侧的运营消息推送数量限制,需要配置推送为系统消息规避

设置发送的自定义系统通知或者消息的 payload 里面的 vivofield 里的 classification 字段为 1,或者在 网易云信控制台 的功能配置->第三方平台消息分类->vivo 推送消息分类勾选对应的 IM 分类处理

消息推送类型配置

10071 超出发送时间允许范围

超出发送时间允许范围

发送时间范围参考《vivo》推送消息限制说明

同上,vivo 针对运营消息有发送时间段的限制,需要配置推送为系统消息规避

设置发送的自定义系统通知或者消息的 payload 里面的 vivofield 里的 classification 字段为 1,或者在 网易云信控制台 的功能配置->第三方平台消息分类->vivo 推送消息分类勾选对应的 IM 分类处理

消息推送类型配置

10072 推送速度过快,请稍后再试

请稍后再推送消息,增加消息推送间隔。

调用《vivo》服务端 API 接口 可查询速度配置

vivo 推送 QPS 根据通知开启的有效用户数自动调整,默认最低 3000/秒,最高 5000/秒。

QPS 定义:表示 1 秒内最多可推送的用户数。例如:3000 QPS 时, 1 秒内最多可推送 3000 用户,换算为单推:一秒最多调用 3000 次接口。换算为列表推:若一次推送 100 用户,一秒最多调用 30 次接口。

请参考《vivo》推送消息限制说明 里面的推送速度 QPS 限制规则

控制网易云信发送的频率,如果数量不是很多也可以不做处理,或者主动联系 VIVO 的同事看是否可以调整频率
10073 系统消息发送量总量超出限制 当日系统消息发送量已到达上限,无法继续发送。 VIVO 侧系统消息数量达到限制 按照《vivo》推送服务工单 的说明,向 vivo 申请系统消息数量无限制配置
10085 title 或 content 不能为纯表情 title 或 content 不能为纯表情 vivo 侧 title 和 content 内容限制 网易云信只是做透传,属于 vivo 自身限制,如果业务自身本来就是需要用到纯表情,可以不做处理
10097 category 与 classification 不对应 category 与 classification 不对应

vivo 侧会校验 payload 里面配置的 vivofield 的 category 与 classification,两个不匹配会报这个错

例如:category 传 NEWS,classification 传 1:系统类消息

建议不是特殊场景直接只配置 classification 就好,如果系统消息发送数量超了,联系 vivo 这边申请无限制配置
10104 消息标题或内容受到内容规则限制,请修改后重试 请发送正式消息

1、关于 测试 消息纯英文纯数字的限制

为避免开发者调试时,将测试消息误发送给用户,接口做了内容限制。

注:测试消息和正式消息采用相同的规则,测试字样包括中文 测试 及英文 test

vivo 自身的限制,建议修改推送标题和文案规避
10302 用户 ID 不合法 用户 ID 不合法

提示 regId 不合法 说明找不到这个 regId,单推接口返回有 invalidUser 字段,可以根据 status 看下不合法 regId 原因,status 有 3 种情况:

1.userid 不存在。

2.卸载,或主动触发解订阅, 或用户清除数据(用户清除数据会使客户端 SDK 触发解订阅)

3.非测试用户

建议重新登录上报最新的推送 Token,卸载的用户暂时无法处理
10311 设备当前无法推送,通知被屏蔽或 14 天未联网 该设备当前无法推送 设备自身问题,需要检查设备具体情况

请排查以下原因:

1、设备通知权限未打开

2、设备不活跃

其他错误 其他错误 getAuthTokenError | {"result":10202,"desc":"appKey 不合法"} 管理后台上传的推送证书配置信息错误 建议检查 网易云信控制台 配置的推送证书和 vivo 后台的配置信息是否一致

OPPO 推送

OPPO 推送错误码,请访问 OPPO 开放平台

错误码 指南针记录错误 OPPO 官网说明 网易云信错误说明 处理方案
3 authentication error 网易云信内部错误码 推送 Token 无效 一般是客户端推送配置与服务器配置不一致,建议检查对应的配置
4 connection error 网易云信内部错误码 请求 OPPO 推送服务器异常 一般是 OPPO 自身的推送服务器异常,多天连续出现可以反馈网易云信核实
14 其他错误 无效的 AppKey 参数 网易云信控制台 上传的推送证书的 appkey 错误 建议检查 网易云信控制台 配置的推送证书和 oppo 后台的 appkey 配置信息是否一致
16 其他错误 校验不通过,无效签名 网易云信控制台 上传的推送证书的 appsecret 不是 oppo 推送管理后台的 mastersecret 建议检查 网易云信控制台 配置的推送证书和 oppo 后台的 mastersecret 配置信息是否一致
28 其他错误 应用不可用 oppo 侧的限制 联系 oppo 的同事处理
33 The number of messages exceeds the daily limit 消息条数超过日限额 oppo 侧的限制,具体的数量限制参考 oppo 官网推送服务受限说明

参考《OPPO》消息分类说明,在 oppo 后台申请私信的 channelid 通道,然后在网易云信配置的 payload 的 oppofield 里面配置申请的私信 channelid,或者在 网易云信控制台 配置对应的 channelid。

channelid 的配置优先级

payload 主动配置的>管理后台配置的

41 title is blank Invalid Arguments SDK 默认会配置 title,除非在网易云信发送的消息或者自定义系统通知里面主动配置了 payload 的 pushtitle 字段为""这样的空字符 payload 的 pushtitle 字段,如果没有单独需要配置的内容,建议不传,走 SDK 默认的 title,如果希望自定义推送标题的话,建议配置 pushtitle 为非空字段
41 content is blank Invalid Arguments 网易云信发送自定义系统通知或者消息的时候没有配置推送的 pushcontent 的推送文案内容

需要推送的自定义系统通知或者消息建议主动配置 pushcontent 的推送文案内容,具体参数参考下面链接

链接:[KB0291] 关于 IM 推送的主要配置参数

41 sub_title max length is 10 Invalid Arguments

网易云信发送自定义系统通知或者消息的时候配置的 payload 里 oppofield 里面的 sub_title 字段超出限制

请参考《OPPO》通知栏消息

调整网易云信发送自定义系统通知或者消息的时候配置的 payload 的 oppofield 里面的 sub_title 字段长度
41 click_action_activity invalid Invalid Arguments

网易云信发送自定义系统通知或者消息的时候配置的 payload 里 oppofield 里面的 click_action_activity 字段不符合传参要求

请参考《OPPO》通知栏消息

调整网易云信发送自定义系统通知或者消息的时候配置的 payload 的 oppofield 里面的 click_action_activity 字段内容
10000 Invalid RegistrationId registration_id 格式不正确 一般是用户手机没有登录 oppo 账号导致 属于用户手机端问题,不需要处理

魅族推送

魅族推送错误码,请访问 魅族 GitHub 仓库魅族开放平台 PUSH 系统 HTTP 接口文档.pdf

错误码 指南针记录错误 魅族官网说明 网易云信错误说明 处理方案
3 authentication error 网易云信内部错误码 推送 Token 无效 一般是客户端推送配置与服务器配置不一致,建议检查对应的配置
500 标题不能为空 其他错误 SDK 默认会配置 title,除非在网易云信发送的消息或者自定义系统通知里面主动配置了 payload 的 pushtitle 字段为""这样的空字符 payload 的 pushtitle 字段,如果没有单独需要配置的内容,建议不传,走 SDK 默认的 title,如果希望自定义推送标题的话,建议配置 pushtitle 为非空字段
500 内容不能为空 其他错误 网易云信发送自定义系统通知或者消息的时候没有配置推送的 pushcontent 的推送文案内容

需要推送的自定义系统通知或者消息建议主动配置 pushcontent 的推送文案内容,具体参数参考下面链接

链接:[KB0291] 关于 IM 推送的主要配置参数

1006 签名认证失败 签名认证失败 网易云信控制台 上传的推送证书的 appsecret 错误 建议检查 网易云信控制台 配置的推送证书和魅族管理后台的推送证书配置保持一致
110000 110000:appId 不合法(pushAppId:xxxxxx) appId 不合法 网易云信控制台 上传的推送证书的 appid 错误 建议检查 网易云信控制台 配置的推送证书和魅族管理后台的推送证书配置保持一致
110003 invalid token pushid 非法 配置的推送证书有误 保证 [网易云信控制台](https://app.yunxin.163.com/global/home) 的推送证书信息,魅族管理后台的推送信息,以及客户端配置的推送证书信息一致

FCM 推送

更多有关 FCM 推送错误码,请访问 Firebase 官网

错误码 指南针记录错误 FCM 官网说明 网易云信错误说明 处理方案
3 authentication error 网易云信内部错误码 推送 Token 无效 一般是客户端推送配置与服务器配置不一致,建议检查对应的配置
4 connection error 网易云信内部错误码 请求 FCM 推送服务器异常 一般是 FCM 平台自身的推送服务器异常,多天连续出现可以反馈网易云信核实
200 NotRegistered

现有注册令牌在很多情况下都可能会失效,包括:

客户端应用自动撤消注册(用户卸载应用时可能发生此情况)。例如,在 iOS 中,APNs 反馈服务报告称 APNs 令牌无效。

对于所有这些情况,请从应用服务器中移除此注册令牌,并停止用其发送消息。

一般是用户卸载应用,或者覆盖安装应用之后,未上传新的推送 Token 建议检查最新是否有发布版本,更新了 FCM 推送相关的配置导致推送 Token 没有生成上报
200 MismatchSenderId 一个注册令牌与一组特定的发送者关联。当客户端应用注册 FCM 时,必须指定允许哪些发送者发送消息。在向客户端应用发送消息时,您应当使用这些发送者 ID 之一。如果您改用其他发送者,则现有的注册令牌将不起作用。 管理后台配置的推送证书的信息和 FCM 后台的推送信息不一致 建议检查 网易云信控制台 配置的推送证书和 FCM 管理后台的推送证书配置保持一致
200 InternalServerError 内部服务器错误 FCM 服务器内部异常 出现较多的情况下,建议主动联系 FCM 的同事处理
200 InvalidRegistration 检查您传送至服务器的注册令牌格式。确保它与客户端应用在注册 Firebase 通知时获得的注册令牌匹配。不能截断或添加其他字符。 网易云信控制台 配置的推送证书的信息和 FCM 后台的推送信息不一致 建议检查 网易云信控制台 配置的推送证书和 FCM 管理后台的推送证书配置保持一致
400 INVALID_ARGUMENT 将资料讯息传送至装置时,系统必须将优先顺序设为 5 或者一般优先顺丰。传送优先优先顺序高的讯息会遭 FCM 后端拒绝,并显示 INVALID_ARGUMENT 错误。 payload 参数错误

建议按照官网的示例配置 fcmfiled 字段的内容

推送消息自定义配置

401 http status code error

无法对用于发送消息的发送者帐号进行身份验证。可能的原因如下:

授权标头缺失或 HTTP 请求中使用了无效的语法。

指定的服务器密钥所属的 Firebase 项目不正确。

仅限旧版服务器密钥 - 从服务器发出的请求不在服务器密钥 IP 白名单中。

检查您在身份验证标头内部发送的令牌是不是与您的项目关联的正确的服务器密钥。请参阅检查服务器密钥的有效性了解详情。如果您使用的是旧版服务器密钥,建议您升级到没有 IP 限制的新密钥。请参阅迁移旧版服务器密钥。

客户端的 FCM 推送版本较新,网易云信控制台 的推送证书仍是旧版本

建议 网易云信控制台 重新上传新版本的 FCM 推送证书,并且客户端的 fcmbaseSDK 版本按照官网更新日志的版本对应配置

NIM SDK 开发版更新日志

403 PERMISSION_DENIED - 网易云信控制台 配置的推送证书权限异常 建议检查 网易云信控制台 配置的推送证书和 FCM 管理后台的推送证书配置保持一致,以及 FCM 后台的推送证书权限是否正常
404 NOT_FOUND - 客户端没有依赖 SDK 获取 Token,主动调用 onNewToken 的方式刷新了客户侧的 Token,或者用户主动清理了本地数据缓存,导致之前的推送 Token 失效 除网易云信外,如果还有集成第三方 FCM 推送或者业务层主动对接了 FCM 的话,建议按照推送兼容性保证其他平台继承网易云信的推送广播。如果没有第三方推送接入出现,客户侧正常重新登录就可以上报最新的推送 Token 到网易云信的。
500 INTERNAL 服务器在尝试处理请求时遇到错误。您可按照 超时 中的要求重试同一请求(请参阅上一行)。如果错误仍然存在,请联系 Firebase 支持团队。 FCM 服务器自身处理逻辑异常

可以主动联系 FCM 的 Firebase 支持 团队处理

502 http status code error

服务器无法及时处理请求。重试同一请求,但您必须:

如果 FCM 连接服务器发出的响应中包含 Retry-After 标头,则应在该标头指明的间隔后重试。

在您的重试机制中实现指数退避。(例如,如果等待一秒钟后进行第一次重试,则至少要等待两秒钟再进行下一次重试,然后等待四秒钟,依此类推)。如果您要发送多条消息,请分别将每条消息延迟额外的随机时长,从而避免同时为所有消息发出新的请求。

导致出现问题风险的发送者将被列入屏蔽名单。

FCM 服务器自身处理逻辑异常

可以主动联系 FCM 的 Firebase 支持 团队处理

此文档是否对你有帮助?
有帮助
去反馈
  • APNs 推送
  • 华为推送
  • 荣耀推送
  • 小米推送
  • VIVO 推送
  • OPPO 推送
  • 魅族推送
  • FCM 推送