Skip to content

Connection alerts never fire for a server that is already down, and never re-fire during a standing outage #1659

Description

@erikdarlingdata

Split out of #1535 so it is not lost when that thread closes. Surfaced by the issue audit; the work exists only inside that thread today and has no tracking issue of its own.

The gap

Lite/Services/ConnectionEdgeDetector.cs:41-47 returns None in two cases that matter:

  1. The first-ever observation of a server. If the app starts while a server is already unreachable, there is no previous state to form an edge against, so no "Unreachable" alert ever fires.
  2. Every offline-to-offline poll. A standing outage produces exactly one alert at the moment of transition and then goes silent, however long it lasts.

Both are correct edge-detection behavior in isolation. They are wrong for the use case the reporter in #1535 actually has: a webhook pointed at GitHub repository_dispatch driving an auto-heal loop. That loop worked on 7/18 and 7/19 and did not on 7/20, and this is why.

Proposed shape (Erik's, from the #1535 thread)

Opt-in, so the default stays quiet:

  • Re-fire "Unreachable" every N minutes while a server remains down.
  • Optionally fire once at startup if a server is already down.

Blocked on one answer

Sizing depends on a question asked in #1535 on 2026-07-20 and never answered: during the 7/20 outage, was the app running continuously, or did it restart while the server was already unreachable?

  • If it was running continuously, case 2 (no re-fire) is the whole story and the fix is the re-fire timer alone.
  • If it restarted, case 1 is also in play and the startup-fire behavior is needed too.

Notes

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions