文档中心 > 基础技术

异常排查及错误码

更新时间:2024/08/01 访问次数:510110

一、快速排查问题

1.快速排查问题流程图

 

111.png

 

附:API文档地址:查看

 

API测试工具地址:查看

错误码一览地址:查看

平台常见技术问题自助排查地址: 查看所有FAQ

支持中心操作文档:查看

 

流程图中问题详解

非API问题

 

开发者发送HTTP请求淘宝数据之前的出现的问题,包括淘宝业务问题,商务问题,容器类错误问题。

 

1)淘宝业务问题

① 业务规则问题,比如:商品或用户被处罚等;

② 在淘宝页面操作不成功的问题,比如:在淘宝后台无法查看出售中的商品等;

 

2)商务问题

① 应用接入问题,比如:一个开发者可以注册多少个应用等;

② 应用审核问题,比如:哪些应用不支持接入等;

③ 应用上线问题,比如:调用频率是如何限制的等;

 

3)容器类错误问题

通过容器,用户可以授权开发者获取其数据信息,主要是页面上错误码在100到200之间的错误。

 

API问题

 

开发者发送HTTP请求淘宝数据之后的出现的问题,包括HTTP连接错误问题,平台级错误问题,业务级错误问题,这三种类型的错误问题分别是在访问淘宝服务器,TOP接入平台,淘宝后端业务服务器这三个层次上出现的问题。

 

1)HTTP连接错误问题:

 

请求淘宝服务器过程中出现的错误,这类型错误通常由HTTP响应码标记出来,HTTP响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行。响应码分五种类型,由它们的第一位数字表示。

 

1xx:信息,请求收到,继续处理;

2xx:成功,行为被成功地接受、理解和采纳;

3xx:重定向,为了完成请求,必须进一步执行的动作;

4xx:客户端错误,请求包含语法错误或者请求无法实现;

5xx:服务器错误,服务器不能实现一种明显无效的请求;

 

开发者调用TOP服务最常收到就是200:http请求成功;404:未找到请求的服务;500内部服务器错误等。如果开发者收到的响应码是404,表示用户的网络有问题,如果开发者收到的响应码是响应码是500,表示网络是正常的但是top的服务无法响应。

 

如果是本地网络有问题可以直接输入命令行ping gw.api.taobao.com测试请求淘宝服务器的速度,如果速度很慢则要考虑服务器提速的问题,如果ping不通,则联系网络管理员确认服务器是否屏蔽淘宝域名。

 

2)平台级错误问题

请求TOP接入平台出现的错,此时TOP返回的错误码小于100,这种错误一般是由于用户的请求不符合权限,安全,流量和最基本的参数等校验引起的。

 

3)业务级错误问题

请求后端业务服务器出现的问题,返回的错误码在500到1000之间。具体的API子错误码及解决方案可参见对应API文档下面的错误码解释。

 

2. 排查问题思路

 

详细描述开发者发现以上问题之后的处理流程。

发现问题以后先定位问题类型,是淘宝店铺相关规则或者店铺功能操作类问题,可以咨询淘宝网服务中心:点击访问

如果是代码问题,按照一下思路判断

1)代码开发阶段,先查看报错日志的信息,是否代码本身编写问题或者网络问题, 代码编写问题可以通过网上搜索相关解决方案。

2)如果是API接口问题,先根据返回的错误码和报错信息,查看API文档和错误码文档,确认是否能直接解决;如无法解决,下一步可以通过API测试工具进行调用测试,看是否API测试工具正常调用接口。如不无法解决,可以提交工单反馈,工单信息中请提供测试工具截图和接口返回的requestid,方便问题排查。

3)线上运行阶段,突然出现异常,先检查部署服务器的CPU,内存、网络请求和load情况,确认机器是否正常。 如果是API接口问题,记录一下具体的请求的参数和返回的报错信息和requestid,提交工单进行反馈。

 

3. 快速排查问题范例

范例1

 

我从错误日志中分析出来taobao.item.recommend.add报isv.item-recommend-service- error:ERROR_MORE_THAN_ALLOWED_RECOMMEND_NUM(超过橱窗推荐总数)错误很多,该如何解决呢?

 

首先根据排查问题流程定位到API问题,再查看API文档中的错误码解决方案:

1)橱窗推荐的时候要求用户输入橱窗推荐总量,有的用户会多输,所以报橱窗推荐超过最大推荐数的错误,每天定时更新橱窗总量,橱窗总量=已推荐橱窗+剩余橱窗(不能完全杜绝这个错误);

2)开发者先调用taobao.shop.remainshowcase.get 接口获取卖家的剩余橱窗数,做好逻辑判断,再调用橱窗推荐的接口。

 

范例2

 

本地程序报连接重置错误且没有top的错误码返回,这类问题该如何解决?

 

建议:

1)合理切割任务,将任务粒度放小,减小事务时间,提高事务执行成功率,降低回滚代价;

2)合并任务中重复的内容,在时间间隔容许的范围内,减少可能重复的操作;

3)看是否有批量操作接口,减少单个循环调用次数;

4)控制工作线程池线程个数,根据实际性能和对方服务器处理能力设置并行任务个数;

线程并发开的越多未必成功率越高。

 

首先本地资源有限(开的越多线程,本地GC回收频率越高,影响执行速度,效率反而降低);

其次,对方可能会由于你的ip连接数过多主动拒绝连接;(DOS保护)

再次,信道无法复用。(当前1.6JDK版本已经能够较好的复用TCP信道,并发瞬间开大量的TCP信道本身就是一种损耗,有时候部分串行化,某种程度上会减少产生TCP信道的数目合理利用信道,提高效率和成功率,客户端做好流控也很重要)

 

范例3

 

网络丢包问题解决方案

问题背景:

1)由于互联网物理线路可靠性不是100%,ISV服务器到TOP之间的通信存在数据丢失情况;

2)开发者需要一种方法来验证每次访问取得的数据是不是完整的,有没有丢包;

3)目前有的ISV通过这样的方法校验完整性:连续多次调用API,并比较返回结果,若完全相同,则认为是完整的。这种方法不可靠(多次调用本来就有可能返回不同的业务结果),增加了ISV开发成本,也加重了TOP的服务器压力。

 

解决方案:

为了解决开发者反馈的ISV校验数据完整性的问题,TOP已经在HTTP Header中加入一个新的元素:top-bodylength。

使用方法:开发者取到这个top-bodylength的值,计算一下收到的HTTP Body长度,如果两者相等,则说明返回的数据是完整的,如果计算出来HTTP Body的长度小于top-bodylength的值,说明发生了丢包。

注:

① TOP没有改HTTP Body,所以,不会对已有应用造成任何影响。

② top-bodylength是表示HTTP Body的个String字符长度(不区分中文英文,都算作1个长度)。

 

二、错误码一览表

 

1.目前开发者调用API可能出现的错误有三类:API平台错误、ISV业务错误和容器类错误。下面介绍一下和ISV成功率有关的名词说明:

有效访问量=成功访问量+ISV业务错误 (成功访问指的是正常获取到数据并且无报错的调用)

ISV成功率=成功访问量/有效访问量

 

连接淘宝服务器错误主要是http连接错误或者连接被重置被拒绝等,这类错误是开发者访问淘宝服务器出现的问题,请直接联系服务器管理员或通过网络搜索答案。

 

1. API平台错误

 

API平台错误是主要包含两类错误:

(1)错误码小于100(不包含15,40,41错误码)的调用错误,这种错误一般是由于用户的请求不符合各种基本校验而引起的。用户遇到这些错误的返回首先检查应用的权限、频率等情况,然后参照文档检验一下传入的参数是否完整且合法。

(2)子错误码(sub_code)是"isp."开头的调用错误,这种错误一般是由于服务端异常引起的。用户遇到这类错误需要隔一段时间再重试就可以解决。

 

1)错误码小于100的平台级错误

 

错误码

错误描述-英文

错误描述-中文

解决方案

3

Upload Fail

图片上传失败

将传入的图片格式改为正确格式、适当的大小的图片放进消息体里面传输过来,如果传输仍然失败需要减小图片大小或者增加网络带宽进行尝试

7

App Call Limited

应用调用次数超限,包含调用频率超限

调整程序合理调用API,等限频时间过了再调用,具体可以点击查看

9

Http Action Not Allowed

HTTP方法被禁止

请用大写的POST或GET,如果有图片等信息传入则一定要用POST才可以

10

Service Currently Unavailable

服务不可用

多数是由未知异常引起的,仔细检查传入的参数是否符合文档描述。

11

Insufficient ISV Permissions

开发者权限不足

子错误码目前有

isv.permission-api-package-empty 没有和任何访问包关联,建议根据业务规则申请对应的权限

isv.permission-api-package-not-allowed 不允许访问不可访问组的API,建议检查一下自己申请的应用标签是否正确,如果确实需要访问不可访问组的API需要根据业务规则到对应的业务线申请权限 例如:买家不可访问组就会有一些订单API不允许买家应用访问

isv.permission-api-package-limit 关联的包中不允许访问该API,建议根据业务规则申请对应的权限

isv.permission-ip-whitelist-limit IP限制不允许访问,建议到安全中心配置正确的IP白名单

isv.permission-api-widget-only-limit 仅允许widget(组件)方式访问

12

Insufficient User Permissions

用户权限不足

应用没有权限调用增值权限的接口,可在淘宝合作伙伴后台提交权限申请

13

Insufficient Partner Permissions

合作伙伴权限不足

应用没有权限调用增值权限的接口,可在淘宝合作伙伴后台提交权限申请

15

Remote service error

远程服务错误

远程服务错误,如果是TOP接口请咨询对接的小二,如果是奇门接口请咨询服务提供方,具体可以在支持中心提交问题

21

Missing Method

缺少方法名参数

传入的参数加入method字段

22

Invalid Method

不存在的方法名

传入的method字段必需是你所调用的API的名称,并且该API是确实存在的

23

Invalid Format

无效数据格式

传入的format必需为json或xml中的一种

24

Missing Signature

缺少签名参数

传入的参数中必需包含sign字段

25

Invalid Signature

无效签名

签名必需根据正确的算法算出来的。算法请见:查看

26

Missing Session

缺少SessionKey参数

传入的参数中必需包含session字段

27

Invalid Session、 unmix-sessionkey-failure

无效的SessionKey参数

传入的session必需是用户绑定session拿到的,如果报session不合法可能是用户没有绑定session或session过期造成的,用户需要重新授权一下然后传入新的sessionKey

28

Missing App Key

缺少AppKey参数

传入的参数必需包含app_key字段

29

Invalid App Key

无效的AppKey参数

应用所处的环境跟选择的环境不一致,例如:应用处于沙箱测试环境,却选择在正式环境进行测试。

30

Missing Timestamp

缺少时间戳参数

传入的参数中必需包含timestamp参数

31

Invalid Timestamp

非法的时间戳参数

时间戳,格式为yyyy-mm-dd hh:mm:ss,例如:2008-01-25 20:23:30。淘宝API服务端允许客户端请求时间误差为10分钟

32

Missing Version

缺少版本参数

传入的参数中必需包含v字段

33

Invalid Version

非法的版本参数

用户传入的版本号格式错误,必需为数字格式

34

Unsupported Version

不支持的版本号

用户传入的版本号没有被提供

42

Insufficient session permissions

短授权权限不足

调用的是高危API,请参考安全等级文档

43

Parameter Error

参数错误

一般是用户传入参数非法引起的,请仔细检查入参格式、范围是否一一对应

44

Invalid access token

无效的access token

一般是用户使用top协议获取的sessionkey当做access token通过https方式调用API或调用环境搞错

47

Invalid encoding

编码错误

一般是用户做http请求的时候没有用UTF-8编码请求造成的

 

2)平台级子错误

 

子错误码格式

错误信息

归属方

是否可在程序中重试

isp.***-service-unavailable

调用后端服务***抛异常,服务不可用

ISP

isp.remote-service-error

连接远程服务错误

ISP

isp.remote-service-timeout

连接远程服务超时

ISP

isp.remote-connection-error

远程连接错误

ISP

isp.null-pointer-exception

空指针异常错误

ISP

isp.top-parse-error

api解析错误(出现了未被明确控制的异常信息)

ISP

isp.top-remote-connection-timeout

top平台连接后端服务超时

ISP

isp.top-remote-connection-error

top平台连接后端服务错误,找不到服务

ISP

isp.top-mapping-parse-error

top-mapping转换出错,主要是由于传入参数格式不对

ISP

isp.unknown-error

top平台连接后端服务抛未知异常信息

ISP

 

2. ISV业务错误

 

1)ISV业务级错误是ISV传入的参数缺失,有误或格式错误等原因造成的错误。因此isv应该根据错误信息检验是否传入了相应的信息,对于这一类错误建议改正后再重试。

主要包含两类:

① 错误码为40,41的错误;40主要是必填参数没有传入报错,41主要是传入的参数格式不对报错。

② 错误码大于100或者等于15且子错误码(sub_code)是"isv."开头【( 错误码 > 100 or 错误码 = 15 ) and (isv开头)】的调用错误。

 

2)错误响应是用户和服务器交互失败的最直接展示,isv在调用top服务时,如果调用失败,请尽量保留下错误日志以便进行后面的错误追查。

 

3) 40/41错误介绍

 

错误码

错误描述-英文

错误描述-中文

解决方案

40

Missing Required Arguments

缺少必选参数

API文档中设置为必选的参数是必传的,请仔细核对文档

41

Invalid Arguments

非法的参数

参数类型不对,例如:需要传入的是数字类型的,却传入了字符类型的参数

 

4)业务级子错误

 

子错误码格式

错误信息

归属方

是否可在程序中重试

isv.###-not-exist:***

根据***查询不到###

ISV

isv.missing-parameter:***

缺少必要的参数***

ISV

isv.invalid-paramete:***

参数***无效,格式不对、非法值、越界等

ISV

isv.invalid-permission

权限不够、非法访问

ISV

isv.parameters-mismatch:***-and-###

传入的参数***和###不匹配,两者有一定的对应关系

ISV

isv.***-service-error:###

调用***服务返回false,业务逻辑错误,###表示具体的错误信息

ISV

 

3. 安全等级和安全漏洞错误码

 

1)父错误码信息

 

错误码

英文描述

中文描述

解决方案

53

Insufficient security level

安全等级不足

提高应用安全等级或刷新授权安全等级

 

2)子错误码信息

 

子错误码信息

中文描述

归属方

解决方案

high-risk security breach

存在高危安全漏洞

ISV

解决安全漏洞后重新发布

mid-risk security breach

存在中级安全漏洞

ISV

解决安全漏洞后重新发布

R1 security authorize missing

未进行R1级别授权

ISV

进行R1级别授权(用户重新授权或刷新授权)

R1 security authorize invalid

R1级别授权过期

ISV

进行R1级别授权(用户重新授权或刷新授权)

R2 security authorize missing

未进行R2级别授权

ISV

进行R2级别授权(用户重新授权或刷新授权)

R2 security authorize invalid

R2级别授权过期

ISV

进行R2级别授权(用户重新授权或刷新授权)

W1 security authorize missing

未进行W1级别授权

ISV

进行W1级别授权(用户重新授权或刷新授权)

W1 security authorize invalid

W1级别授权过期

ISV

进行W1级别授权(用户重新授权或刷新授权)

W2 security authorize invalid

未进行W2级别授权

ISV

进行W2级别授权(用户重新授权或刷新授权)

W2 security authorize invalid

W2级别授权过期

ISV

进行W2级别授权(用户重新授权或刷新授权)

 

4. 其它特有错误码

 

错误码

错误码描述

801

APP请求所带的参数错误,一般是缺失必要参数

802

如果协议要求签名,签名错误

803

时间戳校验不过,和服务端时间差距不能超过5分钟

 

FAQ

关于此文档暂时还没有FAQ
返回
顶部