Symptom
Plugin install and openclaw doctor --fix fail with FsSafeError: native no-replace move is unavailable on this filesystem on a QNAP user-share bind mount.
Evidence what you'll see
- The native helper
binding.renameNoReplacefrom@openclaw/fs-safereturnsEINVAL, mapped indist/package-update-activation-recovery.mjsat theerror?.code === "EINVAL"branch. openclaw plugins installfails withPlugin artifact has no valid plugin manifest: <stage>/node_modules/<pkg>.openclaw doctor --fixrefuses during state migration (Failing check audit-logs (step-refused)), and the gateway then refuses to start (StartupMaintenanceRequiredError).
Why it happens
On the reported QNAP ZFS-backed shares, plain renameat2(..., RENAME_NOREPLACE) works, but the native addon returns EINVAL. OpenClaw treated that as a hard stop instead of using fs-safe's identity-checked fallback. Pull request 166048 updates @openclaw/fs-safe to 0.24.0 and delegates unsupported native moves to that public fallback.
Affected versions
QNAP NAS, Container Station, Docker 27.1.2-qnap8, image ghcr.io/openclaw/openclaw:latest as OpenClaw 2026.9.8, Node v24.21.0, @openclaw/fs-safe 0.21.1 and 0.23.1. Filesystems: ZFS datasets mounted rw,relatime,xattr,richacl.
Fix steps
0 of 2 done
Your check marks stay in this browser only.
How to check it worked
openclaw plugins installandopenclaw doctor --fixfinish withoutFsSafeError: native no-replace move is unavailable on this filesystem.
If it still fails
- Tag
v2026.10.4does not contain pull request 166048. - The directory fallback can replace a concurrently created empty directory; nonempty directories stay protected. Native
requirestill refuses.
Sources and credit
Summarized in our own words from these public reports. Credit goes to their authors.
Provided as is, without warranty. Try changes in a non-production environment and back up first. Security-related steps: verify against the official docs. Terms · Request removal or attribution change
Hit an error we don't cover? Submit it