Troubleshooting
Diagnose and fix common GitScrum webhook issues: delivery failures, timeout errors, payload problems, and configuration errors.
Common webhook issues and how to resolve them.
Webhook Not Firing
Endpoint not saved
Symptom: No requests reach your server after configuring a webhook.
Solution:
- Verify the status indicator is green in the webhook configuration
- Re-enter the URL and press Enter to save
- Refresh the page and confirm the URL persists
Wrong project
Symptom: Webhooks work for one project but not another.
Solution: Webhooks are per-project. Verify you configured the endpoint in the correct project's settings.
Pro plan required
Symptom: Webhook configuration appears but endpoints don't activate.
Solution: Webhooks require a Pro plan or above. Check your workspace billing status.
Delivery Failures
Endpoint returns non-2xx status
Symptom: GitScrum shows delivery failure for a webhook.
Solution:
- Check your server logs for errors
- Ensure your endpoint returns a 2xx status code (200, 201, 202, 204)
- Verify the endpoint path matches exactly
Connection timeout
Symptom: Webhook deliveries consistently fail with timeout errors.
Solution:
- Return 200 immediately before processing (use queue-based processing)
- Check that your server responds within 30 seconds
- Verify your server is not blocked by a firewall
SSL/TLS errors
Symptom: HTTPS webhook deliveries fail.
Solution:
- Ensure your SSL certificate is valid and not expired
- Verify the certificate chain is complete
- Check that your server supports TLS 1.2 or higher
Payload Issues
Empty or malformed payload
Symptom: Your endpoint receives the request but the body is empty or cannot be parsed.
Solution:
- Ensure your server parses
application/jsoncontent type - Add
express.json()middleware (Node.js) or equivalent - Check that your request parsing library handles the payload size
// Express.js - ensure JSON parsing is enabled
app.use(express.json({ limit: '10mb' }));# Flask - ensure JSON content type is handled
event = request.get_json(force=True)Unexpected payload structure
Symptom: Your code fails because expected fields are missing.
Solution:
- Always check for
nullvalues before accessing nested properties - Use optional chaining in JavaScript:
data?.workflow?.title - Validate the payload structure before processing
- See Payload Format for the complete field reference
Testing Issues
Test button sends but server doesn't receive
Symptom: Clicking the test button shows success but no request arrives at your server.
Solution:
- Verify your server is publicly accessible (not behind a VPN or local network)
- Check that the URL is correct including protocol (https://)
- Try using a request inspection tool like webhook.site to verify delivery
- If using ngrok, ensure the tunnel is still active
Test works but real events don't fire
Symptom: Test payloads arrive but actual events don't trigger webhooks.
Solution:
- Verify the specific event is configured (test sends to the specific endpoint)
- Check that the action you're performing matches the event type
- Ensure you're performing the action in the correct project
Permission Issues
Cannot access webhook settings
Symptom: The Webhooks tab is not visible or settings are read-only.
Solution:
- Only Manager and Owner roles can configure webhooks
- Contact your project manager or workspace owner for access
Debugging Tips
Use webhook.site for inspection
Test your webhook configuration using webhook.site:
- Go to webhook.site and copy the unique URL
- Paste it as the endpoint in GitScrum webhooks
- Trigger an event or click Test
- Inspect the full request details on webhook.site
Check delivery logs
GitScrum logs every webhook delivery attempt including:
- Endpoint URL
- Payload body
- HTTP status code returned
- Timestamp
Review these logs to diagnose delivery issues.
Local development with ngrok
For local testing, use ngrok to create a public tunnel:
ngrok http 3000The HTTPS URL provided by ngrok can be used as your webhook endpoint URL. Replace it in GitScrum when your tunnel URL changes.
Related
- Setup Endpoints — Configure webhooks
- Security — Request verification
- Best Practices — Production-ready handling