全局错误码速查

测试中公众号 · 服务号 · 小程序 · 小游戏 · 开放平台errcode · errmsg

公众号 / 小程序服务端接口的全局返回码一页查完,按码、errmsg、中文描述或分类过滤,常见码带"先查什么"。

公众号 / 小程序服务端接口共用的全局返回码。输入错误码、errmsg 关键字或中文描述过滤;带"先查什么"的是我们确认过排查顺序的码。

errcode官方说明errmsg先查什么
-1系统繁忙,此时请开发者稍候再试system error微信侧临时故障。重试一次;持续出现看开放社区公告。注意换新的 code / 参数重试,不要原样重放。
0请求成功ok—
40001获取 access_token 时 AppSecret 错误,或者 access_token 无效invalid credential两种情况:换 token 时 secret 错(核对后台是否重置过);调接口时 token 已被别处刷新(多实例各自取 token 会互相顶掉,要集中缓存)。
40002不合法的凭证类型invalid grant_typegrant_type 固定:换 access_token 用 client_credential,网页授权 / 登录用 authorization_code。
40003不合法的 OpenIDinvalid openidopenid 是按 appid 隔离的:公众号的 openid 不能给小程序用,测试号的不能给正式号用。
40004不合法的媒体文件类型invalid media typetype 只能是 image / voice / video / thumb,且与文件实际格式匹配。
40007不合法的媒体文件 idinvalid media_id临时素材 3 天过期;media_id 也按 appid 隔离。
40008不合法的消息类型invalid message type—
40013不合法的 AppIDinvalid appidappid 拼错 / 带空白 / 大小写不对 / 用了别的账号的。接口先校验 appid,它不对时别的错误都不会报。
40014不合法的 access_tokeninvalid access_token最常见是 token 被别的实例刷新了,或者用了另一个 appid 的 token。集中缓存、只在一处刷新。
40015不合法的菜单类型invalid button type没有 sub_button 的按钮必须有 type。
40016不合法的按钮个数invalid button size一级菜单最多 3 个。
40017不合法的按钮类型invalid button typetype 拼写,如 click / view / miniprogram。
40018不合法的按钮名字长度invalid button name size一级 16 字节(5 个汉字),二级 60 字节。
40019不合法的按钮 KEY 长度invalid button key sizekey 最多 128 字节。
40020不合法的按钮 URL 长度invalid button url sizeurl 最多 1024 字节。
40023不合法的子菜单按钮个数invalid sub_button size每个一级菜单下最多 5 个。
40029不合法的 oauth_code / code 无效invalid codecode 只能用一次、5 分钟过期,且必须和签发它的 appid 配对。
40033不合法的请求字符,不能包含 \uxxxx 格式的字符invalid charsetJSON 序列化时关掉 Unicode 转义(如 PHP 的 JSON_UNESCAPED_UNICODE),emoji 直接 UTF-8。
40035不合法的参数invalid parameter—
40037不合法的模板 idinvalid template_id模板 id 按账号隔离;从后台"我的模板"复制,不要用文档示例。
40038不合法的请求格式invalid request format要 POST JSON,Content-Type 不影响但 body 必须是合法 JSON。
40039不合法的 URL 长度invalid url size—
40048无效的 urlinvalid url域名要在后台"业务域名 / JS 接口安全域名"里。
40054不合法的子菜单按钮 urlinvalid sub button url要 http(s):// 开头。
40066不合法的 urlinvalid url—
40125无效的 appsecretinvalid appsecretsecret 与 appid 不是一对,或后台重置过。
40163oauth_code 已使用code been used网页授权的 code 被用了第二次:多半是页面刷新或前端重复请求。
40164调用接口的 IP 地址不在白名单中invalid ip not in whitelist后台"IP 白名单"加上服务器出口 IP;用了代理 / NAT 时出口 IP 可能不是机器本身的。
41001缺少 access_token 参数access_token missingaccess_token 放在 URL query 里,不是 body。
41002缺少 appid 参数appid missingappid 为空:多半环境变量没读到。
41003缺少 refresh_token 参数refresh_token missing—
41004缺少 secret 参数appsecret missing—
41005缺少多媒体文件数据media data missing上传素材要 multipart/form-data,字段名 media。
41006缺少 media_id 参数media_id missing—
41007缺少子菜单数据sub_menu data missing—
41008缺少 oauth codemissing code小程序登录参数名是 js_code,网页授权是 code。
41009缺少 openidopenid missing—
41030page 路径不正确invalid page不带开头 /;页面必须在已发布版本里(或 check_path=false)。
42001access_token 超时access_token expiredtoken 有效期 7200 秒,提前刷新(如 7000 秒)并缓存。
42002refresh_token 超时refresh_token expired网页授权 refresh_token 有效期 30 天。
42003oauth_code 超时code expiredcode 5 分钟过期。
42007用户修改微信密码,access_token 和 refresh_token 失效,需要重新授权access_token and refresh_token exception—
43001需要 GET 请求require GET method—
43002需要 POST 请求require POST method—
43003需要 HTTPS 请求require https—
43004需要接收者关注require subscribe客服消息 / 模板消息只能发给关注了公众号的用户。
43005需要好友关系require friend relation—
43019需要将接收者从黑名单中移除require remove blacklist—
43101用户拒绝接受消息user refuse to accept the msg订阅消息:用户没订阅这条模板,或订阅次数已用完。一次性订阅一次只能发一条。
44001多媒体文件为空empty media data—
44002POST 的数据包为空empty post databody 没发出去:检查 Content-Length,或框架把 JSON 放到了 form 里。
44003图文消息内容为空empty news data—
44004文本消息内容为空empty content—
45001多媒体文件大小超过限制media size out of limit图片 10M(缩略图 64K)、语音 2M、视频 10M。
45002消息内容超过限制content size out of limit文本客服消息 2048 字节。
45003标题字段超过限制title size out of limit—
45004描述字段超过限制description size out of limit—
45005链接字段超过限制url size out of limit—
45006图片链接字段超过限制picurl size out of limit—
45007语音播放时间超过限制playtime out of limit—
45008图文消息超过限制article size out of limit—
45009接口调用超过限制reach max api daily quota limit每日调用次数用完。access_token 每天 2000 次,客服消息 50 万次等;看"接口权限"页的当日用量,可以调 clear_quota 清零(每月 10 次)。
45010创建菜单个数超过限制menu count out of limit—
45011API 调用太频繁,请稍候再试api minute-quota reach limit分钟级频率限制,多半是登录 / 重试进了循环。
45015回复时间超过限制response out of time limit or subscription is canceled客服消息只能在用户 48 小时内有互动的情况下发。
45047客服接口下行条数超过上限out of response count limit用户一次互动后最多回 20 条。
45064创建菜单包含未关联的小程序invalid weapp appid先在公众号后台"小程序管理"里关联该小程序。
45065相同 clientmsgid 已存在群发记录,返回数据中带有已存在的群发任务的 msgidclientmsgid exist—
45066相同 clientmsgid 重试速度过快,请间隔 1 分钟重试clientmsgid too fast—
45067clientmsgid 长度超过限制clientmsgid size out of limit—
46001不存在媒体数据media data missing—
46002不存在的菜单版本invalid menu version—
46003不存在的菜单数据menu no exist还没创建过菜单就去查 / 删。
46004不存在的用户invalid openid—
47001解析 JSON/XML 内容错误data format errorbody 不是合法 JSON:单引号、尾逗号、注释、BOM 头都会导致。
47003模板参数不准确,可能为空或者不满足规则argument invalid订阅消息字段类型和长度限制(thing 20 字、number 32 位纯数字等),字段要包成 { value },不能缺、不能多。
48001api 功能未授权,请确认公众号已获得该接口api unauthorized接口权限与账号类型 / 认证状态相关:订阅号没有网页授权、模板消息等;未认证服务号也缺一批。看后台"接口权限"页。
48002粉丝拒收消息(粉丝在公众号选项中,关闭了"接收消息")user block receive message—
48004api 接口被封禁,请登录 mp.weixin.qq.com 查看详情api forbidden for irregularities—
48005api 禁止删除被自动回复和自定义菜单引用的素材forbidden delete material—
48006api 禁止清零调用次数,因为清零次数达到上限forbidden clear quota—
48008没有该类型消息的发送权限no permission for this msgtype—
50001用户未授权该 apiuser unauthorized网页授权 scope 不够(snsapi_base 拿不到用户信息),或第三方平台未被授权该权限集。
50002用户受限,可能是违规后接口被封禁user limited—
50005用户未关注公众号user not subscribe—
61451参数错误 (invalid parameter)invalid parameter—
61452无效客服账号 (invalid kf_account)invalid kf_account—
61453客服帐号已存在 (kf_account exsited)kf_account exsited—
61454客服帐号名长度超过限制(仅允许 10 个英文字符,不包括 @ 及 @ 后的公众号的微信号)invalid kf_acount length—
61455客服帐号名包含非法字符(仅允许英文 + 数字)illegal character in kf_account—
61456客服帐号个数超过限制(10 个客服账号)kf_account count exceeded—
61457无效头像文件类型 (invalid file type)invalid file type—
61450系统错误 (system error)system error—
61500日期格式错误date format error统计接口日期格式 YYYY-MM-DD,且 begin_date 与 end_date 跨度有上限(多为 7 天或 1 天)。
63001部分参数为空some parameter is empty—
63002无效的签名invalid signatureJS-SDK / 消息签名算法问题,看站内签名调试器。
65301不存在此 menuid 对应的个性化菜单menuid not exist—
65302没有相应的用户user not exist—
65303没有默认菜单,不能创建个性化菜单no default menu先用 menu/create 建默认菜单。
65304MatchRule 信息为空matchrule empty—
65305个性化菜单数量受限conditional menu count limit—
65306不支持个性化菜单的帐号account not support conditional menu—
65307个性化菜单信息为空conditional menu empty—
65308包含没有响应类型的 buttonbutton without type—
65309个性化菜单开关处于关闭状态conditional menu switch off—
65310填写了省份或城市信息,国家信息不能为空country empty—
65311填写了城市信息,省份信息不能为空province empty—
65312不合法的国家信息invalid country—
65313不合法的省份信息invalid province—
65314不合法的城市信息invalid city—
65316该公众号的菜单设置了过多的域名外跳(最多跳转到 3 个域名的链接)too many domainsview 类型按钮的 url 最多 3 个不同域名。
65317不合法的 URLinvalid url—
87009无效的签名invalid signature开放平台 / 小程序侧的签名错误,多与 JS-SDK 或消息推送签名有关。
9001001POST 数据参数不合法invalid post data—
9001002远端服务不可用remote service unavailable—
9001003Ticket 不合法invalid ticket—
9001004获取摇周边用户信息失败—
9001005获取商户信息失败—
9001006获取 OpenID 失败—

依据官方《全局返回码说明》,2026-09 查看。微信支付、企业微信有各自独立的错误码体系,不在这张表里。