openclaw 报错 disconnected(4008): connect failed

解决openclaw 2026.3.2版本disconnected(4008): connect failed报错问题。

在国产操作系统上部署openclaw过程中,遇到web ui打开openclaw时,UI界面报错disconnected(4008): connect failed

1772938384250

问题原因

找到问题点,根据页面错误提示,在openclaw源代码中全局搜索4008关键字。在源代码/ui/src/ui/gateway.ts中定义了该错误码。

1772942353333

在该问题GatewayBrowserClient方法中,.catch方法中捕获并抛出该异常。通过下面方法在关键位置增加console输出,进行调试。

1772942406227

发现异常时,错误堆栈中,调用了/src/shared/device-auth.tsnormalizeDeviceAuthScope方法,该方法输出内容为一个数组,该数组使用[...out].toSorted()进行排序后输出。toSorted()方法在当前浏览器中不存在,导致的报错。

1772942671518

解决办法

1. 更换最新版本的chrome浏览器直接解决

经过测试,toSorted()方法在100以后的版本均支持,所以直接换用谷歌浏览器即可。

2. 重新编译openclaw,修改代码解决

既然知道问题点,修改数据排序方法,使用当前浏览器支持的方法即可。我直接使用了sort()替代。该方法老版本浏览器页支持。

需要说明的是,toSorted方法不修改原数组,sort方法排序后会更新原数组。这个是副作用。

1772943064472

  1. 重新写编译打包pnpm ui:build

  2. 会在项目更目录下生成一个dist目录,该目录下会生成一个control-ui的包。

  3. 复制该包,到你全局的openclaw包中,替换源包中的control-ui模块即可。

由于npm全局目录的不同,默认情况下,你的openclaw包可能在以下目录:

  • /usr/lib/node_modules/openclaw 使用root权限安装
  • ~/npm-global/lib/node_modules/openclaw 当前用户安装
  1. 替换openclaw/dist/control-ui这个目录,为你打包出来的目录。

  2. 重启openclaw即可。openclaw gateway restart

1772943281153

其他补充信息

在移动信创云电脑等环境中,启动openclaw时,会报下面的告警信息:

1
Warning: no IPv4 address available on ens3

1772945058470

这并不是没有IPV4导致的,该处告警,openclaw在检查所有网卡的所有IPv4地址,只是提醒在ens3网卡中,没有IPV4地址而已。

本地启动的服务,通常启动在localhost127.0.0.1上,这类服务走的时本地回环地址,也就是lo网卡,根本走不到物理网卡上,所以不可能可物理网卡有关。

openclaw的服务启动时,他会检查所有的网卡,同时在对应的IP上启动服务,比如gateway.bind选项,支持loopback|lan|tailnet|auto|custom选项值,loopback就是本地回环地址,只能本地访问,lan就是启动在0.0.0.0上,绑定所有网卡,可以链接到本机的都可以访问到。可以暴露到公网。

openclaw 报错 disconnected(4008): connect failed

https://blog.plcent.com/openclaw-disconnected-4008-connect-failed/

作者

Nolly

发布于

2026-03-08

更新于

2026-03-08

许可协议

评论