Skip to content
FunCoding

Search

Search docs, Skills and MCP

退出码与自动化诊断

区分认证、输入、沙箱、配置和轮数限制错误,结合结构化输出判断结果。

This page has not been translated into English yet. The original Chinese version is shown below.

自动化应同时检查进程退出状态和输出中的错误信息。不能只看 stdout 是否有模型文本,因为部分失败之前仍可能产生输出。

官方排障页列出的专用状态

退出码错误类型检查方向
41FatalAuthenticationError认证流程失败
42FatalInputError输入缺失或无效,非交互模式
44FatalSandboxErrorDocker、Podman、Seatbelt 等沙箱环境失败
52FatalConfigErrorsettings.json 配置无效或存在错误
53FatalTurnLimitedError达到会话最大轮数,非交互模式

无头模式文档另外给出 0 表示成功、1 表示一般错误,并强调 42 和 53。因此不应将“所有非零都为 1”硬编码为 CLI 唯一错误契约,也不要假设任意工具失败都直接映射为上述进程退出码。

处理顺序

先根据状态区分配置/认证等启动问题与任务执行问题。输入格式、缺少认证、无效配置和轮数限制通常需要修正条件,再运行任务;重复同一请求不会自动修好这些条件。

需要机器可读结果时,采用结构化输出,同时核对最终结果或错误事件。Shell 脚本还应保留 CLI 自身状态,避免只读取后续管道处理程序的成功码。

收集诊断

CLI 支持 --debug,交互模式下 F12 打开调试控制台。先用最小输入复现,再记录版本、认证方式、退出码和相关错误。认证与 TLS 见登录排障,其他运行时问题见运行环境排障。