-
-
Notifications
You must be signed in to change notification settings - Fork 68.9k
clawdis send command fails for WhatsApp group JIDs #45
Description
Description
The clawdis send command fails to send messages to WhatsApp groups. Group JIDs are incorrectly converted to individual chat format, causing "gateway timeout" or silent failures.
Reproduction Steps
- Start Clawdis gateway with WhatsApp connected
- Run: pnpm run clawdis send --to "[email protected]" --message "Test"
- Observe gateway timeout or incorrect recipient
Expected Behavior
Message should be sent to the group chat with JID [email protected]
Actual Behavior
The group JID is converted to an individual chat format:
Input: [email protected]
Sent to: [email protected] (incorrect!)
The - is stripped and @g.us is changed to @s.whatsapp.net, causing the message to fail.
Root Cause
The toWhatsappJid() function in src/utils.ts unconditionally normalizes all inputs as phone numbers and appends @s.whatsapp.net, ignoring existing JID formats.
Similarly, sendMessage() and sendComposingTo() in src/web/inbound.ts always construct JIDs with @s.whatsapp.net.
Fix
Check if the input already contains @ before transforming:
src/utils.ts:
typescript
export function toWhatsappJid(number: string): string {
// Preserve group JIDs (@g.us) or any existing JID format
if (number.includes("@")) {
return number;
}
const e164 = normalizeE164(number);
const digits = e164.replace(/\D/g, "");
return `${digits}@s.whatsapp.net`;
}
src/web/inbound.ts
typescript
const jid = to.includes("@") ? to : ${to.replace(/^\+/, "")}@s.whatsapp.net;
Environment
- OS: Ubuntu 24.04
- Node: v22.21.1
- Clawdis: v2.0.0