Post: Monitor the delivery path, not just the alarm (ntfy 401 silent-failure health check)#25
Draft
clarkbw wants to merge 1 commit into
Draft
Post: Monitor the delivery path, not just the alarm (ntfy 401 silent-failure health check)#25clarkbw wants to merge 1 commit into
clarkbw wants to merge 1 commit into
Conversation
…failure health check) Draft write-up of the signalk-ntfy-relay v0.2.0 delivery-path health check: an expired ntfy token silently 401'd every alarm to nowhere; the fix is a proactive /v1/account heartbeat + reactive consecutive-failure counting that raises notifications.ntfyRelay.deliveryFailed on a channel independent of the down phone. Generalized to any self-hosted alert pipeline (who-watches-the- watcher / dead-man's-switch). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Gs2y7PwtAtP63KXzcyNYrc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft blog post for review — do not merge until Bryan approves (merge = publish).
What it covers
The
signalk-ntfy-relayv0.2.0 delivery-path health check. An expired ntfy access token made every SignalK alarm the relay published return401and silently vanish — the whole alarm-to-phone chain went dark, discovered only by accident while smoke-testing an unrelated plugin. Root-caused to the token via a read-onlyGET /v1/account(401), fixed with a proactive heartbeat + reactive consecutive-failure counting that raisesnotifications.ntfyRelay.deliveryFailedon a channel independent of the down phone (dashboard/voice), excluded from being forwarded back through the failing path.Angle
Generalized beyond marine: the "who watches the watcher" / dead-man's-switch blind spot in any self-hosted alert pipeline (ntfy, Gotify, Pushover, HA, PagerDuty webhooks) — you monitor the thing but not the pipe that tells you about the thing. Applies the well-known Prometheus/Alertmanager Watchdog pattern to the outbound leg, done inside the relay rather than with a second service.
SEO
ntfy-401-silent-push-failure-delivery-path-health-check-heartbeat-dead-mans-switchntfy responded 401,401 Unauthorized,GET /v1/account,notifications.ntfyRelay.deliveryFailedChecks
bundle exec jekyll buildsucceeds (the one Liquid warning is a pre-existing issue in an unrelated 2026-06-05 post)signalk-ntfy-relaysource (commits 66890b9 / 650796f, v0.2.0); all 29 plugin tests pass incl. the 4 new health-check tests🤖 Generated with Claude Code
https://claude.ai/code/session_01Gs2y7PwtAtP63KXzcyNYrc