FAQ & Troubleshooting
Why is the Discord bot showing as offline?
The bot never connects to the Discord Gateway — it always sends messages via the REST API and receives interactions through the HTTPS Interactions Endpoint. Offline is normal and does not affect messaging.
My webhooks are not being forwarded
Check in order:
GET /healthreturns{"status":"ok"}.- The webhook URL points at
{BASE_URL}/webhookand the secret matchesGITHUB_WEBHOOK_SECRET/GITEA_WEBHOOK_SECRET. - At least one enabled route exists for the event (
eventfilter), and its group accepts the sender (seeowners/providers/installationIdon the group). - The route has at least one target with a valid channel/chat id.
- Look at the console Logs tab — every dispatch attempt is recorded with the error.
The Discord bot does not reply to commands / buttons
DISCORD_PUBLIC_KEYmust be set and the Interactions Endpoint URL must point at{BASE_URL}/discord/interactions.- The user must run
/gh loginfirst and the OAuth secrets (GITHUB_CLIENT_ID/GITHUB_CLIENT_SECRET,BASE_URL) must be configured. - Slash commands sync from the scheduled trigger every 5 minutes; global registration can take ~1 hour to propagate.
I deleted a branch but got a "0 commits" push message
Branch deletions via git push --delete arrive as push events with deleted: true — they are rendered as a normal delete message. If you still see "0 commits", the payload's deleted flag was absent (e.g. an old delivery).
How do I point a group at its own webhook endpoint?
See Per-group endpoint — generate a secret from the group's Webhook endpoint panel (owner role), then use POST /webhook/{groupId} with the group secret.
Can I run this outside Cloudflare Workers?
No — the worker requires the KV and D1 bindings declared in wrangler.jsonc and runs on the cloudflare_module Nitro preset.
Where is data stored?
Configuration lives in Cloudflare KV (config:routes, config:groups); send/audit logs and platform↔GitHub links live in D1. See Storage Layout.