错误处理

本文介绍通道服务的错误格式定义和错误码信息。

通道服务在收到异常请求后,会返回protobuf格式错误以及HTTP状态码。

格式定义

protobuf错误格式如下:

message Error {
    required string code = 1;
    optional string message = 2;
    optional string tunnel_id = 3;
}

错误码

使用SDK时,只需要关心处理逻辑为“返回错误”的错误码,其余错误码会被SDK自动处理或重试,建议直接按相应处理逻辑处理错误码。

HTTP状态码

错误码

描述

处理逻辑

400

OTSParameterInvalid

API请求参数错误或数据表不存在。

返回错误。

400

OTSTunnelExpired

增量Tunnel或全量加增量Tunnel日志过期。

返回错误。

403

OTSPermissionDenied

无指定资源的访问权限。

返回错误。

409

OTSTunnelExist

待创建的Tunnel已经在服务端存在。

返回错误。

400

OTSSequenceNumberNotMatch

checkpoint序列号不匹配,通常是序列号滞后或者Channel消费有竞争。

通过checkpoint API重新获取checkpoint和序列号。

410

OTSResourceGone

Tunnel Client心跳超时。

使用TunnelID重新连接Tunnel Service。

503

OTSTunnelServerUnavailable

Tunnel服务内部错误。

退避重试。