mirror of https://github.com/openclaw/openclaw.git
* fix(web): handle 515 Stream Error during WhatsApp QR pairing getStatusCode() never unwrapped the lastDisconnect wrapper object, so login.errorStatus was always undefined and the 515 restart path in restartLoginSocket was dead code. - Add err.error?.output?.statusCode fallback to getStatusCode() - Export waitForCredsSaveQueue() so callers can await pending creds - Await creds flush in restartLoginSocket before creating new socket Fixes #3942 * test: update session mock for getStatusCode unwrap + waitForCredsSaveQueue Mirror the getStatusCode fix (err.error?.output?.statusCode fallback) in the test mock and export waitForCredsSaveQueue so restartLoginSocket tests work correctly. * fix(web): scope creds save queue per-authDir to avoid cross-account blocking The credential save queue was a single global promise chain shared by all WhatsApp accounts. In multi-account setups, a slow save on one account blocked credential writes and 515 restart recovery for unrelated accounts. Replace the global queue with a per-authDir Map so each account's creds serialize independently. waitForCredsSaveQueue() now accepts an optional authDir to wait on a single account's queue, or waits on all when omitted. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * test: use real Baileys v7 error shape in 515 restart test The test was using { output: { statusCode: 515 } } which was already handled before the fix. Updated to use the actual Baileys v7 shape { error: { output: { statusCode: 515 } } } to cover the new fallback path in getStatusCode. Co-Authored-By: Claude Code (Opus 4.6) <noreply@anthropic.com> * fix(web): bound credential-queue wait during 515 restart Prevents restartLoginSocket from blocking indefinitely if a queued saveCreds() promise stalls (e.g. hung filesystem write). Co-Authored-By: Claude <noreply@anthropic.com> * fix: clear flush timeout handle and assert creds queue in test Co-Authored-By: Claude <noreply@anthropic.com> * fix: evict settled credsSaveQueues entries to prevent unbounded growth Co-Authored-By: Claude <noreply@anthropic.com> * fix: share WhatsApp 515 creds flush handling (#27910) (thanks @asyncjason) --------- Co-authored-by: Jason Separovic <jason@wilma.dog> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Ayaan Zaidi <hi@obviy.us> |
||
|---|---|---|
| .. | ||
| acpx | ||
| bluebubbles | ||
| copilot-proxy | ||
| device-pair | ||
| diagnostics-otel | ||
| diffs | ||
| discord | ||
| feishu | ||
| google-gemini-cli-auth | ||
| googlechat | ||
| imessage | ||
| irc | ||
| line | ||
| llm-task | ||
| lobster | ||
| matrix | ||
| mattermost | ||
| memory-core | ||
| memory-lancedb | ||
| minimax-portal-auth | ||
| msteams | ||
| nextcloud-talk | ||
| nostr | ||
| ollama | ||
| open-prose | ||
| phone-control | ||
| qwen-portal-auth | ||
| sglang | ||
| shared | ||
| signal | ||
| slack | ||
| synology-chat | ||
| talk-voice | ||
| telegram | ||
| test-utils | ||
| thread-ownership | ||
| tlon | ||
| twitch | ||
| vllm | ||
| voice-call | ||
| zalo | ||
| zalouser | ||
| .npmignore | ||