Skip to main content
Version: Latest

Webhook Retry

When your endpoint fails to receive an event, you can resend the webhook without waiting for a new real event. Hub Chatt2.me supports retry for a single log or in bulk.

When to use retry?

  • Your server was down during a period
  • There was a bug in the processing and you've already fixed it
  • The endpoint returned a temporary error (e.g. database unavailable)
  • You want to test the processing of a specific event again

Retry a specific log

curl -X POST \
"https://api.chatt2.me/v1/organization/webhook/{webhookId}/webhook-log/{webhookLogId}/retry" \
-H "x-api-key: your-api-key"

Response

{
"success": true,
"newLogId": "d4e5f6a7-b8c9-0123-def0-456789012345"
}
FieldDescription
successtrue if the retry was executed (does not indicate the endpoint responded 200)
newLogIdUUID of the new log generated for this retry — use it to track the result
info

success: true means the Hub attempted to resend the event. The actual result of the new attempt is recorded in the log with id newLogId. Check it to see the statusCode and responseBody of the new delivery.

Bulk retry

Resend multiple logs at once by passing an array of webhookLogIds:

curl -X POST \
"https://api.chatt2.me/v1/organization/webhook/{webhookId}/webhook-log/retry" \
-H "x-api-key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"webhookLogIds": [
"b2c3d4e5-f6a7-8901-bcde-f23456789012",
"c3d4e5f6-a7b8-9012-cdef-345678901234"
]
}'

Response

{
"results": [
{
"webhookLogId": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
"success": true,
"newLogId": "e5f6a7b8-c9d0-1234-ef01-567890123456"
},
{
"webhookLogId": "c3d4e5f6-a7b8-9012-cdef-345678901234",
"success": false,
"newLogId": null
}
]
}

When success is false for an item, the retry could not be executed for that log (e.g. invalid log or already deleted).

  1. Identify failed logs — use the ?status=Failed filter in List Webhook Logs
  2. Collect the IDs of the logs that need to be resent
  3. Fix the issue on your server before retrying
  4. Execute the bulk retry with the collected IDs
  5. Check the new logs (newLogId) to confirm everything was processed successfully
# 1. List failed logs and extract IDs (example with jq)
FAILED_IDS=$(curl -s \
"https://api.chatt2.me/v1/organization/webhook/{webhookId}/webhook-log?status=Failed&limit=50" \
-H "x-api-key: your-api-key" \
| jq '[.data[].id]')

# 2. Execute bulk retry
curl -X POST \
"https://api.chatt2.me/v1/organization/webhook/{webhookId}/webhook-log/retry" \
-H "x-api-key: your-api-key" \
-H "Content-Type: application/json" \
-d "{\"webhookLogIds\": $FAILED_IDS}"

Limitations

  • You can only retry logs with Failed status
  • Retry creates a new log — the original log remains as Failed in the history
  • The maximum number of IDs per bulk retry request is determined by the limit of 50 records per page when listing