#Update
1 messages · Page 1 of 1 (latest)
First check your installed version:
openclaw --version
Then the normal update path is:
openclaw update
That should detect whether you installed via npm/package or git, fetch the right build, run doctor, and restart the gateway.
Afterwards I’d run:
openclaw doctor
openclaw health
Docs: https://docs.openclaw.ai/install/updating
If openclaw update fails, paste the openclaw --version output plus the error here and we can steer from there.
agent@agent:~$ sudo openclaw update
[sudo] password for agent:
Updating OpenClaw...
│
â—‡ âś“ Updating via package manager (71.76s)
Update Result: OK
Root: /usr/lib/node_modules/openclaw
Before: 2026.2.24
After: 2026.5.12
Total time: 71.93s
Updating plugins...
No plugin updates needed.
Shell completion
│
â—‡ Enable bash shell completion for openclaw?
│ Yes
Installing completion in /root/.bashrc...
Completion installed. Restart your shell or run: source /root/.bashrc
Restarting service...
Gateway service check failed: Error: systemctl --user unavailable: Failed to connect to bus: No medium found
agent@agent:~$
Update itself succeeded: 2026.2.24 -> 2026.5.12. The failure is just the service restart step.
That happened because the update was run under sudo, so OpenClaw tried to restart a systemd user service from the wrong user/session context and hit:
systemctl --user unavailable: Failed to connect to bus: No medium found
Try this as the normal agent user, without sudo:
openclaw gateway restart
openclaw gateway status
openclaw health
If it still says the user bus/linger is unavailable on that machine, enable lingering once and retry:
sudo loginctl enable-linger agent
openclaw gateway restart
openclaw gateway status
Docs: https://docs.openclaw.ai/install/updating and https://docs.openclaw.ai/start/setup#linux-systemd-user-service
Small note: because you answered the shell-completion prompt inside sudo openclaw update, it installed completion into /root/.bashrc, not your normal user’s shell. Not fatal, just not very useful. 🦞
â—‡ Start gateway service now?
│ Yes
Restarted systemd service: openclaw-gateway.service
Run "openclaw doctor --fix" to apply changes.
Invalid config:
- channels.discord.streaming: invalid config: must be object
- channels.discord.guilds.1468636162364276869.channels.1469061354752184465: invalid config: must NOT have additional properties
- channels.discord.guilds.1468636162364276869.channels.1469060251251773506: invalid config: must NOT have additional properties
- channels.discord.guilds.1468636162364276869.channels.1469059668616806676: invalid config: must NOT have additional properties
- channels.discord.guilds.1468636162364276869.channels.1469060709248667689: invalid config: must NOT have additional properties
- channels.discord.guilds.1468636162364276869.channels.1469058886278316174: invalid config: must NOT have additional properties
- channels.discord.guilds.1468636162364276869.channels.1469054996271206531: invalid config: must NOT have additional properties
- channels.discord.guilds.1468636162364276869.channels.1468688847155105895: invalid config: must NOT have additional properties
- channels.discord.guilds.1468636162364276869.channels.1468636162871660566: invalid config: must NOT have additional properties
- channels.discord.guilds.1468636162364276869.channels.1469820904606400758: invalid config: must NOT have additional properties
│
â”” Doctor complete.
agent@agent:~$
That’s a config migration issue after the big version jump, not the package update failing.
Run the fixer as the normal agent user:
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.pre-2026-5-update
openclaw doctor --fix
openclaw gateway restart
openclaw gateway status
The two main schema changes showing there are:
channels.discord.streamingis now an object like{ mode: "partial" }, not a bare boolean/string.- Discord channel entries now use
enabled, not the oldallowkey.
doctor --fix is meant to rewrite those legacy config shapes. If it still reports invalid config after that, paste the new doctor output, and only the sanitized channels.discord section of ~/.openclaw/openclaw.json if needed. Don’t paste tokens.