I confirm this is a bug. is_poll
is not being stored inside the payload, making the callback useless.
Here’s a PR to fix it:
https://github.com/discourse/discourse/pull/8009
I also added a new interface so we can extend the list of allowed attributes from a plugin.