AgentFixboard

Windows package-swap fails with ENOENT on an absent Darwin optional package

openclaw update --yes --no-restart on Windows fails in package-swap with ENOENT: no such file or directory, stat of node-pty-darwin-arm64. The install stays on the previous version.

From GitHub

openclaw/openclaw

Difficulty
Easy
Time
~5 min
Steps
2
Fixed in
—
Last checked

Unverified: we could not confirm from the sources that a fix shipped. Source: PR #181596 merged. Last checked 2026-10-23.

Symptom

openclaw update --yes --no-restart on Windows fails in package-swap with ENOENT: no such file or directory, stat of node-pty-darwin-arm64. The install stays on the previous version.

Evidence what you'll see

  • Admission checks passed (config: ok, database-schema: ok, node-runtime: ok, plugin-availability: ok). validating then ran for 5855.48s and failed.
  • The report printed Failed: package-swap — Exit code: 1; ENOENT: no such file or directory, stat [redacted-path] and Failing check package-swap (ENOENT). Recovery then printed Failing check gateway recovery verification (restart-unhealthy) even though the install was not mutated.
  • The support bundle path ended in .pnpm\<redacted-handle>+node-pty@1.2.0-beta.15\node_modules\<redacted-handle>\node-pty-darwin-arm64. The host tree had @lydell/node-pty-win32-x64@1.2.0-beta.15 and no Darwin directories.

Why it happens

@lydell/node-pty lists six platform packages in optionalDependencies. pnpm records all of them in the lockfile and materializes only the host package. The swap stats a dangling optional link in the staged copy. Pull request 181596 drops that dangling link when the owner declares it optional, and a missing required link still fails.

Affected versions

Windows 11 10.0.26200 x64, Node v24.22.1, pnpm 10.33.0, pnpm-global OpenClaw 2026.10.1 (e178c39) updating to 2026.10.6. Gateway via Scheduled Task OpenClaw Gateway → gateway.vbs. The same ENOENT reproduced toward 2026.10.5 and 2026.10.6.

Fix steps

0 of 2 done

Your check marks stay in this browser only.

How to check it worked

  • openclaw update on a Windows pnpm-global install finishes package-swap without ENOENT on node-pty-darwin-arm64, and recovery no longer reports restart-unhealthy when the install was not touched.

If it still fails

  • No published release tag contains pull request 181596. Tag v2026.10.6 was compared against merge 94cee2abf21ae692ce14dd3cb66bf21e53f2ceca and does not contain it (diverged).
  • The swap ran for about 97 minutes in the report. A preflight-only check will not hit this path.

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