-
Notifications
You must be signed in to change notification settings - Fork 0
Usage Guide
This guide covers monitoring, replaying, and managing webhook deliveries.
- Monitoring Deliveries
- Replaying Failed Deliveries
- Exporting to CSV
- Bulk Operations
- Purging Old Records
- Delivery Status
Navigate to: Administration > Webhook Deliveries
| Status | Color | Meaning | Retry? |
|---|---|---|---|
| Pending | Blue | Queued, waiting to be sent | |
| Success | Green | Delivered successfully | No |
| Failed | Orange | HTTP error, will retry | Yes |
| Dead | Red | All retries exhausted | No |
The main deliveries page shows all webhook attempts:
Columns:
- Endpoint - Which webhook endpoint
- Event - Event type + action (e.g., "issue created")
- Resource - Issue ID or Time Entry ID
- Status - Pending, Success, Failed, Dead
- Scheduled At - When queued for delivery
- Attempt Count - Number of retry attempts
- Last Attempt - Timestamp of last HTTP request
- Actions - Replay, Delete, Purge options
Use filters at the top of the page to find specific deliveries:
Filter Options:
- By Endpoint - Select specific webhook endpoint from dropdown
- By Status - Filter by: Pending, Success, Failed, Dead
- By Date Range - Set start and end dates
- By Resource ID - Search for specific issue or time entry
Use Cases:
- Debug why a webhook failed → Filter: Failed → Click delivery
- Audit all webhooks for an issue → Filter: Resource ID
- Check recent activity → Filter: Date Range → Today → Success
Click on any delivery row to see complete information:
Request Information:
- Request Headers - HTTP headers sent
- Request Body - Full payload sent
- Timestamp - When request was sent
Response Information:
- Response Status Code - HTTP status (200, 404, 500, etc.)
- Response Body - Response from external endpoint
- Error Message - Detailed error (if failed)
Delivery Metadata:
- Event ID - Unique event identifier
- Occured At - When event happened in Redmine
- Actor - Redmine user who triggered event
- Redmine URL - Link to Redmine issue/time entry
Retry a single failed or dead delivery:
- Click on a Failed or Dead delivery row
- Click Replay button in the delivery details
- Confirm in modal
- New delivery created with same payload
What Happens:
- ✅ New delivery record created in "Pending" status
- ✅ HTTP request sent immediately
- ❌ Original delivery remains in history (not modified)
- ✅ New delivery visible in deliveries list
Use Cases:
- External service recovered from outage
- Temporary network issue resolved
- Authentication fixed
Replay multiple failed or dead deliveries:
- Apply filters to show only failed/dead deliveries
- Filter: Status = Failed or Dead
- Optionally filter by: Endpoint or date range
- Check boxes for deliveries to replay
- Click Replay Selected button (top right)
- Confirm in modal
What Happens:
- ✅ New delivery records created for each selected delivery
- ✅ All queued immediately
- ✅ Original records preserved
Use Cases:
- After external service recovery (bulk replay)
- After testing new authentication credentials
- After fixing webhook endpoint URL
Export delivery logs for analysis or external processing.
- Apply your desired filters
- By endpoint
- By status
- By date range
- Click Export to CSV button (top right)
- Download the generated file
Endpoint,Event,Resource ID,Status,Scheduled At,Attempt Count,Last Attempt,Error Message,Updated At
Production Slack,issue created,123,Success,2026-02-03 12:00:00,1,2026-02-03 12:00:00,,
Development Slack,issue updated,456,Failed,2026-02-04 09:00:00,3,2026-02-04 09:00:01,404 Not Found,2026-02-04 09:00:05,Field Descriptions:
- Endpoint - Name of webhook endpoint
- Event - Event type and action
- Resource ID - Issue ID or Time Entry ID
- Status - Final delivery status
- Scheduled At - When delivery was queued
- Attempt Count - Number of HTTP attempts
- Last Attempt - Timestamp of last HTTP request
- Error Message - Error details (if applicable)
- Updated At - When delivery was last updated
For Analysis:
- Calculate webhook success rates
- Identify failing endpoints
- Analyze error patterns
- Track delivery performance
For External Processing:
- Import into analytics tools (Splunk, ELK)
- Generate reports
- Data warehousing
For Auditing:
- Compliance verification
- Security audit trails
- Change tracking
From the Webhook Deliveries page, you can perform:
- Replay Selected - Retry failed/dead deliveries
- Export Selected - Download filtered records as CSV
- Purge Selected - Delete old delivery records
- Apply filters to select records
- Select records using checkboxes (leftmost column)
- Click desired action button (top right)
- Confirm in modal
Clean up delivery database to maintain performance.
- Filter to old deliveries (e.g., older than 30 days)
- Check boxes for records to purge
- Click Purge button
- Confirm deletion
What Gets Deleted:
- ✅ Delivery records permanently removed
- ✅ Database size reduced
- ✅ Performance improved
Note: Purged records cannot be recovered.
Configure automatic cleanup via plugin settings:
- Navigate to: Administration > Plugins > Redmine Webhook Plugin (Configure)
- Set Retention Period (in days)
- Save
How It Works:
- A cron job runs periodically
- Automatically deletes deliveries older than retention period
- Applies to both successful and failed deliveries
Definition: Delivery queued, waiting to be sent
Common Causes:
- New delivery created
- Global pause was active (now disabled)
- Previous batch processing not complete
Action Needed: None (will be processed automatically)
Definition: HTTP request returned 200-299
Indicates:
- ✅ Webhook endpoint received the payload
- ✅ Integration working correctly
Response Codes:
- 200 - OK
- 201 - Created
- 202 - Accepted
- 204 - No Content (acknowledged)
Definition: HTTP request returned 4xx or 5xx error
Common Error Codes:
- 400 - Bad Request (invalid payload)
- 401 - Unauthorized (authentication failed)
- 404 - Not Found (invalid endpoint URL)
- 429 - Too Many Requests (rate limiting)
- 500 - Internal Server Error
- 502 - Bad Gateway
- 503 - Service Unavailable
- 504 - Gateway Timeout
Action Needed: Plugin will retry automatically
Definition: All retry attempts exhausted (max: 5)
Common Causes:
- Endpoint permanently offline
- Invalid authentication (not recoverable)
- DNS resolution failed
- SSL certificate error
Action Needed:
- Fix endpoint configuration
- Replay delivery manually
- Update webhook URL if changed
-
Use Filters Wisely
- Filter by date range instead of loading all records
- Focus on failed/dead deliveries for troubleshooting
-
Export Regularly
- Export for external analysis
- Delete old exports to save space
-
Schedule Purges
- Set appropriate retention period (30-90 days)
- Automatic cleanup maintains database performance
-
Monitor Endpoint Health
- Check external service status
- Review failed delivery patterns
- Update endpoint configurations
For High-Volume Redmine Instances:
- Use Minimal payload mode when possible
- Increase BATCH_SIZE for rake task processing
- Implement rate limiting on external services
- Monitor delivery queue growth
For Security-Sensitive Environments:
- Enable HMAC signature authentication
- Use HTTPS for all webhook endpoints
- Implement IP whitelisting on external services
- Set appropriate retention periods
Need Help? See Home or Configuration