Creds on disk:
ls -l ~/.openclaw/credentials/whatsapp/<accountId>/creds.json (mtime should
be recent).
Session store:
ls -l ~/.openclaw/agents/<agentId>/sessions/sessions.json (path can be
overridden in config). Count and recent recipients are surfaced via status.
Relink flow:
openclaw channels logout && openclaw channels login --verbose when status
codes 409–515 or loggedOut appear in logs. (Note: the QR login flow auto-restarts
once for status 515 after pairing.)
logged out or status 409–515 → relink with
openclaw channels logout then openclaw channels login.
Gateway unreachable → start it: openclaw gateway --port 18789 (use
--force if the port is busy).
No inbound messages → confirm linked phone is online and the sender is allowed
(channels.whatsapp.allowFrom); for group chats, ensure allowlist + mention rules
match (channels.whatsapp.groups,
agents.list[].groupChat.mentionPatterns).
openclaw health --json asks the running Gateway for its health snapshot
(no direct
channel sockets from the CLI). It reports linked creds/auth age when available, per-channel probe
summaries, session-store summary, and a probe duration. It exits non-zero if the Gateway is
unreachable or the probe fails/timeouts. Use --timeout <ms> to override the 10s
default.