Skip to content

[v2.3.7] Groups broken with Chatwoot integration: No session found to decrypt message (skmsg, @lid), formatInternational TypeError, and group sends from Chatwoot silently dropped #2755

Open

Description

@121z3

Environment

  • Evolution API: evoapicloud/evolution-api:v2.3.7 (Baileys 7.0.0-rc.9), Docker, PostgreSQL 16 + Redis 7 (AOF)
  • Chatwoot: chatwoot/chatwoot:v4.18.0 (self-hosted), native Evolution ↔ Chatwoot integration
  • Instance: WhatsApp Business number linked via QR (multi-device, the phone stays connected as the primary device)
  • Instance settings: groupsIgnore: false; Chatwoot integration ignoreJids: [], importMessages: true, reopenConversation: true
  • Groups use addressingMode: "lid" (participants arrive as @lid with participantAlt as @s.whatsapp.net)

Summary

Private chats work in both directions (Chatwoot messages get a WhatsApp source_id). Group chats fail in three different ways:

1. Messages from other participants are not decrypted (never reach the DB or Chatwoot)

A text message sent to the group by another participant:

{"level":50,"msg":"failed to decrypt message","messageType":"skmsg","author":"<redacted>@lid",
 "key":{"remoteJid":"<redacted>@g.us","fromMe":false,"participant":"<redacted>@lid",
        "participantAlt":"<redacted>@s.whatsapp.net","addressingMode":"lid"},
 "err":{"type":"Error","message":"No session found to decrypt message",
        "stack":"Error: No session found to decrypt message
    at GroupCipher.decrypt (file:///evolution/node_modules/baileys/lib/Signal/Group/group_cipher.js:35:19)
    at async file:///evolution/node_modules/baileys/lib/Utils/auth-utils.js:220:36"},
 "isSessionRecordError":false}
{"level":50,"error":{},"msg":"transaction failed, rolling back"}

The message is not saved in the Message table and is not forwarded to Chatwoot.

2. Messages sent to the group from the phone (fromMe) crash the Chatwoot service

An image sent to the group from the primary phone (fromMe: true, participant @lid) is stored in Message (status: SERVER_ACK), but the Chatwoot integration throws:

ERROR [ChatwootService] TypeError: Cannot read properties of undefined (reading 'formatInternational')
    at ut.eventWhatsapp (/evolution/dist/main.js:139:2685)
    at async messages.upsert (/evolution/dist/main.js:245:30481)
    at async /evolution/dist/main.js:263:3930

The message never appears in the Chatwoot conversation for that group.

3. Messages sent from Chatwoot to the group are silently dropped

An agent replies (text or image) in the group conversation in Chatwoot. Chatwoot's WebhookJob to /chatwoot/webhook/<instance> completes successfully (~0.5 s, no error), but Evolution logs nothing (LOG_LEVEL=ERROR,WARN,INFO,LOG), nothing is sent to WhatsApp, nothing is stored in Message, and the Chatwoot message stays sent with an empty source_id. The same flow works for private chats.

Steps to reproduce

  1. Connect an instance on v2.3.7 with the Chatwoot integration, groupsIgnore: false and ignoreJids: [].
  2. In a group that uses LID addressing: (a) have another participant send a text, (b) send an image from the primary phone, (c) reply from Chatwoot in the group conversation.

Expected

Group messages are decrypted, forwarded to Chatwoot, and Chatwoot replies are delivered to the group.

Possibly related

Is this already fixed in 2.4.0-rc2, or is there a recommended way to get the group sender keys re-distributed to the linked device?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions