记录排查GLM 500错误的过程(Insufficient balance)

PeterZhong 2026-06-26 20:48 1

最后排查出来其实是一个很简单的问题,但是排查了两天过程中却是一直没想到这个方面,因此在此记录以便自己以后回顾,以及方便遇到同样情况的佬参考,减少时间浪费。



1 问题描述


Claude Code通过CC Switch和NewAPI两个中间层接入GLM一直报500错误,错误100%稳定复现,具体报错信息如下



Insufficient balance or no resource package. Please recharge.



同一个请求在Claude Code、CC Switch和NewAPI三层的控制台中都能看到同样的错误信息


2 解决方法


为方便佬们参考,先列解决办法,后面再详细说原因分析。有3种解决方法,任意选一种即可:



  1. CC Switch中连接NewAPI的API格式改为Anthropic Messages(原生)

  2. NewAPI中的接口类型不选智谱,也不选智谱V4,而选Anthropic,相应填入URL为https://open.bigmodel.cn/api/anthropic

  3. 【推荐】NewAPI中的接口类型不选智谱,也不选智谱V4,而选自定义(图标是OpenAI的那个),相应填入URL为https://open.bigmodel.cn/api/coding/paas/v4/chat/completions


3 原因分析


3.1 原始报错原因


CC Switch中连接NewAPI采用的是OpenAI Chat Completions,而NewAPI平台上连接GLM采用的是智谱v4的接口类型。采用该接口类型时,根据NewAPI源码,该接口默认的请求地址为https://open.bigmodel.cn/api/paas/v4/chat/completions,是用于按量计费的API的,不是Coding Plan,而按量计费账户里面没有余额,因此提示“余额不足”。Coding Plan的请求地址为https://open.bigmodel.cn/api/coding/paas/v4,一般配置时直接复制粘贴过去都极少留意了,挺难看出来的。


关于这个易混淆的地址配置问题,智谱官方也有在文档中强调,确实是我不仔细阅读文档的问题了。



3.2 方法一成功原因


CC Switch中选择Anthropic Messages(原生)格式请求后,NewAPI向GLM发出的请求地址为https://open.bigmodel.cn/api/anthropic/v1/messages,按量计费API和Coding Plan的Anthropic格式接口都是走这一个端口,因此不会出问题。


但是此方法存在一定风险,因为按量计费与Coding Plan走的同一个端口,所以当Coding Plan周期额度用光之后还发起请求就会消耗按量计费的余额,如果碰巧平台上存入了余额,没两下就挥霍干净了。(别问我怎么知道的)


flowchart LR
cc[Claude Code]
new[New API]
glm[GLM]
cc --Anthropic---> new --Anthropic---> glm

3.3 方法二成功原因


原因跟方法一类似,但是因为上游选了Anthropic格式,因此NewAPI层会完成请求格式转换,因此即使CC Switch仍然使用OpenAI格式,NewAPI也会转换为Anthropic格式并成功地发起请求。同理,此方法也有可能误用按量计费的余额,因此也不是很推荐。


flowchart LR
cc[Claude Code]
new[New API]
glm[GLM]
cc --任意格式---> new --Anthropic---> glm

3.4 方法三成功原因


直接都用ChatCompletion的格式,但是又不是标准的OpenAI地址,而是智谱特有的v4,所以只能在NewAPI上使用支持完整自定义API地址的类型,将完整的API地址写上,注意地址要带上/v4/chat/completions的结尾,这种情况相爱无论Claude Code以什么样的协议发出请求,NewAPI都会转换为以OpenAI Chat Completions格式向GLM发起请求,因此能够成功访问。同时因为使用的是Coding Plan专属接口,所以理论上GLM后台设置恰当的情况下不会无缘无故消耗按量计费那边的余额。


flowchart LR
cc[Claude Code]
new[New API]
glm[GLM]
cc --任意格式---> new --非标OpenAI ChatCompletions---> glm

总结



  1. Claude Code与NewAPI之间支持多种格式的请求,而NewAPI和GLM之间仅支持标准的Anthropic格式和非标准的OpenAI ChatCompletions格式

  2. 智谱的OpenAI ChatCompletions接口是将按量API和Coding Plan分开的,用的两个不同的接口,但是Anthropic格式两者又是同样的接口


碎碎念


智谱能不能将Anthropic协议的按量计费和Coding Plan接口也分开一下呀,或者直接将API Key分开,像MiniMax那样,真是肉痛啊。另外CC Switch、NewAPI等平台建议可以考虑针对智谱这一套接口规范做专门的类型,分为智谱v4按量API、智谱v4 Coding Plan Anthropic、智谱v4 Coding Plan OpenAI Chat Completions等几类,这样配置的时候也比较清晰了,不至于像我排查错误一样要去后台抓包和扒源码才知道真实的请求地址和请求格式。


另外据站内佬的说法,将GLM的访问端点配置为https://api.z.ai/api并通过代理走境外网络访问可提高访问成功率,配置方法也是类似的。

最新回复 (2)
  • 钟阮 06-26 22:33
    1楼

    oding Plan周期额度用光之后还发起请求就会消耗按量计费的余额,如果碰巧平台上存入了余额,没两下就挥霍干净了



    不会啊,我这只会刷屏429…






    NewAPI配置为


    就好了

  • 橘子汁纯么 06-26 22:38
    2楼

    这个其实是newapi的问题把,我在用pi的时候也遇到这种内置的实现端口和我想的不一样问题,pi内置的智谱就是走的openai端口,不是走的Anthropic

* 帖子来源Linux.do
返回