Resumo
Mensagens recebidas em grupos do WhatsApp via canal Z-API são descartadas no 1.0.0-rc5. O serviço de entrada tenta criar/achar o contato usando o ID do grupo como telefone, e a validação e164 falha.
Erro (logs crm_sidekiq, rc5)
[Webhooks::WhatsappEventsJob] ✅ Channel found: +55XXXXXXXXXXX (provider: zapi, inbox: ...)
[Webhooks::WhatsappEventsJob] Z-API incoming message error: Validation failed: Phone number should be in e164 format
app/services/whatsapp/incoming_message_zapi_service.rb:89:in 'process_incoming_message'
Reproduzido em vários grupos (isGroup=true, phone = <id>-group). Mensagem 1:1 (não-grupo) não é afetada.
Causa
Em incoming_message_zapi_service.rb#process_incoming_message, o contato é criado com:
phone_number: "+#{phone}"
Para grupo, params[:phone] é o ID do grupo (ex.: 120363403143464221-group) → "+120363403143464221-group" não é e164 → ActiveRecord::RecordInvalid → mensagem perdida.
O EVO-1018 (rc3, "distinguish WhatsApp group contacts from real customer contacts") não cobriu o caminho Z-API — o erro persiste no rc5.
Impacto
Toda mensagem de grupo via Z-API é perdida (não vira conversa). Para quem usa grupos, é perda silenciosa de mensagem.
Observação de monitoramento
Este erro é "rescued" e logado, mas não propaga → não aparece no Sentry. Avaliar Sentry.capture_exception no rescue do serviço Z-API.
A fazer
Resumo
Mensagens recebidas em grupos do WhatsApp via canal Z-API são descartadas no
1.0.0-rc5. O serviço de entrada tenta criar/achar o contato usando o ID do grupo como telefone, e a validação e164 falha.Erro (logs
crm_sidekiq, rc5)Reproduzido em vários grupos (
isGroup=true,phone=<id>-group). Mensagem 1:1 (não-grupo) não é afetada.Causa
Em
incoming_message_zapi_service.rb#process_incoming_message, o contato é criado com:Para grupo,
params[:phone]é o ID do grupo (ex.:120363403143464221-group) →"+120363403143464221-group"não é e164 →ActiveRecord::RecordInvalid→ mensagem perdida.O EVO-1018 (rc3, "distinguish WhatsApp group contacts from real customer contacts") não cobriu o caminho Z-API — o erro persiste no rc5.
Impacto
Toda mensagem de grupo via Z-API é perdida (não vira conversa). Para quem usa grupos, é perda silenciosa de mensagem.
Observação de monitoramento
Este erro é "rescued" e logado, mas não propaga → não aparece no Sentry. Avaliar
Sentry.capture_exceptionno rescue do serviço Z-API.A fazer
participantPhonecomo contato e o grupo como identificador de conversa (espelhar o que o EVO-1018 fez no caminho Evolution).evolution-foundation/evo-ai-crm-community.