Common issues seen when integrating Repo Relay, with the fix for each. The canonical list lives in the repo-relay README.

”Missing Access” error

Symptom: the bot connects but fails to send messages with a “Missing Access” error.

Fix: the bot lacks permission in the target channel. Check that:

  1. The bot has the required permissions at the server level.
  2. Channel-specific permission overrides are not blocking the bot.
  3. The channel ID is correct (right-click the channel and Copy ID with Developer Mode enabled).

Permissions are re-checked per channel at runtime, so a misconfigured channel fails fast with a clear message naming the missing permissions.

Notification cascades (too many messages)

Symptom: replying to Copilot review comments triggers more notifications.

Fix: handled automatically since v1. The review handler filters out pull_request_review events where the reviewer is the repo owner and the review state is commented. No workflow-level filter is needed.

First PR shows a red X

Symptom: the first PR fails before secrets are configured.

Fix: expected. Configure the secrets, then re-run the failed workflow. Future PRs will work.

Job queued behind long CI

Symptom: the Discord notification waits in a queue while long-running CI jobs complete.

Fix: use ubuntu-latest instead of a self-hosted runner so the notification job is isolated, or configure runner labels to separate notification jobs from build jobs. See Runners and State Persistence.

Reviews are slow to appear

Symptom: a review does not show up on the embed immediately.

Cause: GitHub Apps using GITHUB_TOKEN do not trigger review workflow events, so reviews are detected on the next push or CI event via the piggyback approach. On quiet PRs with no further events, enable scheduled polling (reviewPolling in the init wizard) to poll open PRs every five minutes. See Review detection.

State lost between runs

Symptom: embeds stop updating and new ones are created instead.

Cause: GitHub-hosted runners do not persist state between runs. Add actions/cache@v4 for ~/.repo-relay so the SQLite database survives. See Persisting state.

Discord session limit

Symptom: a run reports “Not enough sessions remaining.”

Cause: Discord limits gateway sessions per day. Repo Relay retries with backoff up to a configurable wait. Tune REPO_RELAY_SESSION_MAX_WAIT (default 5 minutes; set 0 to fail immediately) and re-run the job after the reset time shown in the logs.