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

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

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

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

解决办法
1. 更换最新版本的chrome浏览器直接解决
经过测试,toSorted()方法在100以后的版本均支持,所以直接换用谷歌浏览器即可。
2. 重新编译openclaw,修改代码解决
既然知道问题点,修改数据排序方法,使用当前浏览器支持的方法即可。我直接使用了sort()替代。该方法老版本浏览器页支持。
需要说明的是,
toSorted方法不修改原数组,sort方法排序后会更新原数组。这个是副作用。

重新写编译打包
pnpm ui:build会在项目更目录下生成一个
dist目录,该目录下会生成一个control-ui的包。复制该包,到你全局的openclaw包中,替换源包中的
control-ui模块即可。
由于npm全局目录的不同,默认情况下,你的openclaw包可能在以下目录:
/usr/lib/node_modules/openclaw使用root权限安装~/npm-global/lib/node_modules/openclaw当前用户安装
替换
openclaw/dist/control-ui这个目录,为你打包出来的目录。重启
openclaw即可。openclaw gateway restart

其他补充信息
在移动信创云电脑等环境中,启动openclaw时,会报下面的告警信息:
1 | Warning: no IPv4 address available on ens3 |

这并不是没有IPV4导致的,该处告警,openclaw在检查所有网卡的所有IPv4地址,只是提醒在ens3网卡中,没有IPV4地址而已。
本地启动的服务,通常启动在localhost、127.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/

