Webhook Timeouts


#1

What is the current timeout for webhooks that are sent to GitHub applications? And could you by any chance increase the timeout?

My special use case here is hosting web applications on free hosting plans by providers Heroku or now. After some time without requests, these services put apps to “sleep” and they get “woken up” the first time they receive a request again. For both Heroku and Zeit, the webhook requests coming from GitHub are usually timing out. For example for now, waking up the app takes about 20-30s, I haven’t tested Heroku recently.

This is very unfortunate because the first request is often times part of a first-run experience of a GitHub app user, from their perspective the app simply does not work as advertised.

If you can’t increase the timeouts in general, I wonder if you can make a check to see if a request has been sent in the past ~5min and if not, increase the timeout for requests until the first response arrives?


API to access recent webhook deliveries
#2

@izuzak do you have any context on this one?

@gr2m I can’t speak to the particulars of the implementation, but I can offer a workaround that I’ve considered using myself: there might be a monitoring service that could ping your apps regularly—which would have the side effect of keeping them awake.


#3

@gr2m Ivan pointed me to the context for current timeout settings. In short: they were recently lowered from 30 seconds to 10 seconds in response to some specific behavior issues that were observed with the longer timeouts.

https://developer.github.com/changes/2017-09-12-changes-to-maximum-webhook-timeout-period/

I’m passing this on to the team in charge of webhooks, but my current recommendation would be to not hold your breath and use a workaround to keep the app alive.


#4

Any recommendations, any one?


#5

Several people have mentioned NewRelic. I think Pingdom has come up as well.

I don’t actually know if this is still an option for the free hosting plan on Heroku, though, per this blog post: https://blog.heroku.com/heroku-free-dynos


#6

I have found https://uptimerobot.com and it works great :slight_smile: They have a free plan and even a public page, here is an example for the first-timers GitHub App: https://stats.uptimerobot.com/LZ40Lcoj4