This is not a bug.
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.