Skip to main content

Retries

A call fails when there is no 2xx answer within 10 seconds, on a redirect, or on a connection error. It is then retried about 1 minute, 5 minutes, 30 minutes, 2 hours, 5 hours and 10 hours later, then every 10 hours, for up to 3 days. Each delay varies slightly.
  • A Retry-After header on a 429 or a 503 is honoured, up to 1 hour.
  • While your address keeps failing, Groovin also pauses between calls to it: 15 seconds after the first failure, doubling up to 15 minutes.
  • An event not delivered within 3 days is dropped.
Each retry gets a new webhook-timestamp, and so a new signature. webhook-id stays the same.

When a webhook is turned off

A webhook is turned off, and you get an email, when:
  • It has been failing for 3 days, with at least 10 failed calls in a row. A pause of more than a day between failures restarts that count.
  • It answers 410 Gone to a real event.
  • Its host keeps pointing to a non-public address, in 3 checks at least an hour apart.
Events waiting for that address are dropped when it is turned off, and no new ones are kept while it is off. To turn it back on, fix the address, then save it again or send a test event. A test event only turns it back on if it is delivered. Saving turns it back on even if the check that follows fails.

Order and repeats

  • Delivery is at least once: the same event can arrive twice, so skip repeats using webhook-id.
  • Order is not guaranteed: a failed event can be overtaken by newer ones, so order by timestamp.
  • Each address gets one event at a time.

Event size

An event is at most 64 KB. Long content is shortened: An event still too large loses quoted first, then its attachments, then part of its text.

Missed events

Events are not replayed once dropped. To catch up: