The backup sync tests for the existence of the file test -f /root/.openclaw/openclaw.json. Through the chat interface, I've had the agent verify that this file does, in fact, exist. However, in sync.js the exitCode seems to return null, therefore aborting the backup sync to R2.
const checkNew = await sandbox.startProcess('test -f /root/.openclaw/openclaw.json');
await waitForProcess(checkNew, 5000);
if (checkNew.exitCode !== 0) {
...
This is as of commit 5593ac1.