Upgrading an NVMe Raspberry Pi 5 to OpenClaw 9.3 Using a Staged Clone
A user on r/openclaw outlined a working strategy for upgrading a production OpenClaw instance on a Raspberry Pi 5 with a 256GB NVMe drive from 2026v7.1-2 to 9.3. The setup: two agents — one primary, one handling heartbeat — messaging via Discord.
The clone-and-swap approach
Rather than upgrade in place, the plan was to stage the migration on spare hardware and treat the production Pi as restorable at any point.
- Clone the production NVMe drive and install it in a spare Raspberry Pi 5.
- Ask the production OpenClaw agent to figure out the steps and write up the process for itself to follow.
- Wipe OpenClaw on the production Pi, set up 9.3, and restore the configuration.
- Let the production agent SSH into the clone and run the setup there.
The agent wrote its own runbook and executed it. The author notes there was some need for manual intervention, but the process largely ran itself.
Hardware notes
The spare clone Pi was a 4GB model versus the 8GB production unit. 4GB was more than enough for the staging work. A spare 256GB NVMe was available for the clone, which is what makes the rollback safety net possible.
Discord gateway timing
Discord was the only messaging integration configured, across multiple channels. Gateway setup had to happen after moving the NVMe back to the production Pi — doing it on the clone would have caused the gateways to collide. That's the one step that needs sequencing discipline.
Rollback was the point
The fallback was trivial: if the 9.3 upgrade went sideways, put the 7.1-2 NVMe back in the production Pi. This is the main argument for the clone strategy over an in-place upgrade — you keep a bootable, known-good drive the entire time.
Upgrade Node to 26 first
Per the author, OpenClaw 2026.9.3 performs best on Node 26. The claimed benefits: faster startup, lower memory footprint, and native SQLite support. Do this before the upgrade, not after.
The author has the full step list produced by the agent but chose not to share it, so the above is the general process rather than exact commands.
📖 Read the full source: r/openclaw
👀 See Also

How to Set Up Sub-Agents with Separate Workspaces in OpenClaw
A community solution for configuring multiple sub-agents with isolated workspaces and different models

Making an MCP Server Install Itself: Three Hosts, Three Mechanisms, Gotchas
A deep dive into programmatically installing MCP servers across VS Code, Cursor, and Claude Code — covering APIs, file writes, and edge cases like malformed JSON, atomic writes, and idempotent updates.

4 Things Your Claude Code Orchestrator Needs to Be Useful
Practical tips from a developer who built orchestrator agents for Claude Code: mission document, heartbeat, inter-agent communication, and auditable control.
OpenClaw 2026.9.1 Migration: Legacy Multi-Agent Upgrade Notes from r/openclaw
A user documents a smooth upgrade from OpenClaw 2026.7.1-2 to 2026.9.1, covering config migrations, schema updates, and multi-agent fixes—done via Codex in about 30 minutes.