解决在 claude code 等工具中接入 API 使用(尤其是 CLIProxyAPI 等服务)频发 500 报错的若干方法
错误示例:
error":{“message”:“Post "https://open.bigmodel.cn/api/paas/v4/chat/completions\”: context canceled",“type”:“server_error”,“code”:“internal_server_error”}
错误代码:5XX
解决方法
- 调整 Claude Code 默认配置
Cluade Code 新版本增加了许多 API 的超时检测,请确保在环境变量中完整添加以下所有字段:
"API_TIMEOUT_MS": "600000", "BASH_DEFAULT_TIMEOUT_MS": "600000", "BASH_MAX_TIMEOUT_MS": "600000", "CLAUDE_API_TIMEOUT": "600000", "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1", "CLAUDE_CODE_MAX_OUTPUT_TOKENS": "32000", "MCP_TIMEOUT": "300000", "MCP_TOOL_TIMEOUT": "600000" - 确保中间层(如 Cloudflare、Edgeone 等加速和防护服务)设置正确
近期在 Claude Code 等客户端里出现的 5XX 报错(例如返回体含 “context canceled”“server_error”“internal_server_error”)在不少情况下并非模型服务本身异常,而是链路中间层的回源超时导致连接被提前断开。我们确认当请求经过 Cloudflare 或 EdgeOne 这类 CDN / 代理后,如果上游在长思考、长文本推理、工具调用或搜索阶段出现较长时间未产生任何响应字节,CDN / 代理可能会按 “源站无响应” 判定超时并主动断链;客户端侧就会表现为请求被取消、连接中止,进而映射成 5XX 或类似的 server_error。该问题在非流式响应更常见,尤其是 Claude Code 执行后台任务或子代理调用时往往走非流式路径,容易在几十秒到一分钟的空窗内触发超时。
处理建议:优先在 Cloudflare 或 EdgeOne 的规则引擎中,将相关接口的 “源站超时 / 回源超时 / HTTP 应答超时” 提高到能够覆盖最坏情况下的推理时长,建议至少 180 秒,必要时更高;并尽量只对特定域名或特定 Path 生效,避免影响全站。若所用方案或回源协议不支持将超时调到目标值,建议改为流式输出或加入周期性心跳字节(保持连接持续有数据流动),以避免被中间层误判为无响应。(CPA 新版本在流式输出时,提供此类问题的解决方案,例如持续发送空行作为流式返回内容)
- Nginx 配置 (若有)
参考这位佬友的回复
解决在 claude code 等工具中接入 API 使用(尤其是 CLIProxyAPI 等服务)频发 500 报错的若干方法 - #3,来自 geq1fan
