Diagnosing Missing GitHub Notifications in a Gitter Room
When GitHub events stop appearing in a Gitter room, the issue is often with the integration token, webhook filter, room permissions, or network connectivity. This guide walks through a step‑by‑step diagnostic flow, shows how to verify each component, and outlines the fixes and when to ask for help.
13 Mar 2026, 12:10 UTC

Problem Statement
GitHub pushes events (push, pull‑request, issue, etc.) to a Gitter room via a webhook. When those messages no longer appear in the room, the problem is often not in GitHub but in the Gitter integration or the network path that carries the payload. This guide helps you pinpoint the root cause and apply the correct fix.
Diagnostic Flow
Use the table below to match the symptoms you observe with the most likely cause. Then follow the ordered checks to confirm or rule out each possibility.
| Symptom | Probable Cause | Primary Check |
|---|---|---|
| No events at all | Missing or expired GitHub token | Verify token in Gitter integration settings |
| Only some events (e.g., pushes) appear | Webhook payload filter blocking certain event types | Inspect webhook filter rules |
| Messages appear but are blank or contain errors | Room permissions disallow bot messages | Check room member roles |
| Room shows "…waiting for events…" or no activity log | Outbound network blocked (firewall, proxy) | Test connectivity to github.com |
Step 1 – Verify the GitHub Integration Token
- Log into Gitter as an administrator of the target room.
- Navigate to Room Settings → Integrations → GitHub.
- Check the
Tokenfield. It should contain a non‑empty string and be marked as active. If the token appears blank or expired, generate a new one in GitHub:- Go to
Settings → Developer settings → Personal access tokens. - Create a token with the
repoandnotificationsscopes. - Copy the token exactly as displayed.
- Paste it into the Gitter integration field and save.
- Go to
- After saving, Gitter will attempt to validate the token. A successful validation shows a green checkmark.
- Risk: If you revoke the token after changing your GitHub password, Gitter will silently fail until you update it.
- Check: Send a test event from GitHub (e.g., push a commit) and confirm the message appears.
Step 2 – Inspect Webhook Payload Filters
- In the same
GitHubintegration page, locate thePayload Filterssection. - By default, Gitter may filter out events that are not explicitly allowed. Verify that the event types you expect (e.g.,
push,pull_request) are listed or that the filter is set toAll. - Example filter rule to allow only pushes and PRs:
event_types: push,pull_request - After adjusting, click Save and trigger a test event.
- Check the
Webhook LogsunderRoom Settings → Integrations → GitHub → Logsfor the payload. A 200 OK response indicates the filter passed. - Risk: Over‑restrictive filters can silently drop legitimate events.
Step 3 – Confirm Room Permissions for Bots
- Navigate to
Room Settings → Members. - Find the
Gitter Bot(often listed asgitter-bot@). - Ensure the role is at least Member or Moderator. Bots with Guest status cannot post messages.
- Adjust the role if necessary and save.
- Test by sending a message from the bot manually:
curl -X POST https://api.gitter.im/v1/rooms//chatMessages -H "Authorization: Bearer " -d "{\"text\":\"Test message\"}".- Run this from a machine that has network access to
api.gitter.im. - Expected response: HTTP 201 Created.
- Run this from a machine that has network access to
- Risk: If the bot token is revoked or expired, messages will fail silently.
Step 4 – Test Outbound Connectivity
- From a server or workstation that hosts the Gitter integration (often the same as your GitHub webhook endpoint), run:
curl -I https://api.github.com - Expected output contains
HTTP/2 200 OK. If you receive a timeout or DNS error, a firewall or proxy is blocking outbound HTTPS to GitHub. - Check corporate firewall rules for outbound ports 443 and host
github.com. If blocked, add an allow rule or use a proxy. - Risk: Network restrictions may also block webhook callbacks if the Gitter service cannot reach GitHub’s callback URL.
Escalation Criteria
- If all four checks pass but events still do not appear, verify that the GitHub repository is correctly configured to send events to the webhook URL. In the repository settings, under
Webhooks, confirm the payload URL matcheshttps://api.gitter.im/v1/integrations/github(or the specific room webhook endpoint). - Check the
Webhook Deliverypage in GitHub for any delivery failures. A 4xx or 5xx status indicates an issue on the receiver side; 2xx indicates GitHub delivered successfully but the receiver may have rejected the payload. - If the webhook shows 2xx responses yet no messages appear, contact Gitter support with the webhook logs and a sample payload. Provide the
room-idand the timestamp of the test event. - When network issues are suspected, involve the network operations team to confirm that the Gitter service can reach
api.github.comandapi.gitter.imover HTTPS. - Document all steps taken and the outcomes; this aids support in diagnosing the problem faster.
Practical Verification Checklist
- Token is active and has required scopes.
- Webhook filter includes desired event types.
- Bot role is at least Member.
- Outbound HTTPS to GitHub and Gitter APIs succeeds.
- GitHub webhook delivery status is 2xx.
- Gitter logs show a 200 OK response for the payload.
Conclusion
Missing GitHub notifications in a Gitter room usually boil down to one of four concrete problems: an expired token, a restrictive payload filter, insufficient bot permissions, or blocked outbound traffic. By following the diagnostic flow above, you can quickly identify and resolve the issue, or provide the right information to support teams if the problem persists.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.