messages using a lease_seconds of 24h (86400), which is working as intended, receiving the new subscription confirmation and the messages as they occur.
Yesterday I noticed that one of our clients did not have the Subscription event on the front-end triggered when a new user subs.
After some investigation, I realized that the subscription webhook is always setting it’s lease seconds to 13549 seconds, but the followers webhook uses the subscribe message to set it;
Has anyone else faced this issue and/or know if this is a bug on Twitch API? I’d like to set the same expiration time for both messages instead of resubscribing to the subscription hub every four hours.
According to the specification for WebSub. The Hub can ignore the user provided lease_seconds
In this case it’s being set to the time left on the Token you have authenticated with. And a user Access token only lasts four hours.
So lease time goes
set lease to what is asked for
check token expire, if token expires earlier, use the token expire instead
So every four hours, you need to refresh the user access token (as it’s about to expire) then recreate the Webhook subscription for the subscriptions topic.