Skip to content

rc5: mensagens de grupo via Z-API perdidas (e164 / EVO-1018 não cobriu caminho Z-API) #2

Description

@firstplaceservdig1

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

  • Tratar grupo no caminho Z-API: usar participantPhone como contato e o grupo como identificador de conversa (espelhar o que o EVO-1018 fez no caminho Evolution).
  • Confirmar se reproduz no upstream e reportar em evolution-foundation/evo-ai-crm-community.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingregressionFuncionava em versão anteriorupstreamReportar/contribuir pro upstream evolution-foundation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions