极光推送经常出现1003错误是什么问题

jpush
标签: #<Tag:0x00007fb85fdca0e0>

(明月我心) #1

不是一直有问题,有时出错有时没有

比如下面的错误

Message ID	2765676055
推送平台	android,ios-product
推送结果	发送失败(errcode:1003,errmsg:参数值不合法)
audience	{"tag":["郭锋"]}
notification	{"android":{"alert":"报警:母死淘率:1.95;\r\n2018/04/08\r\n养殖场:寒亭场;\r\n周龄:42-6;\r\n栋舍:寒亭10栋;\r\n报警级别:一级;","alert_type":1,"builder_id":0,"extras":{"TimeStamp":1523411495},"priority":0,"style":0},"ios":{"alert":"报警:母死淘率:1.95;\r\n2018/04/08\r\n养殖场:寒亭场;\r\n周龄:42-6;\r\n栋舍:寒亭10栋;\r\n报警级别:一级;","badge":"+1","content-available":true,"extras":{"TimeStamp":1523411495},"mutable-content":false,"sound":"default"}}
message	null
options	{"apns_production":true,"time_to_live":86400}

能否不出现这样的问题,购买vip是否可以解决?


#2

https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push/#platform

请严格根据文档参数说明

builder_id范围是 1~1000,如果你需求客户端收到就是默认的通知栏样式(编号为 0 的),则builder ID可以不写即为默认


(明月我心) #3

不是builder_id的问题,我是使用官方提供的C#的sdk发送的,其中并没有设置过什么builder_id,

而且成功发送的消息里builder_id也是0,比如

Message ID	36028798164106353
推送平台	android,ios-product
推送结果	已发送
audience	{"tag":["田马"]}
notification	{"android":{"style":0,"alert_type":1,"title":"胴体验收明细","builder_id":0,"alert":"养殖场:田马。\n 栋舍:田马5栋。\n 生产车间:铭基二线。\n 出成率:70.7%。\n 只数:9965。\n 胴体重量:15194.06。\n 毛鸡重量:21491。\n 毛鸡只均重:2.16。\n 小鸡:12。\n 死鸡:88。\n 备注:0265、0200、3590。\n \n ","priority":0,"extras":{"Category":"胴体验收明细","TimeStamp":1523434506,"Title":"胴体验收明细"}},"ios":{"sound":"default","content-available":true,"mutable-content":false,"alert":"养殖场:田马。\n 栋舍:田马5栋。\n 生产车间:铭基二线。\n 出成率:70.7%。\n 只数:9965。\n 胴体重量:15194.06。\n 毛鸡重量:21491。\n 毛鸡只均重:2.16。\n 小鸡:12。\n 死鸡:88。\n 备注:0265、0200、3590。\n \n ","extras":{"Category":"胴体验收明细","TimeStamp":1523434506,"Title":"胴体验收明细"},"badge":"+1"}}
message	null
options	{"time_to_live":"86400","apns_production":true}


#4

你有设置过 builder ID ,才会显示出来,所以请你去检查搜索你的代码,及 SDK 源码是否可能写了。

有严格校验的服务器会对此报错,所以请去掉他。


(明月我心) #5

有没有可能是短时间内发送太多消息造成的,因为存在消息内容参数都相同,只是目标tag不同,有的成功有的失败

我看了一下免费套餐和vip套餐的对比,其中有更多Push API调用次数项免费版是X,

是否免费版存在一定时间内调用api次数的限制?


#6

请相信我的判断,调用频率的限制报的错误不是 1003


(明月我心) #7

听你的,我改成1试试,如果以后没有这个错可能就是这个原因了,如果成功的话猜测可能发送是多个服务来做的,其中有的服务的版本可能不同


#8

注意 builderID的作用,是对应通知栏样式的。

如果你们只是要使用默认通知栏,就不要写 builder ID字段,则收到消息时就是默认通知栏

如果你们需要自定义下,设定了为1的通知栏,收到后,会根据你们客户端的设置展示。如果客户端没有定义 1 的通知栏,那么即便推送时传了 1 ,也会自动使用默认通知栏,也没有问题。

https://docs.jiguang.cn/jpush/client/Android/android_senior/#_8

之前是要求 builder ID兼容 0 的,但新上线的校验没有兼容,所以会出现这种有时报错有时不报错的情况。

这个问题我们还在探讨中,是否考虑新版也兼容 0

另外,如果依旧有这样的情况发生,则就是还有其他的参数没有满足要求,新上线的校验非常严格,参数格式等如果不符合要求就会报错

只要完全按照文档所说来配置就没有问题
https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push/

另外,我们对 1003 是会返回更详细的报错的,具体到某一个参数有问题。类似于:1003 sendno format is error ,可以尝试捕获下详细错误。


(明月我心) #9

嗯,在你们的源码里看到了这个变动


-        [JsonProperty("builder_id")]
-        public int BuilderId { get; set; }
+        [JsonProperty("builder_id", NullValueHandling = NullValueHandling.Ignore)]
+        public int? BuilderId { get; set; }


(靜ヌ見q ǐ変) #10

我这里是只要是标签推送就会出现1003 但是别名推送却不会 这是怎么回事


#11

根据说明排查


(靜ヌ見q ǐ変) #12

谢谢,找到问题了,参数不规范造成的