-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Open
Labels
Description
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
WORKINGstatus - Webhook config: 25 events configured including
poll.voteandpoll.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
- Zero
poll.voteorpoll.vote.failedevents in our events_log table over the last 7 days (140,000+ other events logged correctly) - Zero poll-related entries in container logs for 7 days
- The WAHA REST API (
GET /api/messages) returnspollUpdatesfor group poll messages, but:- Only 0-1
pollUpdatesper poll (should be many more) selectedOptionscontains encryptedBufferdata
- Only 0-1
participantAltinpollUpdateMessageKeydoes provide the real phone number
Steps to Reproduce
- Configure a NOWEB session with
poll.voteandpoll.vote.failedin webhook events - Create a poll in a WhatsApp group
- Have multiple group members vote on the poll
- Observe webhook endpoint —
poll.voteevents are not delivered for most/all votes - Check WAHA API
GET /api/messages—pollUpdatesarray has 0-1 entries instead of all voters
Expected Behavior
poll.votewebhook should fire for each vote received in a group poll (as it did with WEBJS engine)poll.vote.failedshould fire if decryption failspollUpdatesin the message data should contain all vote entries
Actual Behavior
poll.votewebhook fires sporadically (7 times in 2 weeks vs 220 times in 5 days with WEBJS)poll.vote.failednever firespollUpdatescontains 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).
Reactions are currently unavailable