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.
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 withupstream health check failed during pylon startupand 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/readyand/v1/health/live, with no/health, are undeployable for this reason. Dynamo-style engines that serve/healthwork.Two more effects of the same hardcoded path:
GET /healthover the tunnel) reaches the same missing path, so those backends never publish an RTT for load balancing./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.