乐于分享
好东西不私藏

openclaw4.26更新翻车修复结论

openclaw4.26更新翻车修复结论

openclaw4.26更新翻车修复结论。
4.26 这次更新本身没有改“Windows 定时任务怎么启停网关”的核心流程;导致你连不上的很大概率是:更新过程中(或自动重启后)旧 Node 进程“没死干净”,占着 18789 不放,或者服务安装/配置处于“分裂/不一致”状态。
下面分成三块:4.26 到底改了啥;和你的问题有没有关系;你现在该怎么一步到位修好。
一、4.26 改了哪些可能相关的点
“CLI/update:Windows 定时任务的 stop 加了状态与超时保护,防止自动更新的重启在清理旧监听之前被 schtasks /End 卡死。”——这是针对“更新后重启网关”那一段的加固。
“安装/更新加固:覆盖 Windows/macOS/Linux/Docker,包括服务重启、LaunchAgent 令牌轮换、混合版本网关校验等。”说明 4.26 对更新流程整体做了收紧与一致性检查。
插件启动机制从“每次启动时扫一遍 manifest”改为“冷注册表索引”,启动路径、插件启用逻辑都有重构。
Windows 上 npm 全局安装的插件路径解析也被修过(避免重复扫同一路径)。
这些改动都会在“更新 + 自动重启服务”时触发,因此如果:
更新中途重启过一次机器,或
你之前是通过“定时任务”跑网关,
就容易碰到“服务实例/端口/配置不一致”的现象(旧进程孤儿、端口占用、配置被回滚到 last-known-good 等)。
二、和你的现象(127.0.0.1:18789 ECONNREFUSED)怎么对应
典型几种可能(按出现频率排序):
端口被“上一个”网关占住
4.26 更新会触发一次自动重启(或 schtasks 重启),如果旧 Node 进程没有被干净杀掉,就会留下孤儿进程继续占着 18789,新进程启动失败→ECONNREFUSED。
这类“重启失败留下孤儿进程”的问题在 Windows 上已有 Issue(虽然是更早版本,但机制一样)。
配置/服务处于“分裂安装”或“版本不一致”状态
更新时如果 CLI 用的是新版,但系统 PATH 或服务入口还在跑旧版 dist/index.js,就会出现:
服务能跑起来,但启动失败/立刻退出;
或配置被“回滚到 last-known-good”(日志里会有 Config auto-restored from last-known-good 等字样)。
插件/注册表迁移引入的启动失败
4.26 把插件发现/启用挪到冷注册表索引,如果你存在旧插件目录或 .openclaw-install-stage 残留,更新后第一次启动会做迁移/校验;如果这一步失败,网关会直接挂掉。
三、结合你是“4.26 更新后出现”,建议按下面顺序做(Windows,管理员 PowerShell)
确认版本与更新是否干净
在“管理员 PowerShell”里跑:
openclaw –version
which openclaw(或 where openclaw)
确认指向的是你刚更新的那一套(常见坑:旧版还装在另一个路径,服务跑的是旧版)。
彻底杀掉旧进程,避免端口占用
先停服务:
openclaw gateway stop
再强制杀所有可能的“网关 Node 进程”:
Get-CimInstance Win32Process | Where-Object { $.CommandLine -like ‘openclawdist\index.jsgateway’ } | ForEach-Object { taskkill /PID $_.ProcessId /T /F }
确认端口干净:
netstat -ano | findstr :18789
这一条应没有任何输出(如果有,按 PID 再 taskkill 一次)。
用“新版”重新安装/重置服务(避免分裂安装)
openclaw gateway install –force
openclaw gateway start
再检查:
openclaw gateway status
openclaw gateway probe
如果还不行:先“前台跑一遍”抓真正的报错
openclaw gateway run –verbose
看日志里是否出现:
listen EADDRINUSE(端口仍被占)
Gateway start blocked: set gateway.mode=local
Config auto-restored from last-known-good
插件/注册表相关报错(plugins/startup、registry、.openclaw-install-stage)
如果看到插件/注册表问题:
openclaw plugins registry –refresh
openclaw doctor –fix
删除残留的 .openclaw-install-stage 目录(在 Node 全局 openclaw 包目录下)
修完后再:
openclaw gateway stop
openclaw gateway start
openclaw gateway probe
如果仍然 RULAST run -1073741510 / Runtime: unknown
这个退出码通常意味着进程异常终止;建议把日志贴出来:
打开 %LOCALAPPDATA%\Temp\openclaw\openclaw-2026-04-28.log
搜索 2026/4/28 22:16:59 附近的关键字(error/ fatal/ EADDRINUSE / last-known-good / restore)。
也可以贴:
openclaw gateway status –json
openclaw doctor
的输出。
四、补充:如果这台机器是“纯节点(Node-only)”
本地网关本来就不跑,ECONNREFUSED 是正常的;
你应该看 openclaw status 里“节点→远端网关”的状态是不是 connected,而不是盯着 127.0.0.1:18789。
你可以先把第 2–4 步的结果(尤其是:端口是否还被占、gateway run –verbose 的前几行报错)发出来,我可以帮你对着 4.26 的改动点和排障文档做精确对照。