Discord webhook doesnt work #178
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
the browser is not reachable, the thing is i dont even get any webhook message from the discord bot. I want the discord bot to be as informatice as they can. Reporting any error event that are happening in the server
Triage notes
Split: the "report any error event" half is now #179 (enhancement, needs-triage).
This ticket is the bug — the browser was unreachable and no message arrived.
What the code says should have happened. The path is wired end to end:
mainbuilds a
notify.ClientwheneverDISCORD_WEBHOOK_URLis non-empty and logsowner notices: enabled/owner notices: disabled (DISCORD_WEBHOOK_URL unset)atstartup, and
Poller.ownerNoticesjudgeslatest.FaultsFrombeside every pass-loginsert. For an unreachable browser, two of the four conditions apply:
row is stall-shaped (due > 0, checked 0, empty skip) — see the
outcomeUnreachablereturn in
runLanePass.ConditionStallcarries no twelve-hour window, so itshould fire on that pass, not half a day later.
RefuseBackoff, and once every browser-backedSite's latest pass is
SkipSidecarDown/SkipNoFetcherwith no sidecar reach insideOwnerWindow,ConditionSidecarDownfires once under the empty-Site suppression row.Repeated silence across a whole outage is therefore not the designed behaviour, which
makes this a real bug rather than the twelve-hour window doing its job.
Candidate causes, ordered.
DISCORD_WEBHOOK_URLis unset on the deployment. #171's own rollout note says thefeature ships dark — unset is silent by design, and the prod step (create webhook,
set the variable, redeploy) is easy to have missed.
failed send is logged and the suppression row deliberately left unwritten, so the
only trace is a
owner notice ...: send failed/webhook status NNNlog line.has waited 15m; a Lane under both thresholds records
SkipAsleep, whichsidecarDownSinceexcludes on purpose (an asleep Lane is not evidence about thesidecar). With a small kagane/comix queue the Lanes may simply never have probed,
in which case nothing judged the browser down at all.
Two facts separate them (both from the deployment, not the repo):
owner notices: enabledordisabled (DISCORD_WEBHOOK_URL unset).latest.FaultsFromwith the notifier(#173), so if the page names a fault the judgement fired and cause 2 is the live one;
if it reads healthy, cause 3 is.
Also worth grepping the API logs for
owner noticeand forbrowser unreachable, browser lanes skipping passes.Two gaps this exposed regardless of which cause wins, for the brief once the cause
is known:
checked > 0, so that pass is neither stall-shaped nor sidecar-down; the first
evidence waits for the next probe.
is why this outage was indistinguishable from a quiet server.