OpenClaw v2026.3.22 upgrade breaks WhatsApp — recovery via v2026.3.23-2

Context

NOVA recommended upgrading from v2026.3.13 to v2026.3.22 (cron deadlock fix, security hardening, compaction persona drift fix). Update succeeded but WhatsApp channel failed to load — NOVA went dark for ~12 hours.

Root Cause

v2026.3.22 unbundled WhatsApp from stock extensions (moved to plugin architecture) but shipped without light-runtime-api.js — the runtime bridge the new plugin system requires. Error: WhatsApp plugin runtime is unavailable: missing light-runtime-api for plugin 'whatsapp'.

Recovery Steps

  1. Fix config: remove context1m: true (native on Max plan), change thinkingDefault: "xhigh""high" (valid values: low/medium/high)
  2. Upgrade to v2026.3.23-2 (hotfix that restores light-runtime-api.js in extensions/whatsapp/)
  3. Run openclaw plugins install whatsapp — required for new plugin architecture (adds plugins.load.paths and plugins.installs)
  4. Set plugins.allow: ["whatsapp", "perplexity"] — security hardening
  5. Fix systemd: entrypoint entry.jsindex.js, version label
  6. Run openclaw doctor --fix — scaffold safeBinProfiles
  7. Remove jq from safeBins (env builtin leaks environment variables)
  8. Clean stale backups and npm logs

Key Lessons

  • v2026.3.22 is broken for WhatsApp — always verify extensions list before upgrading
  • v2026.3.23-2 is the minimum viable version for WhatsApp plugin runtime
  • openclaw plugins install whatsapp is NOW REQUIRED after any upgrade (new plugin architecture)
  • context1m param was removed — Max plan provides 1M context natively
  • thinkingDefault valid values: low, medium, high (NOT xhigh)
  • openclaw doctor --fix scaffolds safeBinProfiles entries needed by new version
  • Perplexity web search migrated from tools.web.search.perplexity to plugins.entries.perplexity in v2026.3.23+

Files Modified

  • /home/openclaw/.openclaw/openclaw.json — 8 config changes
  • /home/openclaw/.config/systemd/user/openclaw-gateway.service — entrypoint + version