Without seeing how you’ve set up your requests/routes/handlers, my advice would be to log ‘all the things’.
eg, what’s the reply you’re getting from your initial request to Twitch, you should be getting a 202 back, if not you should be getting an error in the body of the response.
If your subscription request was successful, you should then have a GET request to your callback url. If you’re not getting anything, either it’s not reachable or your handler isn’t configured correctly. If you’re getting a request, it should contain the hub.callback which you respond with, along with a 200 status code.
At this point, assuming you did everything right and your lease is > 0 seconds, you could be able to call the webhook subscriptions endpoint and verify that the webhook has been created. If it has then you should be receiving POST requests to your callback url, if you’re not getting any then it’s likely an error in the configuration of your POST route handler.