Skip to content

fix(aspire): executable resources report Healthy without an endpoint readiness check #1012

Description

@rickylabs

Verified in a clean room against 0.0.2. Reproduced 2/2 on both the dashboard proxy and its target. Reported independently by 4 of 5 agents.

Aspire reports healthStatus: "Healthy" for an executable resource whose advertised endpoint serves nothing.

Evidence

aspire describe --format Json:

{"displayName":"dashboard","state":"Running","healthStatus":"Healthy",
 "urls":[{"url":"http://localhost:42787"}],"environment":{"PORT":"42407"}}

Two probes of each address:

curl: (28) Operation timed out after 3032 milliseconds with 0 bytes received

Cause

The executable had no healthReports. Healthy was inferred from process state, not from an HTTP readiness check.

Impact

A live-but-not-serving process reads as healthy. This masks crash-looping resources kept alive by watch mode, and it is why several agents trusted a green dashboard while the app returned nothing. Related but distinct from the fixed-port issue below.

Acceptance criteria

  • An executable resource that advertises an HTTP endpoint is not reported Healthy until a readiness probe against that endpoint succeeds.
  • Resources with no health reports are distinguishable from resources with passing health reports (not silently collapsed to Healthy).
  • Integration test: a resource whose process is alive but whose port never binds is reported not-healthy.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions