Skip to content

Heartbeat hides current agent start-failure reasons until blocked #6035

Description

@clubanderson

Finding

Fleet can render a generic down — restart needed agent problem even while the spoke already knows the current start failure reason. Example from fleet triage: projectbluefin/common showed 1 agent(s) down — restart needed, but spoke logs showed copilot hung with no output/no CLI prompt.

Expected

Heartbeat should send the current per-agent mgr.StartFailureState before the blocked threshold, including reason, consecutive count, lastAt, and last exit code/signal when available. Hub verdict text should render starting failed ×N: <reason> (last <ago>) and use that as the blocker instead of the generic down/restart text. Absent fields remain backward compatible.

Tests

  • Pre-threshold start failure renders the precise start failure reason.
  • Threshold/blocked behaviour remains compatible.
  • Absent new fields keeps old generic verdict behaviour.

Source: fleet triage 2026-09-04, recommended fix B2.

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions