Troubleshooting
Common Issues
Webhook Not Found (404)
Symptom:
HTTP/1.1 404 Not FoundCauses & Solutions:
Incorrect URL path
# Wrong: Missing prefix curl http://localhost:8080/my-webhook # Correct: Include full path curl http://localhost:8080/webhooks/v1alpha2/my-webhookConfiguration mismatch
# Configuration entrypointUrl: /github/events # URL should be: /webhooks/v1alpha2/github/events
Authentication Failed (401)
Symptom:
{
"error": "security validation failed"
}Solutions:
Check secret/token
# Verify environment variable is set echo $WEBHOOK_SECRET # Ensure it matches configuration export WEBHOOK_SECRET="correct-secret"Check headers
# Missing required header curl -H "X-API-Key: key" ...
Rate Limit Exceeded (429)
Symptom:
{
"error": "rate limit exceeded",
"client_ip": "192.168.1.100"
}Solutions:
Increase limits
throttling: maxRequests: 10000 # Increase window: 60Add burst capacity
throttling: burst: 100 burstWindow: 10
Storage Connection Failed
Symptom:
Error: storage failed: connection refusedSolutions:
Check connectivity
# Test Redis redis-cli -h localhost pingVerify credentials
storage: - type: redis specs: host: localhost # Correct host port: 6379 # Correct port password: # Correct password valueFrom: envRef: REDIS_PASSWORD
Template Errors
Symptom:
Error: template parsing failedSolutions:
Check syntax
# Wrong: Missing closing brace templateString: '{{ .Value }' # Correct templateString: '{{ .Value }}'Handle nil values
templateString: | {{ with .Data }} {{ .Field | default "N/A" }} {{ end }}Validate JSON
templateString: | {{ if .Payload }} {{ with $data := fromJSON .Payload }} {{ $data.field }} {{ end }} {{ end }}
Debugging Techniques
Enable Debug Logging
export WH_DEBUG=true
./webhooked serve --config webhooked.yamlCheck Configuration
# Validate configuration
./webhooked --validate --config webhooked.yamlMonitor Metrics
# Check metrics endpoint
curl http://localhost:8080/metrics | grep webhooked
# Key metrics to watch
webhooked_http_requests_total
webhooked_storage_errors_total
webhooked_security_rejections_totalTest Individual Components
# Test webhook endpoint
curl -i -X POST http://localhost:8080/webhooks/v1alpha2/test \
-H "Content-Type: application/json" \
-d '{"test": "data"}'
# Test health endpoint
curl http://localhost:8080/health
# Test readiness
curl http://localhost:8080/readyError Messages
spec not found
Webhook not configured
Check configuration
security validation failed
Auth failed
Check credentials
rate limit exceeded
Too many requests
Wait or increase limits
connection refused
Storage down
Check storage service
context deadline exceeded
Timeout
Check storage service
invalid template
Template error
Fix template syntax
environment variable not found
Missing env var
Export variable
FAQ
Getting Help
Check logs: Enable debug logging
Review configuration: Validate YAML syntax
Test components: Isolate the issue
GitHub Issues: Report bugs
Community: Ask questions
Most issues can be resolved by checking configuration and connectivity.
Last updated