Skip to content

pylon: startup health probe hardcodes /health, so engines serving only /v1/health/ready never come up #906

Description

@Max-NV

Problem

Pylon gates startup on a single GET <upstream>/health. The path is hardcoded and not configurable (crates/pylon-lib/src/bringup/upstream.rs). When the probe does not return 2xx, startup fails with upstream health check failed during pylon startup and the process exits, so the sidecar restarts forever next to an inference container that is serving normally.

OpenAI-style engines that expose only /v1/health/ready and /v1/health/live, with no /health, are undeployable for this reason. Dynamo-style engines that serve /health work.

Two more effects of the same hardcoded path:

  • Stargate's forwarded health RTT probe (GET /health over the tunnel) reaches the same missing path, so those backends never publish an RTT for load balancing.
  • The startup probe does not retry. Pylon also exits whenever it starts before the engine finishes loading, which shows up as restarts even on engines that do serve /health.

Expected

Pylon should come up against any OpenAI-compatible upstream whose readiness endpoint follows either convention, without per-deployment configuration, and should wait for a slow-loading engine instead of exiting immediately.

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions