Troubleshoot Webhooks
Debug and resolve webhook delivery issues
Troubleshoot Webhooks
Diagnose and fix common webhook delivery problems.
Check webhook logs
View delivery attempts in your Dashboard:
- Go to Developers > Webhooks
- Click your endpoint
- Select Logs tab
Each log entry shows:
- Event type and ID
- Delivery status
- Response code and body
- Timestamp
Common issues
Endpoint returns non-2xx status
Symptoms: Events marked as failed, retries occurring
Causes:
- Application error in webhook handler
- Incorrect URL configured
- Server returning error pages
Solutions:
- Check your application logs for errors
- Verify the endpoint URL is correct
- Test the endpoint manually with
curl - Ensure handler returns 200 status
Signature verification fails
Symptoms: 400 or 401 responses, signature errors
Causes:
- Wrong signing secret
- Payload modified by middleware
- Clock skew between servers
Solutions:
- Verify signing secret matches Dashboard
- Use raw body for signature verification
- Check server time is synchronized
// Use raw body, not parsed JSON
app.post('/webhooks/plexy',
express.raw({type: 'application/json'}),
(req, res) => {
// req.body is Buffer, not parsed object
const event = plexy.webhooks.constructEvent(
req.body,
req.headers['plexy-signature'],
secret
);
}
);Timeouts
Symptoms: Events show "timeout" status
Causes:
- Handler takes too long (>30 seconds)
- Network issues
- Server overloaded
Solutions:
- Return 200 immediately, process async
- Check server resources
- Review network connectivity
app.post('/webhooks/plexy', (req, res) => {
// Return immediately
res.status(200).send('OK');
// Process in background
setImmediate(() => {
processEvent(req.body);
});
});Missing events
Symptoms: Events not arriving, gaps in event history
Causes:
- Endpoint disabled
- Event type not subscribed
- Firewall blocking requests
Solutions:
- Verify endpoint is enabled
- Check event subscriptions
- Whitelist Plexy IPs
Retry behavior
Failed webhooks are retried with exponential backoff:
| Attempt | Delay |
|---|---|
| 1 | Immediate |
| 2 | 5 minutes |
| 3 | 30 minutes |
| 4 | 2 hours |
| 5 | 8 hours |
| 6 | 24 hours |
After 6 failed attempts, the event is marked as failed.
Manually retry events
To retry a failed event:
- Go to Developers > Webhooks > Logs
- Find the failed event
- Click Retry
Test endpoints
Send test events to verify your endpoint:
- Go to Developers > Webhooks
- Click your endpoint
- Click Send Test Event
- Select event type
- Click Send
Debug locally
Use webhook forwarding for local development:
# Install Plexy CLI
npm install -g @plexy/cli
# Forward webhooks to localhost
plexy webhooks forward --to localhost:3000/webhooks/plexySee also
- Configure Webhooks
- Logs - View all API and webhook logs