Main went red and the alert never fired: Telegram secrets are unset for this repo #309

Open
opened 2026-08-16 07:05:47 +00:00 by coilyco-ops · 0 comments
Owner

Filed by Angie (ENG, claude seat), found while adding PR CI in #308.

Observed

Run 215 failed on main. The alert step ran and printed, from the job log:

telegram alert missing required secret
⚙️ [runner]: Failed to execute step (but continue-on-error is true): exitcode '2': failure

That is the alert script's own guard: it exits 2 when BOT_TOKEN or CHAT_ID is empty. continue-on-error: true then swallows it, which is correct for an alert step but means the failure to alert is itself invisible unless someone reads the log.

So main sat broken with no notification. I only found it because I went looking at the run list for an unrelated reason.

Cause

TELEGRAM_BOT_TOKEN and/or TELEGRAM_RED_CHAT_ID are not set as secrets on coilyco-gaming/eco-app. Every one of the four alert steps in build-publish.yml reads them, so none of them can fire.

I have not checked which of the two is missing, or whether the sibling repos that do alert successfully hold them at the org level rather than per-repo. Setting repo or org secrets is not mine to do.

Why it is worth fixing rather than dropping

#308 closes the window where a broken change reaches main in the first place, which is the bigger win. But the alert is the backstop for everything PR CI cannot catch: a deploy-runner job, a publish failure, a workflow_dispatch run, or a scheduled one. Those still land on main with no gate in front of them, and right now they land silently.

Suggested

  • Set the two secrets, at org level if that is where the working repos get them.
  • Consider whether an alert step that cannot find its secret should be visible somewhere other than a log nobody opens. A missing-secret alert is indistinguishable from a healthy quiet channel, which is the failure mode that hid this.

Not claimed

I have not verified which secret is absent, nor that setting them makes the alert deliver end to end. That needs a live failure or a deliberate test run, which is an operator action rather than mine.

**Filed by Angie (ENG, `claude` seat)**, found while adding PR CI in #308. ## Observed Run [215](https://forgejo.coilysiren.me/coilyco-gaming/eco-app/actions/runs/215) failed on main. The alert step ran and printed, from the job log: ``` telegram alert missing required secret ⚙️ [runner]: Failed to execute step (but continue-on-error is true): exitcode '2': failure ``` That is the alert script's own guard: it exits 2 when `BOT_TOKEN` or `CHAT_ID` is empty. `continue-on-error: true` then swallows it, which is correct for an alert step but means the failure to alert is itself invisible unless someone reads the log. So main sat broken with no notification. I only found it because I went looking at the run list for an unrelated reason. ## Cause `TELEGRAM_BOT_TOKEN` and/or `TELEGRAM_RED_CHAT_ID` are not set as secrets on `coilyco-gaming/eco-app`. Every one of the four alert steps in `build-publish.yml` reads them, so none of them can fire. I have not checked which of the two is missing, or whether the sibling repos that do alert successfully hold them at the org level rather than per-repo. Setting repo or org secrets is not mine to do. ## Why it is worth fixing rather than dropping #308 closes the window where a broken change reaches main in the first place, which is the bigger win. But the alert is the backstop for everything PR CI cannot catch: a `deploy`-runner job, a publish failure, a `workflow_dispatch` run, or a scheduled one. Those still land on main with no gate in front of them, and right now they land silently. ## Suggested * Set the two secrets, at org level if that is where the working repos get them. * Consider whether an alert step that cannot find its secret should be visible somewhere other than a log nobody opens. A missing-secret alert is indistinguishable from a healthy quiet channel, which is the failure mode that hid this. ## Not claimed I have not verified which secret is absent, nor that setting them makes the alert deliver end to end. That needs a live failure or a deliberate test run, which is an operator action rather than mine.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-gaming/eco-app#309
No description provided.