本页内容
本页内容
网关
配置验证和检查
Gateway 拒绝了无效配置
当 Gateway 启动失败并提示 Invalid config,或者热重载日志显示它跳过了一次无效编辑时使用。
启动会自动迁移旧密钥以及符合条件的单文件配置中的已知替换项,并且仅在整个结果(包括插件)验证后才继续。它保留 .bak 环中的先前配置。使用 $include 的配置、Nix 管理的配置、由较新版本编写的配置以及仍然无法验证的配置需要操作员修复。请参阅 旧版配置密钥迁移。
查看以下内容:
Invalid config at ...config reload skipped (invalid config): ...Config write rejected: ...- 活动配置旁边带有时间戳的
openclaw.json.rejected.*文件。 - 如果
doctor --fix修复了损坏的直接编辑,则 A 带时间戳的openclaw.json.clobbered.*文件。 - 对于每个配置路径,OpenClaw 会保留最新的 32 个
.clobbered.*文件,并轮转更旧的文件。
发生了什么
- 该配置在启动、热重载或 OpenClaw- 写入期间未验证。
- Gateway 启动使旧密钥保持不变,并拒绝需要修复的配置,并带有
openclaw doctor --fix提示。 - 热重载会跳过无效的外部编辑,并保持当前运行时配置生效。
- OpenClaw- 拥有的写入在提交之前拒绝 invalid/destructive 有效负载并保存
.rejected.*。 openclaw doctor --fix拥有旧密钥修复。它还可以删除非 JSON 前缀或恢复最后一次已知的良好副本,同时将被拒绝的有效负载保留为.clobbered.*。- 当同一个配置路径发生多次修复时,OpenClaw 会轮转较旧的
.clobbered.*文件,以便最新修复后的负载仍然可用。 - 如果 OpenClaw 无法保存
.clobbered.*副本,则会延迟恢复并发出警告,并且活动文件保持不变。解决快照锁定或存储问题后重试恢复。
检查和修理
通用签名
.clobbered.*存在 → doctor 在修复活动配置时保留了一个损坏的外部编辑。.rejected.*存在 → OpenClaw- 拥有的配置写入失败的架构或提交前的破坏检查。Config write rejected:→ 该写入试图删除必需结构、显著缩小文件,或持久化无效配置。config reload skipped (invalid config):→ 一次直接编辑未通过验证,被正在运行的 Gateway 忽略。Invalid config at ...→ Gateway 服务启动前就已失败。missing-meta-vs-last-good、gateway-mode-missing-vs-last-good或size-drop-vs-last-good:*→ OpenClaw- 拥有的写入被拒绝,因为与上次已知的良好备份相比,它丢失了字段或大小。Config last-known-good promotion skipped→ 候选配置包含被脱敏的秘密占位符,例如***。
修复选项
当自动旧密钥迁移不够时,交互式启动可以运行 openclaw doctor --fix 并重试一次。非交互式启动会打印修复命令。
- 运行
openclaw doctor --fix让医生修复prefixed/clobbered配置或恢复最后一次已知的良好状态。 - 只从
.clobbered.*或.rejected.*中复制你想保留的键,然后使用openclaw config set或config.patch应用它们。 - 重启前先运行
openclaw config validate。 - 如果你手动编辑,请保留完整的 JSON5 配置,而不是只保留你想修改的部分对象。
相关:
网关检查警告
当 openclaw gateway probe 已经探测到某些内容,但仍然打印警告块时使用。
查看以下内容:
- JSON 输出中的
warnings[].code和primaryTargetId。 - 警告是否与 SSH 回退、多网关、缺失的 scope,或未解析的身份验证引用有关。
警告含义:
ssh_tunnel_failed→ SSH 设置失败,但该命令仍尝试直接 configured/loopback 目标。multiple reachable gateway identities detected→ 不同的网关有响应,或者 OpenClaw 无法证明可达目标是同一个网关。SSH 隧道、代理 URL,或配置为指向同一个网关的远程 URL,会被视为一个具有多种传输方式的网关,即使传输端口不同也是如此。probe_scope_limited→ 连接有效,但详细信息 RPC 范围有限;将设备身份与operator.read配对或使用凭据。Gateway accepted the WebSocket connection, but follow-up read diagnostics failed→ 连接有效,但完整诊断 RPC 设置超时或失败。将此视为具有降级诊断功能的可访问网关;比较--json输出中的connect.ok和connect.rpcOk。Capability: pairing-pending或gateway closed (1008): pairing required→ 网关应答,但该客户端仍需要 pairing/approval 才能正常操作员接入。- 未解析的
gateway.auth.*/gateway.remote.*SecretRef 警告文本 → 在此次命令路径中,失败目标的身份验证材料不可用。
相关:
本页有帮助吗?