Delivery & Retries
Stringhive delivers webhooks asynchronously. Your endpoint receives a POST request within a few seconds of the event. If delivery fails, Stringhive retries automatically.
Retry policy
Stringhive makes up to 3 delivery attempts per event:
| Attempt | Delay after previous |
|---|---|
| 1st | Immediate |
| 2nd | 5 minutes |
| 3rd | 30 minutes |
After 3 failures, the delivery is marked as failed and no more attempts are made.
What counts as a failure
Any response with a non-2xx status code is treated as a failure. Connection timeouts (after 10 seconds) are also failures.
Your endpoint should return a 2xx status as quickly as possible. If you need to do slow processing, queue the work and respond immediately.
Responding to webhooks
Return any 2xx status. The response body is stored in the delivery log (up to 10KB) but not used for anything. A simple 200 OK is fine.
Delivery log
Each webhook has a delivery log showing the last 10 deliveries. Open the webhook in Settings > Webhooks to see:
- The event type
- The timestamp
- The HTTP status code from your endpoint
- The first 10KB of your response body
This is the first place to check if your webhook isn't firing as expected.
Unique delivery IDs
Every delivery has a unique X-Stringhive-Delivery header. If you receive the same delivery ID twice (due to network weirdness), you can safely ignore the duplicate. Log the delivery IDs you've processed and check for duplicates on your end.