BREAKING: Clerk MINOR — Webhook Delivery Delays [investigating]
Clerk experiencing delayed webhook delivery. Partial disruption. Immediate workarounds and monitoring steps for indie hackers.
BREAKING: Clerk Webhook Delivery Delays — Workarounds Available
Status: INVESTIGATING | Severity: MINOR | Impact: Partial Disruption
Last Updated: Now | Investigating Team: Clerk Infrastructure
---
What's Happening
Clerk is currently experiencing delays in webhook delivery. Webhooks are arriving, but with extended latency—some reports indicate 5-30 minute delays instead of near-instantaneous delivery.
Who's Affected
---
Immediate Workarounds (Do This NOW)
1. Implement Client-Side Polling (Quick Fix)
Don't wait for webhooks. Query Clerk's API directly:```javascript // Check auth state every 30 seconds instead of webhook reliance setInterval(async () => { const user = await clerkClient.users.getUser(userId); // Sync your DB with fresh data updateLocalUser(user); }, 30000); ```
2. Add Timeout Handlers
For critical operations, don't block on webhook delivery:```javascript // Sign-up: sync user immediately, verify later await createUserInDB(clerkUser); setTimeout(() => verifyWebhookArrival(clerkUser.id), 60000); ```
3. Queue Critical Operations
If webhooks are mission-critical, use a job queue as fallback:```javascript // Bull, RabbitMQ, or Inngest await queue.add('sync-user', { clerkId }, { delay: 5000 }); ```
4. Disable Webhook-Only Logic
Revert to optional webhook processing:```javascript // Webhooks are nice-to-have, not required if (event.type === 'user.created') { // Try to sync, but don't fail if missing syncUserAsync(event.data.id).catch(err => logger.warn(err)); } ```
---
How to Check If You're Affected
1. Check Clerk Dashboard: - Status page: https://status.clerk.dev - Look for "Webhook Service" updates
2. Test Your Webhooks: ```bash
Manually trigger test webhook in Clerk Dashboard
Measure delivery time in your logs
If > 2 minutes, you're hitting the delay
```3. Monitor Your Logs:
```javascript
console.log(Webhook received at: ${new Date().toISOString()});
// Compare against event timestamp in webhook payload
// Delay = current time - event.createdAt
```
---
Alternative Tools to Consider (If Prolonged)
If delays persist beyond 2 hours:
---
Monitor for Recovery
Set Up Alerts
```javascript
// Track webhook latency
const latency = Date.now() - webhook.timestamp;
if (latency > 120000) {
alertTeam(Webhook delay: ${latency}ms);
}
```
Check Status Updates
Expected Recovery
Clerk typically resolves delivery delays within 1-4 hours. Their infrastructure team is actively investigating.---
Bottom Line
This is NOT a security issue. Your authentication is safe. Webhooks are delayed, not lost. Implement polling as a temporary layer and proceed normally. Monitor the status page for updates.
Stay calm. You've got this.