请添加图片描述
在基于 OpenClaw 进一步扩建鼎道 DingOS 生态服务,以及在自身研发工作中做能力接入、辅助提效的过程中,我们发现一个关键问题:WebSocket 首次连接 OpenClaw 触发设备授权流程时,若在执行授权命令前调用 openclaw gateway status,会导致原有待授权请求被覆盖,最终使初始 WebSocket 连接的授权流程失效。该问题在本地调试中可稳定复现,且因鼎道业务侧的状态轮询逻辑被进一步放大,严重影响设备首次配对的稳定性。

现象描述

首次通过 WebSocket 连接 OpenClaw 时,会收到类似下面的配对提示:

{
  "type": "pairing",
  "value": {
    "message": "Device pairing required",
    "requestId": "<REQUEST_ID>",
    "deviceId": "<DEVICE_ID>",
    "approveCommand": "openclaw devices approve <REQUEST_ID>"
  }
}

如果这时还没有执行 approveCommand,而是先执行:

openclaw gateway status --json

~/.openclaw/devices/pending.json 中原本等待授权的请求会被替换成新的 pending 记录,导致原来的 WebSocket 配对流程失效。

复现步骤

  1. 清理设备授权状态,确保当前设备尚未完成配对。
  2. 通过 WebSocket 首次连接 OpenClaw。
  3. 收到 Device pairing required,记录返回的 requestIdapproveCommand
  4. 在不执行授权命令的前提下,执行:
openclaw gateway status --json
  1. 再次查看 ~/.openclaw/devices/pending.json
  2. 会发现 pending 中的记录发生变化,原本 WS 连接对应的授权请求被新的请求替换。
  3. 此时再执行最初返回的 approveCommand,通常无法让最初那条 WebSocket 连接继续完成授权。

观察到的关键点

  • WebSocket 客户端发起连接时使用的客户端标识是:
    • clientId = webchat-ui
    • clientMode = ui
  • 但在问题发生后,pending.json 中出现的新记录往往是:
    • clientId = cli
    • clientMode = probe

这说明替换原 pending 请求的,并不是原始 WebSocket 连接本身,而更像是一次 CLI 层的状态探测行为。

实际影响

  • 首次设备授权流程不稳定。
  • 用户在看到授权提示后,如果系统内部或手动又执行了 openclaw gateway status,可能会导致当前授权流程失效。
  • 前端看起来会表现为“明明已经拿到授权命令,但执行后当前 WS 连接仍然无法建立”。

初步判断

从现象上看,openclaw gateway status 不只是只读状态检查,它在未授权场景下可能会触发新的设备探测或新的配对请求。

如果网关内部只保留一个 pending 配对请求,或者新的 probe 请求会覆盖旧请求,就会出现:

  1. WS 首次连接生成一个待授权请求。
  2. gateway status 再生成一个新的待授权请求。
  3. 新请求覆盖旧请求。
  4. 原来的 approveCommand 失效。

如果 OpenClaw 的预期是 gateway status 只做状态检查,那么这个行为更像是一个 bug,或者至少是一个不符合直觉的设计问题。

本地项目中放大的原因

当前本地项目里存在一个后台状态轮询,会每 2 秒执行一次状态查询:

openclaw gateway status --json

因此在首次授权尚未完成时,这个轮询会持续触发,从而明显放大上述问题。

临时规避建议

  • 在首次设备授权成功之前,不要执行 openclaw gateway status
  • 如果应用内部存在状态轮询,建议在未配对完成前暂停轮询。
  • 完成设备授权后,再恢复状态查询或其他探测逻辑。

这个问题本质是 OpenClaw 在“首次设备授权”与“gateway 状态探测”之间存在冲突:

  • WS 首次连接会创建待授权请求
  • gateway status 也可能创建新的待授权请求
  • 新请求会替换原请求
  • 最终导致首次 WS 授权流程被打断

对我们正在做的 DingOS 生态扩展、本地研发提效场景来说,这个小坑会直接影响接入稳定性,短期通过调整轮询策略、增加状态判断可快速规避;长期需推动 OpenClaw 底层逻辑优化,并结合鼎道业务特性重构设备授权与状态查询的交互流程。后续我们会基于这份复现步骤和现象,向 OpenClaw 官方反馈,也会在自己的工程里做更健壮的状态保护逻辑,把首次接入体验做稳。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐