Skip to content
Follow yggy on LinkedInFollow @yggy_tech on X

Retries and redelivery

yggy delivers each event to your endpoint over HTTPS and retries failures on a fixed schedule. This page covers what your endpoint should answer, how retries and auto-disable work, the delivery guarantees you get, and how to send test events and redeliver. To receive events, set up an endpoint first.

  • Answer with any 2xx status within 10 seconds. yggy reads at most 4 KB of your response and ignores it. Do slow work after you answer.
  • Redirects count as failures and are not followed.
  • yggy tries each delivery up to 8 times. After the first attempt it waits about 1 minute, 5 minutes, 15 minutes, 1 hour, 3 hours, 6 hours and 12 hours, so the last attempt comes about 22 hours after the event. Each wait varies by up to 10%.
  • Answering 410 Gone stops that delivery and disables the endpoint.
  • If a delivery fails after the endpoint has been failing for more than 3 days, yggy disables the endpoint and cancels its waiting deliveries. An endpoint that gets few events can therefore fail for longer than 3 days before it is disabled. Developers → Webhooks shows the failures; enable the endpoint again once it works.
  • At least once. The same event can arrive more than once, for example after a retry or a redelivery. Use the envelope id (or yggy-event-id) to ignore duplicates.
  • No ordering. Events can arrive in a different order than they happened. Use created_at and read the current state from the API when order matters.
  • graph.entities_changed can repeat ids from an earlier event; see Graph changes.
  • Send test event sends a webhook.test event with empty data to the endpoint, whatever events it subscribes to. You can send 10 per minute per endpoint. A disabled endpoint must be enabled first.
  • Redeliver on a delivery sends the same payload again with a fresh signature. It is available once the original delivery has finished; while that delivery is still waiting, retrying or sending, redeliver is refused with a 409 and you can try again after it finishes. You can redeliver 10 times per minute per endpoint. Delivery history is kept for 30 days.
  • Test events and redeliveries also share a limit of 60 per minute for the whole organization. Over any of these limits the API answers 429 with the code RATE_LIMITED; wait a minute and try again.

On self-hosted installations without a queue service, retries can start up to a minute later than the schedule above.