Why does EventSub send channel:subscribe events for resubs when the documentation says it does not?

Context
The EventSub docs for channel:subscribe state:

This does not include resubscribes.

Source: EventSub Subscription Types | Twitch Developers

What EXACTLY does this mean?


My understanding of what a resub is: Any subscription after the first for a given user. In other words, any subscription with a cumulative months value of 2 or more.

The PubSub documentation for channel-subscribe-events-v1.<channel_id> matches my understanding:

Anyone subscribes (first month), resubscribes (subsequent months), or gifts a subscription to a channel.

Source: PubSub | Twitch Developers

This is the only thing I found close to a definition of what Twitch considers a resubscription. I found nothing else in the dev docs or this forum.


Yet I receive this event for subscriptions of users who e.g. had their first subs be gifted, let run them out and then subscribe on their own.

One or more of these might be true:

  1. I am completely misunderstanding or missing something
  2. the documentation is wrong
  3. the implementation is wrong
  4. EventSub and PubSub disagree on what a resub is

This behavior makes it impossible to differentiate between fresh subs and resubs with EventSub, since channel.subscription.message events trigger only when shared by the user, which is an arbitrary time after the channel:subscribe event and channel:subscribe contains no information about the cumulative months. I deemed the latter point irrelevant previously, since it would always be the 1st month anyway, if it truly did not include resubs.

I would appreciate any help in making me make sense of this.

channel.subscribe - the user changed from a non sub to a sub.

Resub - a user shared in chat their 2/3/4 month streak happened and left a message in chat to celebrate this.

Becuase they did the following

  • changed from a non sub to a sub
  • gift expired, they changed from a sub to a not sub
  • they becamse a sub again via some medium

A resub is an announcment of a continued sub without a break in the middle.

Correct.

And me and Soaryn have both written user voices to change/adjust the eventsub data source to be more representative of what people need.

TLDR:

channel.subscribe - the user changed fron non sub to a sub (a state change)
channel.subscription.message - the user celebrated their continued/uninteruppted subscription (or they restarted their subscription within the grace period, this happens a lot with prime subscribers)

2 Likes

Thank you for the detailed response, Barry!

I went ahead and voted for the related uservoice topics in the hopes of getting some party between the APIs.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.