Issues
Issues are automatically tracked delivery problems in Hooklistener that help you quickly identify, understand, and resolve webhook failures. Instead of sifting through individual failed events, Issues group related failures together and provide actionable insights for resolution.
Overview
When webhook deliveries fail, Hooklistener automatically creates and updates Issues to help you track and resolve problems efficiently. Each Issue represents a pattern of failures with similar characteristics, making it easy to focus on fixing root causes rather than individual symptoms.
Key features:
- Automatic detection: Issues are created automatically from delivery failures
- Intelligent grouping: Similar failures are grouped into single Issues
- Status tracking: Track Issues from detection through resolution
- Occurrence counting: See how many times each Issue occurred
- Pattern analysis: Understand failure types and causes
- Resolution workflow: Mark Issues as resolved when fixed
- Detailed context: Access full error details and affected webhooks
How Issues Work
Automatic Creation
When a webhook delivery fails, Hooklistener analyzes the failure:
- Failure occurs: Delivery to destination fails
- Error analysis: Hooklistener examines error type, destination, and details
- Pattern matching: Checks if similar Issue already exists
- Issue creation or update:
- New pattern: Create new Issue
- Existing pattern: Update existing Issue, increment occurrence count
Issue Grouping
Issues are grouped by:
- Destination: Which destination is failing
- Error type: Network error, HTTP status code, timeout, etc.
- Error details: Specific error message or code
- Bridge: Which Bridge is affected
Example grouping:
- "Destination 'Production API' - 503 Service Unavailable" (one Issue)
- "Destination 'Production API' - Connection Timeout" (separate Issue)
- "Destination 'Staging API' - 503 Service Unavailable" (separate Issue)
This intelligent grouping helps you focus on distinct problems rather than being overwhelmed by individual failures.
Issue Lifecycle
Open → Work in Progress → Closed
↑ ↓
└──────────────────────────┘
Open: New or active Issue requiring attention
- Automatically created when failure pattern detected
- Remains open until you begin working on it
Work in Progress: Issue is being investigated or fixed
- Manually set when you start working on the Issue
- Indicates active troubleshooting
Closed: Issue has been resolved
- Manually closed after fixing root cause
- Includes resolution timestamp
- If same failure pattern reoccurs, Issue may reopen
Issue Structure
Each Issue contains:
Core Information
Title: Descriptive summary of the problem
- Example: "Destination 'Slack Alerts' - Connection Timeout"
- Includes destination name and error type
- Auto-generated from failure details
Status: Current state (Open, Work in Progress, Closed)
Bridge: Which Bridge is affected
- Link to Bridge details
- Shows Source and Destination configuration
Destination: Which specific destination is failing
- Destination name and type
- URL and configuration details
Failure Details
Error Type:
- Network error (timeout, connection refused)
- HTTP error (4xx, 5xx status codes)
- Authentication error
- Circuit breaker error
- Transformation error
Error Message: Detailed error description
- Original error from destination
- Additional context from Hooklistener
- Stack traces if applicable
HTTP Status Code: If HTTP error
- 400 Bad Request
- 401 Unauthorized
- 403 Forbidden
- 404 Not Found
- 429 Too Many Requests
- 500 Internal Server Error
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
Occurrence Information
Occurrence Count: How many times this Issue occurred
- Incremented with each matching failure
- Helps prioritize critical issues
First Occurrence: When Issue was first detected
- Timestamp of initial failure
- Helps understand when problem started
Last Occurrence: Most recent occurrence
- Timestamp of latest matching failure
- Indicates if Issue is ongoing or resolved
Resolved At: When Issue was closed (if closed)
- Timestamp when marked as resolved
- Useful for tracking resolution time
Viewing Issues
Issues Dashboard
Access Issues from the main navigation:
Navigate to: Issues
View options:
- All Issues: Every Issue regardless of status
- Open: Only unresolved Issues
- Work in Progress: Issues actively being fixed
- Closed: Resolved Issues
Sorting:
- By last occurrence (default - most recent first)
- By occurrence count (highest first)
- By creation date
- By status
Filtering:
- By Bridge
- By Destination
- By error type
- By date range
Issue Details
Click any Issue to view complete details:
Summary Section:
- Title and status
- Occurrence count and timeline
- Bridge and Destination info
- Error details
Affected Webhooks:
- List of all webhook deliveries that triggered this Issue
- Full request/response details
- Retry attempts
- Timestamps
Resolution Actions:
- Update status (Open → Work in Progress → Closed)
- Add notes about investigation or resolution
- View related events
- Retry failed webhooks
Managing Issues
Updating Issue Status
Mark as Work in Progress:
When you start investigating or fixing an Issue:
Via Dashboard:
- Navigate to Issues → Select Issue
- Click "Mark as Work in Progress"
- Optionally add notes about your investigation
Via API:
curl -X PATCH https://api.hooklistener.com/api/v1/issues/{issue_id} \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "work_in_progress"
}'
Mark as Closed:
When you've fixed the root cause:
Via Dashboard:
- Navigate to Issues → Select Issue
- Click "Close Issue"
- Optionally add resolution notes
- Resolved timestamp is automatically set
Via API:
curl -X PATCH https://api.hooklistener.com/api/v1/issues/{issue_id} \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "closed"
}'
Reopening Issues
If a closed Issue occurs again:
Automatic reopening:
- Same failure pattern detected
- Issue status automatically changes from Closed to Open
- Occurrence count incremented
- Last occurrence timestamp updated
Manual reopening:
- Realized Issue wasn't fully resolved
- Change status from Closed back to Open or Work in Progress
Common Issue Types
Network Errors
Connection Timeout
- Cause: Destination not responding within timeout period
- Solutions:
- Check destination service health
- Verify network connectivity
- Increase timeout if legitimate slow responses
- Review destination capacity
Connection Refused
- Cause: Destination service not accepting connections
- Solutions:
- Verify destination is running
- Check firewall rules
- Verify URL and port are correct
- Review destination logs
DNS Resolution Failure
- Cause: Cannot resolve destination hostname
- Solutions:
- Verify domain name is correct
- Check DNS server health
- Wait for DNS propagation if recent change
- Use IP address temporarily
HTTP Errors
400 Bad Request
- Cause: Destination rejected payload format
- Solutions:
- Review payload structure
- Check required fields
- Validate data types
- Review destination API documentation
- Test transformation if used
401 Unauthorized
- Cause: Authentication failed
- Solutions:
- Verify API keys/tokens
- Check Authorization header format
- Confirm credentials haven't expired
- Review secret configuration
403 Forbidden
- Cause: Authenticated but not authorized
- Solutions:
- Check API key permissions
- Verify account access level
- Review destination access controls
- Confirm API key scope
404 Not Found
- Cause: Destination endpoint doesn't exist
- Solutions:
- Verify URL is correct
- Check for API version changes
- Review destination configuration
- Confirm endpoint still exists
429 Too Many Requests
- Cause: Rate limit exceeded
- Solutions:
- Review destination rate limits
- Reduce webhook volume
- Implement rate limiting/throttling
- Contact destination for limit increase
500 Internal Server Error
- Cause: Destination service error
- Solutions:
- Check destination service health
- Review destination logs
- Report to destination service provider
- Wait for service recovery
- Implement retries
503 Service Unavailable
- Cause: Destination temporarily unavailable
- Solutions:
- Wait for service recovery
- Check destination status page
- Verify maintenance windows
- Circuit breaker will help handle this
504 Gateway Timeout
- Cause: Upstream service timeout
- Solutions:
- Check destination infrastructure
- Review proxy/load balancer configuration
- Increase timeout if appropriate
- Optimize destination processing
Configuration Errors
Invalid Transformation
- Cause: Transformation code has errors
- Solutions:
- Review transformation syntax
- Check transformation logs
- Test with sample payload
- Fix JavaScript errors
Filter Mismatch
- Cause: All webhooks filtered out
- Solutions:
- Review filter logic
- Test filters with real payloads
- Verify field paths are correct
- Adjust filter conditions
Circuit Breaker Open
- Cause: Too many failures triggered circuit breaker
- Solutions:
- Fix underlying destination issue
- Wait for automatic recovery
- Reset circuit breaker if destination fixed
- Review circuit breaker thresholds
Issue Workflows
Investigation Workflow
- Identify Issue: Review Issues dashboard
- Prioritize: Sort by occurrence count or recency
- Mark as WIP: Update status to Work in Progress
- Analyze Details:
- Review error messages
- Check affected webhooks
- Examine request/response data
- Test destination independently
- Diagnose Root Cause:
- Network issue?
- Configuration error?
- Destination problem?
- Authentication issue?
- Implement Fix:
- Update configuration
- Fix destination
- Adjust transformation
- Correct authentication
- Test Resolution:
- Retry affected webhooks
- Monitor for new occurrences
- Verify deliveries succeed
- Close Issue: Mark as Closed with notes
Bulk Resolution Workflow
For multiple related Issues:
- Identify pattern: Multiple Issues with same root cause
- Fix common problem: Update shared configuration or fix destination
- Test thoroughly: Ensure fix addresses all Issues
- Close Issues: Mark all related Issues as resolved
- Monitor: Watch for any recurrence
Monitoring and Alerting
Dashboard Summary
Quick overview of Issue health:
Issue Statistics:
- Total open Issues
- Issues in Work in Progress
- Issues resolved in last 7/30 days
- Highest occurrence count
- Most frequent destinations with Issues
Trends:
- Issues opened over time
- Issues closed over time
- Average time to resolution
- Most common error types
Issue Alerts
Configure notifications for new Issues:
Alert conditions:
- New Issue created
- Issue occurrence count exceeds threshold
- Issue remains open for X days
- High-priority destination having issues
Notification channels:
- Slack
- Discord
- Telegram
- Webhook
Best Practices
Proactive Issue Management
-
Review Issues daily
- Check for new Issues each day
- Prioritize by occurrence count
- Address high-impact Issues first
-
Set up alerts
- Get notified immediately of new Issues
- Configure threshold alerts for high occurrence counts
- Monitor critical destinations closely
-
Track resolution time
- Aim to resolve Issues quickly
- Document resolution steps
- Learn from patterns
Investigation
-
Start with error details
- Read error messages carefully
- Check HTTP status codes
- Review stack traces
-
Examine affected webhooks
- Look at request payloads
- Check response data
- Identify commonalities
-
Test independently
- Reproduce the issue outside Hooklistener
- Test destination endpoint directly
- Verify credentials and configuration
Resolution
-
Fix root cause, not symptoms
- Don't just retry failed webhooks
- Address underlying problem
- Verify fix resolves Issue pattern
-
Document resolution
- Add notes to Issue
- Update configuration docs
- Share knowledge with team
-
Monitor after fixing
- Watch for Issue recurrence
- Verify sustained resolution
- Adjust if needed
API Reference
List Issues
curl -X GET https://api.hooklistener.com/api/v1/issues \
-H "Authorization: Bearer YOUR_API_KEY"
Query parameters:
status: Filter by status (open, work_in_progress, closed)page: Page numberpage_size: Items per page
Response:
{
"items": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"bridge_id": "660e8400-e29b-41d4-a716-446655440001",
"destination_id": "770e8400-e29b-41d4-a716-446655440002",
"status": "open",
"error_type": "http_error",
"error_code": "503",
"error_message": "Service Unavailable",
"occurrence_count": 15,
"first_occurrence_at": "2024-01-15T10:00:00Z",
"last_occurrence_at": "2024-01-15T10:30:00Z",
"resolved_at": null
}
],
"pagination": {
"current_page": 1,
"page_size": 10,
"total_pages": 3,
"total_records": 25
}
}
Get Issue Details
curl -X GET https://api.hooklistener.com/api/v1/issues/{issue_id} \
-H "Authorization: Bearer YOUR_API_KEY"
Update Issue Status
curl -X PATCH https://api.hooklistener.com/api/v1/issues/{issue_id} \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "closed"
}'
Troubleshooting
Too Many Issues
Problem: Overwhelmed by number of Issues
Solutions:
-
Filter by priority:
- Sort by occurrence count
- Focus on high-impact destinations
- Address patterns, not individual Issues
-
Identify common causes:
- Look for shared error types
- Fix systemic problems
- Batch-resolve related Issues
-
Set up better monitoring:
- Use circuit breakers
- Implement health checks
- Proactive alerting
Issues Not Being Created
Problem: Failures occurring but no Issues appearing
Possible causes:
- Failures being retried successfully
- Circuit breakers preventing repeated failures
- Filters removing all webhooks
Verification:
- Check event history for failures
- Review retry outcomes
- Verify circuit breaker status
False Issues
Problem: Issues created for expected behavior
Examples:
- 404 errors for intentionally missing resources
- Rate limiting during expected traffic spikes
- Maintenance window failures
Solutions:
- Adjust Bridge configuration
- Use filters to exclude expected failures
- Schedule maintenance windows
- Temporarily disable Bridges during maintenance
Next Steps
Now that you understand Issues, explore related features:
- Monitor Circuit Breakers for automatic failure protection
- Configure Retries to reduce transient failures
- Track Events to see individual webhook deliveries
- Build Bridges with reliability in mind
- Set up Destinations to prevent common issues
Issues provide critical visibility into webhook delivery problems, helping you maintain reliable webhook workflows. By actively monitoring and resolving Issues, you ensure your webhook integrations operate smoothly and efficiently.