API网关错误码表。
1. API网关错误码表(VPC实例)
本章节的错误代码表适用于VPC共享实例/Serverless实例
和VPC专享实例
。
当客户端收到的应答中
X-Ca-Error-Code
头不为空,表示应答码由API网关产生,错误码由一个6位长度的字符描述,请参考下表,而X-Ca-Error-Message
表示错误的应答信息,用于描述该场景下更详细的一些错误信息。如果
X-Ca-Error-Code
头为空,则表示这个HTTP应答码由后端服务产生,API网关透传了来自后端的错误信息。
错误代码 | HTTP状态码 | Message | 描述 |
I400HD | 400 | Invalid Header `${HeaderName}` ${Reason} | HTTP请求头非法 |
I400MH | 400 | Header `${HeaderName}` is Required | 缺少HTTP请求头 |
I400BD | 400 | Invalid Body: ${Reason} | HTTP请求包体非法 |
I400PA | 400 | Invalid Request Path `${Reason}` | HTTP请求路径非法 |
I405UM | 405 | Unsupported Method `${Reason}` | 不支持的HTTP请求方法 |
I400RU | 400 | Invalid Request Uri `${Reason}` | HTTP请求URL非法 |
I403PT | 403 | Invalid protocol ${Protocol} unsupported | 使用了API配置中不支持的协议,请检查API配置的协议 |
I413RL | 413 | Request body too Large | 请求包体过长,相关限制参考使用限制 |
I413UL | 413 | Request URL too Large | 请求URL过长,相关限制参考使用限制 |
I400CT | 400 | Invalid Content-Type: `${Reason}` | 非法的`Content-Type` |
I404DO | 404 | Invalid Domain `${DomainName}` | 未知的请求域名,请使用绑定的域名进行调用 |
I410GG | 410 | Group's instance invalid | 请求了非法的实例,分组可能已经不属于当前实例 |
I400SG | 400 | Invalid Stage | 请求了未知的环境 |
I404NF | 404 | API not found ${Reason} | 根据请求的`Path`,`Method`在当前的环境中未找到API,请参考I404NF错误码排查 |
X400PM | 400 | Invalid plugin meta ${PluginName} ${Reason} | 插件元数据非法 |
X500ED | 500 | Expired api definition | 过期的老版本元数据已经不被新版本API网关支持,需要提交工单修改老版本元数据 |
X500AM | 500 | Invalid Api Meta, try deploy again or contact us via ticket | 保存的元数据定义格式错误,需要提交工单修复 |
X403DG | 403 | Bad Domain or Group: ${Reason} | 分组数据非法 |
B451DO | 451 | Unavailable Domain for Legal Reasons | 域名因法律法规问题被禁 |
B451GO | 451 | Unavailable Group for Legal Reasons | 分组因法律法规问题被禁 |
B403OD | 403 | Provider Account Overdue | API提供方欠费,若是云市场购买的API,请联系服务商处理 |
A401AC | 401 | Invalid AppCode ${Reason} | 当使用AppCode模式授权时,未找到AppCode,请核实App是否授权,AppCode是否有误 |
A400IK | 400 | Invalid AppKey | 当使用`Key/Secret`签名授权时,未找到AppKey |
A403IS | 403 | Invalid Signature, Server StringToSign:`${StringToSign}` | 签名不匹配,排查请参考Invalid Signature |
A403EP | 403 | App authorization expired | 授权已过期,请重新授权 |
A403PR | 403 | Plugin Authorization Needed | 需要插件授权 |
A400MA | 400 | Need authorization, `X-Ca-Key` or `Authorization: APPCODE ...` is required | 需要使用`Key/Secret`签名授权或`AppCode`授权 |
I400I5 | 400 | Invalid Content-MD5 ${Reason} | 不匹配的`Content-MD5` |
I400NC | 400 | X-Ca-Nonce is required | 当设置了`使用X-Ca-Nonce防重放`选项时,必须提供`X-Ca-Nonce`头 |
S403NU | 403 | Nonce Used | 检测到请求重放,请求的`X-Ca-Nonce`头重复 |
S403TE | 403 | X-Ca-Timestamp is expired | `X-Ca-Timestamp`头中提供的时间戳已过期,时间戳有效期15分钟 |
I400MP | 400 | Parameter `${ParameterName}` is required | API中配置的必填参数未传值 |
I400IP | 400 | Invalid parameter `${ParameterName}` ${Reason} | API中配置的参数值非法 |
I400JR | 400 | JWT required | 未找到JWT参数 |
S403JI | 403 | Claim `jti` is required when `preventJtiReplay:true` | 当在`JWT授权插件`中配置了防重放功能时,请求未提供有效的`jti` |
A403SV | 403 | Claim `jti` in JWT is used | 当在`JWT授权插件`中配置了防重放功能时,请求提供的`jti`已被使用 |
I400JD | 400 | JWT Deserialize Failed: `${Token}` | 请求中提供的`JWT`解析失败 |
A403JT | 403 | Invalid JWT: ${Reason} | 请求中提供的`JWT`非法 |
A403JK | 403 | No matching JWK, `${kid}` not found | 请求`JWT`中的`kid`没有匹配的`JWK` |
A403JE | 403 | JWT is expired at `${Date}` | 请求中提供的`JWT`已过期 |
I400JP | 400 | Invalid JWT plugin config: ${JWT} | `JWT授权`插件配置错误 |
A403OL | 403 | OAuth2 Login failed: ${Reason} | |
A403OU | 403 | OAuth2 Get User Info failed: ${Reason} | |
A401OT | 401 | Invalid OAuth2 Access Token | |
A401OM | 401 | OAuth2 Access Token is required | |
T429ID | 429 | Throttled by INNER DOMAIN Flow Control, ${Domain} is a test domain, only 1000 requests per day | 当使用默认二级域名访问时,限制1000次/天,(海外Region及中国香港限制100次/天),请绑定正式域名以解除这个限制 |
T429IN | 429 | Throttled by INSTANCE Flow Control | 触发当前实例的流控限制,请升级实例规格 |
T429GR | 429 | Throttled by GROUP Flow Control | 触发当前分组的流控限制,请升级实例规格 |
T429PA | 429 | Throttled by API Flow Control | 触发插件上的默认API流控 |
T429PR | 429 | Throttled by PLUGIN Flow Control | 触发插件的特殊流控 |
T429SR | 429 | Throttled by SERVER Flow Control | |
T429MR | 429 | Too Many Requests, throttle by `${Description}` | |
A403IP | 403 | Access denied by IP Control Policy | 被`IP访问控制插件`阻止访问 |
A403IN | 403 | Access from internet is disabled ${Reason} | `API`或`API分组`禁止从公网访问,请从内网调用,文档参考私网调用API |
A403VN | 403 | Access from invalid VPC is disabled | 来源VPC被阻止 |
A403AC | 403 | Access Control Forbidden by ${RuleName} | 被`授权控制`插件阻止 |
A403CO | 403 | Cross origin resource forbidden ${Domain} | 被CORS策略阻止访问 |
I404CO | 404 | Cross origin resource not found ${Method} - ${Path} | 根据CORS预检请求中的Path与Method,无法找到API定义 |
I404CH | 404 | Content not cached, with `Cache-Control:only-if-cached` | |
I404NR | 404 | ${Resource} not found | |
I404SR | 404 | Stage route missing: ${Reason} | |
B403MO | 403 | Api Market Subscription overdue | API提供商欠费,请联系服务商处理 |
B403MQ | 403 | Api Market Subscription quota exhausted | 购买的云市场API配额已耗尽,请续费次数 |
B403ME | 403 | Api Market Subscription expired | API订购关系已过期,请重新订购 |
B403MI | 403 | Api Market Subscription invalid | API市场订购关系非法 |
D504RE | 504 | Backend domain `${Domain}` resolve failed | 后端域名解析失败,请核实后端域名解析 |
D504IL | 504 | Backend domain `${Domain}` resolve to illegal address `${Address}` | 后端域名解析结果非法 |
D504CO | 504 | Backend service connect failed `${Reason}` | 后端连接失败,请检查安全组、后端服务器启动状态、或防火墙配置,排查可参考D504CO错误码排查 |
504 | Backend service connect failed `Connection lease request time out` | API网关实例后端连接池不够用导致的后端连接失败,请升级实例规格 | |
D504CS | 504 | Backend http ssl connect failed `${Reason}` | 后端HTTPS连接失败,请检查后端配置的协议与端口是否匹配 |
D504TO | 504 | Backend service request timeout | API网关请求后端超时,请调整后端超时时间或提高后端服务响应速度 |
X504VE | 504 | Backend service vpc mapped failed | 后端VPC映射错误 |
D503BB | 503 | Backend circuit breaker busy | API被断路器阻止 |
D503CB | 503 | Backend circuit breaker open, ${Reason} | API处于熔断/断路器开状态,请检查后端性能 |
I508LD | 508 | Loop Detected | 检测到环回调用 |
I404DD | 404 | Device id ${DeviceId} not found | 当使用WebSocket双向通信调用时,DeviceId未找到 |
A403FC | 403 | Function Compute AssumeRole failed ${RequestId}:${Reason} | 后端是函数计算时授权错误 |
D502FC | 502 | Function Compute response invalid: ${Reason} | 后端是函数计算时,来自后端的应答非法 |
N502RE | 502 | Send Response IO Exception: ${Reason} | 发送应答给客户端时报错,常见于客户端提前关闭连接或网络错误 |
X500ER | 500 | Service Internal Error | 服务器内部错误,请提交工单联系工作人员 |
X503BZ | 503 | Service Busy | API网关服务忙,请稍后再试 |
X504TO | 504 | Service timeout | API网关处理超时,请提交工单联系工作人员 |
部分错误代码可能随着升级或新功能的加入而改变。
2. 管控OpenAPI错误代码表
当您调用API网关开放的管控OpenAPI时,如CreateAPI、ModifyAPI、DeleteAPI等,您可能遇到以下错误码。
2.1. 服务端错误码
HttpCode为5xx,表示服务不可用。此时建议重试。
错误代码 | 描述 | HTTP 状态码 | 语义 | 解决方案 |
ServiceUnavailable | The request has failed due to a temporary failure of the server. | 503 | 服务不可用 | 建议重试。 |
InternalError | The request processing has failed due to some unknown error, exception or failure. | 500 | 内部错误 | 建议重试。 |
2.2. 客户端错误码
HttpCode为4xx,表示业务错误。一般为参数错误、权限限制、业务逻辑错误等问题,此时需要仔细查看错误码,并针对性解决问题。
错误代码 | 描述 | HTTP 状态码 | 语义 | 解决 |
Repeated%s | The specified %s is repeated. | 400 | 某参数重复(%s 是占位符,实际调用会给出明确的参数名或提示。) | 建议按照提示修改重复的参数后重试。 |
RepeatedCommit | Resubmit request. | 400 | 请求重复 | 请不要频繁提交请求。 |
Missing%s | The %s is mandatory for this action. | 400 | 缺少参数 %s | 根据具体返回补充缺少的参数,重试请求。 |
MissingAppIdOrAppOwner | AppId or AppOwner must have a valid value. | 400 | 缺少参数 AppId 或者 AppOwner | 参数 AppId 和 AppOwner 不能同时为空。 |
Invalid%s | The specified parameter %s value is not valid. | 400 | 参数无效 | 根据返回提示的具体参数,查看相关参数约束,修改后重试。 |
NotFound%s | Cannot find resource according to your specified %s. | 400 | 找不到资源 | 根据指定的参数%s找不到资源,建议检查%s是否正确。 |
InvalidFormat%s | The specified parameter %s value is not well formatted. | 400 | 参数格式错误 | 建议根据实际返回提示,查看%s的格式要求,修改后重试。 |
Duplicate%s | The specified parameter %s value is duplicate. | 400 | 参数重复 | 某请求参数不允许重复,建议检查修正后重试。 |
DependencyViolation%s | The specified %s has %s definitions. | 400 | 参数依赖错误 | 指定参数被依赖,不能随意删除,请先解除依赖。 |
Forbidden%s | Not allowed to operate on the specified %s. | 403 | 无权操作/操作禁止 | 您无权执行该操作。 |
NoPermission | User is not authorized to operate on the specified resource. | 403 | 无权操作 | RAM 鉴权不通过。 |
ExceedLimit%s | The specified %s count exceeds the limit. | 400 | 超出个数限制 | 一般指用户账户下创建的 API、API 分组或者APP超出个数限制。 |
UserNotFound | The specified user can not be found. | 404 | 指定用户找不到 | 根据输入的用户信息找不到该用户。 |
DomainCertificateNotFound | Cannot find the domain certificate. | 400 | 指定域名证书不存在 | 建议检查传入的证书 ID 及名称。 |
DomainNotResolved | The specified domain has not been resolved. | 400 | 指定域名未解析 | 需要将指定域名 CNAME 解析到分组的二级域名上,才能完成绑定。域名解析是在用户域名购买的网站上操作。 |
InvalidICPLicense | The specified domain have not got ICP license, or the ICP license does not belong to Aliyun. | 400 | 域名备案不合格 | 要绑定的域名需要在阿里云做首次备案,已经在其他系统做备案的,需要在阿里云备案接入。备案接入需要获取备案号,在阿里云有 ECS 且具有公网 IP 的,每个 ECS 有5个备案号。 |
Invalid%s.LengthLimit | The parameter %s length exceeds the limit. | 400 | 长度超限 | 参数%s超出长度限制,建议修正后重试。 |
InvalidApiDefault | The ApiDefault value exceeds limit. | 400 | 流控插件 API 默认值超过限制值 | 该值数值不能超过1亿,与单位无关。 |
InvalidAppDefault | The AppDefault value must smaller than the UserDefault and ApiDefault. | 400 | AppDefault 的值不符合规则 | 该值需要小于 API 流控值和用户流控值。 |
InvalidUserDefault | The UserDefault value must bigger than the AppDefault and smaller than the ApiDefault. | 400 | UserDefault 的值不符合规则 | 该值需要小于 API 流控值并大于 APP 流控值。 |
InvalidParamMapping | Parameters must be fully mapped. | 400 | 参数映射无效 | 创建 API 时,前后端参数映射需要是全映射。即每个入参都需要配置后端参数名称。 |
InvalidOwnerAccount | OwnerAccount is invalid. | 400 | APP所有者账号无效 | 一般为操作授权时,输入目标用户的阿里云邮箱账号,该账号无效。建议检查修正后重试。 |
ServiceForbidden | Your Gateway service is forbidden by risk control. | 400 | API 网关服务被风控(应该使用户被风控吧) | 请注意不要频繁请求,建议稍后重试。 |
ServiceUnOpen | Your Gateway service has not been opened. | 400 | 服务未开通 | 建议到阿里云官网开通一下 API 网关服务。 |
ServiceInDept | Your API Gateway service is in dept. | 400 | (您的 API 网关)服务欠费 | 充值或者结算后重新开始使用。 |
EqualSignature | The new signature is the same as the old. | 400 | 新密钥与旧的相等 | 修改后端签名密钥时,新设置的 Key 和 Secret 不能跟原来的一样。 |
CertificateNotMatch | The domain does not match the one in the certificate. | 400 | 证书不匹配 | 指定域名与证书内域名不匹配。 |
CertificateKeyNotMatch | The certificate private key does not match the public key. | 400 | 证书密钥不匹配 | 证书的公钥和私钥不匹配。 |
PrivateKeyEncrypted | The certificate private key is encrypted, please upload the unencrypted version. | 400 | 密钥不能加密 | 证书私钥加密了,要求上传不加密的版本。 |
CertificateSecretKeyError | The certificate private key is invalid. | 400 | 证书私钥错误 | 建议检查后重新传入。 |
InvalidApiServiceAddress | The specified service address is not valid. | 400 | API 后端服务地址无效 | 配置的 API 后端服务地址无效。 |
2.3. 客户端公用错误码
HttpCode为4xx,调用全阿里云产品的OpenAPI均可能遇到,表示业务错误。一般为请求格式错误、请求方式错误、必填参数丢失、参数格式错误、签名错误、流控限制等问题。此时需查看具体错误码,针对性解决问题。
报错场景 | 错误码 | 错误提示 | 状态码 | 建议 |
API 找不到。 | InvalidApi.NotFound | Specified api is not found, please check your url and method. | 404 | 请检查指定的 action 接口名称是否正确,注意大小写区分。 |
缺少必填参数。 | Missing{ParameterName} | {ParameterName} is mandatory for this action. | 400 | 指定参数为必填参数,请传入。 |
AccessKeyId 找不到 | InvalidAccessKeyId.NotFound | Specified access key is not found. | 404 | 请检查调用时是否传入正确的 AccessKeyId。 |
AccessKeyId 被禁用。 | InvalidAccessKeyId.Inactive | Specified access key is disabled. | 400 | 检查 AK 是否可用。 |
时间戳格式不对(Date 和 Timestamp)。 | InvalidTimeStamp.Format | Specified time stamp or date value is not well formatted. | 400 | 检查时间戳。 |
用户时间和服务器时间超过15分钟。 | InvalidTimeStamp.Expired | Specified time stamp or date value is expired. | 400 | 检查时间戳。 |
SignatureNonce 重复 | SignatureNonceUsed | Specified signature nonce was used already. | 400 | |
返回值格式不正确。 | InvalidParameter.Format | Specified parameter format is not valid. | 400 | 仅支持 XML/JSON。 |
参数值校验不通过。 | Invalid{ParameterName} | Specified parameter {ParameterName} is not valid. | 400 | 请检查指定参数的值。 |
Http 请求方法不支持。 | UnsupportedHTTPMethod | Specified signature is not matched with our calculation. | 400 | 请检查请求Method。 |
签名方法不支持。 | InvalidSignatureMethod | Specified signature method is not valid. | 400 | 默认可以不填写该值。 |
签名不通过。 | SignatureDoesNotMatch | Specified signature is not matched with our calculation. | 400 | 签名不通过。 |
用户调用频率超限。 | Throttling.User | Request was denied due to user flow control. | 400 | 请稍后访问,降低访问频率。 |
API 访问频率超限。 | Throttling.API | Request was denied due to api flow control. | 400 | 请稍后访问,降低访问频率。 |
缺少AccessKeyId。 | MissingSecurityToken | SecurityToken is mandatory for this action. | 400 | 请检查是否传入有效AccessKeyId。 |