Skip to content

NOWEB engine: poll.vote webhook events rarely fire for group polls #1915

@omernesh

Description

@omernesh

Description

After migrating from WEBJS to NOWEB engine, poll.vote webhook events are almost never delivered for group polls. The webhook configuration is correct and includes both poll.vote and poll.vote.failed events, but neither fires for the vast majority of votes.

Environment

  • WAHA Version: Latest (as of Feb 2026)
  • Engine: NOWEB
  • Sessions: Two active sessions, both WORKING status
  • Webhook config: 25 events configured including poll.vote and poll.vote.failed

Evidence

Engine Period Poll votes captured via webhook
WEBJS (omer session) Jan 22-23 (2 days) 131 votes
WEBJS (Logan session) Jan 20-25 (5 days) 89 votes
NOWEB (3cf11776_omer session) Feb 8-15 (7 days) 7 votes

After migration to NOWEB, poll vote capture dropped from ~40/day to ~1/day for the same groups.

Additional observations

  1. Zero poll.vote or poll.vote.failed events in our events_log table over the last 7 days (140,000+ other events logged correctly)
  2. Zero poll-related entries in container logs for 7 days
  3. The WAHA REST API (GET /api/messages) returns pollUpdates for group poll messages, but:
    • Only 0-1 pollUpdates per poll (should be many more)
    • selectedOptions contains encrypted Buffer data
  4. participantAlt in pollUpdateMessageKey does provide the real phone number

Steps to Reproduce

  1. Configure a NOWEB session with poll.vote and poll.vote.failed in webhook events
  2. Create a poll in a WhatsApp group
  3. Have multiple group members vote on the poll
  4. Observe webhook endpoint — poll.vote events are not delivered for most/all votes
  5. Check WAHA API GET /api/messagespollUpdates array has 0-1 entries instead of all voters

Expected Behavior

  • poll.vote webhook should fire for each vote received in a group poll (as it did with WEBJS engine)
  • poll.vote.failed should fire if decryption fails
  • pollUpdates in the message data should contain all vote entries

Actual Behavior

  • poll.vote webhook fires sporadically (7 times in 2 weeks vs 220 times in 5 days with WEBJS)
  • poll.vote.failed never fires
  • pollUpdates contains 0-1 entries per poll

Workaround

Currently using pollUpdates[].pollUpdateMessageKey.participantAlt to extract voter identity from the limited data WAHA does provide, but vote options remain encrypted (Buffer data).

patron:PLUS

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions