Install
openclaw skills install windows-health-monitorDiagnose and fix Windows-specific OpenClaw issues including event loop delays, gateway task health, WhatsApp connectivity, stuck subagents, prewarm blocking,...
openclaw skills install windows-health-monitorCross-platform diagnostics for OpenClaw gateways. Covers the most common performance problems discovered through real-world debugging on Windows 11 native, WSL2, Linux, and macOS environments.
Run a comprehensive health snapshot:
openclaw health --verbose --json
openclaw channels status --probe
openclaw status --all
Key metrics to watch:
# Service status
systemctl --user status openclaw-gateway
# Journal logs
journalctl --user -u openclaw-gateway -n 50
# Process health
ps aux | grep openclaw | grep -v grep
# Service status
launchctl list | grep openclaw
# Disk usage
du -sh ~/.openclaw
# Process health
ps aux | grep openclaw | grep -v grep
Get-ScheduledTask -TaskName "OpenClaw Gateway" | Format-List State, LastRunTime, LastTaskResult
Healthy: State=Ready, LastTaskResult=0 Degraded: State=Running but gateway unresponsive → stuck restart, kill node processes and restart Failed: LastTaskResult non-zero → check gateway log for errors
The most common Windows performance regression appears in 2026.5.x:
# Check current event loop status
openclaw health --json | Select-String "eventLoop|p99|delayMax"
# Check for prewarm blocking (2026.5.22+)
Select-String "provider auth state pre-warmed|eventLoopMax" "$env:USERPROFILE\AppData\Local\Temp\openclaw\openclaw-*.log"
Symptoms: CLI health taking 20+ seconds, "degraded" event loop, startup model warmup timed out in logs.
A key diagnostic finding: the CLI health command can be 20-30x slower than the HTTP health endpoint on Windows:
# CLI health (slow on Windows)
openclaw health --timeout 20000
# HTTP health (fast — true gateway performance)
$token = [System.Environment]::GetEnvironmentVariable("OPENCLAW_GATEWAY_TOKEN", "User")
Invoke-RestMethod -Uri "http://127.0.0.1:18789/health" -Headers @{"Authorization"="Bearer $token"} -TimeoutSec 10
If CLI is slow but HTTP is fast (< 500ms): gateway is healthy, CLI tool has Windows WebSocket auth overhead.
Background subagents can block gateway restart for 5+ minutes:
# Search gateway log for deferred restart
Select-String "restart.*deferred.*background task.*active" "$env:USERPROFILE\AppData\Local\Temp\openclaw\openclaw-*.log"
If found: kill node.exe processes and restart gateway. The stuck subagents will not recover.
# Check for reconnection patterns
Select-String "WebSocket.*closed.*408|Retry.*\/12|timed out waiting for.*WhatsApp" "$env:USERPROFILE\AppData\Local\Temp\openclaw\openclaw-*.log"
If memory-lancedb is installed but not configured:
disabled until configuredmemory-core or configure embeddings# Check active memory plugin
openclaw plugins list | Select-String "memory"
2026.5.22 introduced provider auth prewarming that can block for 30-79s:
# Check prewarm metrics
Select-String "provider auth state pre-warmed|startup model warmup timed out" "$env:USERPROFILE\AppData\Local\Temp\openclaw\openclaw-*.log"
Fix: Set OPENCLAW_SKIP_PROVIDER_AUTH_PREWARM=1 in gateway.cmd or user environment variables.
Fix (future): Add { "gateway": { "providerAuthPrewarm": { "enabled": false } } } to config (pending PR merge).
After npm reinstall, the openclaw CLI may not be available:
npm link openclawFor bug reports or sharing diagnostics:
openclaw gateway diagnostics export
This creates a sanitized zip at ~\.openclaw\logs\support\ with:
OPENCLAW_SKIP_PROVIDER_AUTH_PREWARM=1Get-Process -Name "node" | Stop-Process -Force; Start-ScheduledTask -TaskName "OpenClaw Gateway"openclaw channels status --probe — verify WhatsAppchannels.whatsapp.allowFromdmPolicy is not "disabled"loggedOut in logs: openclaw channels logout whatsapp; openclaw channels login whatsappagents.defaults.timeoutSeconds — should be ≥ 300sopenclaw config validate — check for schema changesopenclaw doctor --fix — repair config driftWhen the companion plugin (@jordan-thirkle/openclaw-winhealth) is installed, automated background monitoring is active. Use the tool winhealth_check for the current snapshot, winhealth_diagnostics for a full bundle, and winhealth_alerts to manage alert state.