Retry schedule
The outgoing worker allows six attempts total: the first attempt, then retries after approximately 30 seconds, 2 minutes, 10 minutes, 1 hour and 6 hours. These are delays between attempts, not guaranteed delivery times. The worker uses a five-second request timeout and does not follow redirects.
Acknowledge durable receipt
Return a 2xx response after safely recording the event for processing. Deduplicate using the payload’s eventId. Use durable storage or a transactional queue so a crash does not turn an unfinished event into an ignored duplicate.
After repeated failures
A delivery becomes dead after the final failed attempt. An endpoint can also be disabled after 20 consecutive failed attempts. Fix the endpoint and check the product’s delivery log and enable controls. Do not assume every product supports replay of a dead event.
Read the implementation guide
See https://www.message.com/developers/webhooks/retries-and-idempotency for the detailed contract. Generic REST requests do not gain idempotency merely by adding an Idempotency-Key header.
Keep going
Put the next step into practice, or ask us about your setup.