Skip to content

feat: added webhook retry mechanism with exponential backoff#251

Merged
davedumto merged 2 commits intodavedumto:mainfrom
okekefrancis112:webhook_retry
Feb 26, 2026
Merged

feat: added webhook retry mechanism with exponential backoff#251
davedumto merged 2 commits intodavedumto:mainfrom
okekefrancis112:webhook_retry

Conversation

@okekefrancis112
Copy link
Contributor

Summary

Implements webhook retry mechanism with exponential backoff (#238). When a webhook delivery fails, a WebhookDelivery record is persisted and a delayed retry is scheduled via Upstash QStash with backoff intervals of 1m, 5m, 15m, 1h, 1h. After 5 consecutive failures, the webhook is automatically disabled and the user receives an email notification. A daily cron job at 3 AM UTC sweeps any missed retries and cleans up delivery records older than 30 days. New API endpoints support webhook reactivation (PATCH) and manual retry of failed deliveries (POST), while the existing GET endpoint now returns webhook status, failure counts, and recent delivery history.

Closes: #238

@vercel
Copy link

vercel bot commented Feb 25, 2026

@okekefrancis112 is attempting to deploy a commit to the david's projects Team on Vercel.

A member of the Team first needs to authorize it.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@davedumto davedumto merged commit ca5fe1f into davedumto:main Feb 26, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add webhook retry mechanism with exponential backoff

2 participants