Client or integration
Direct HTTP/API client
Area
Service lifecycle
Summary
When one or more Codex OAuth pool accounts require re-authentication, OpenCodex reports /readyz as HTTP 503 even though the proxy process is running and other configured providers/routes remain usable. In a single-replica Kubernetes deployment, the readiness failure removes the only Service endpoint and makes the entire proxy inaccessible.
Expected: Codex account-pool degradation should be reported as a component/provider failure. The proxy should remain ready when its HTTP server is healthy and at least one route/provider can serve traffic; native Codex traffic can fail or be marked degraded independently.
Reproduction
- Run OpenCodex in a container/Kubernetes pod with multiple providers and a Codex account pool.
- Leave one or more Codex accounts expired so they require re-authentication.
- Start the proxy and query
/healthz and /readyz.
- Observe
/healthz and the proxy listener become available, while /readyz returns 503 and Kubernetes marks the pod unready.
- With a single replica, the Service has no ready endpoint even though non-Codex provider routes are configured.
Version
v2.59.0 (nordz0r/opencodex image)
Operating system
Debian 12 / Kubernetes (single-node k3s)
Provider and model
Codex account pool; other configured providers include Anthropic, Google Antigravity, OpenAI, and xAI routes.
Logs or error output
🚀 opencodex proxy running on http://localhost:10100
GET /healthz → health check
GET /api/* → management API
[opencodex] catalog sync: ... Codex accounts ... need reauthentication
GET /readyz -> 503
Kubernetes: Startup probe failed: HTTP probe failed with statuscode: 503
Pod: Running, 0/1 Ready, no process crash
After changing the Kubernetes probe to /healthz, the pod becomes 1/1 Ready; authenticated catalog and non-Codex inference checks succeed while the Codex pool remains partially degraded. This indicates the process is viable and the account-pool state is too broad a readiness gate.
Screenshots and supporting files
Not applicable.
Redacted configuration
{
"deployment": "single replica",
"readinessProbe": "/readyz",
"livenessProbe": "/healthz",
"codexPool": "multiple OAuth accounts, some requiring re-authentication",
"otherRoutes": "configured non-Codex providers"
}
Checks
Client or integration
Direct HTTP/API client
Area
Service lifecycle
Summary
When one or more Codex OAuth pool accounts require re-authentication, OpenCodex reports
/readyzas HTTP 503 even though the proxy process is running and other configured providers/routes remain usable. In a single-replica Kubernetes deployment, the readiness failure removes the only Service endpoint and makes the entire proxy inaccessible.Expected: Codex account-pool degradation should be reported as a component/provider failure. The proxy should remain ready when its HTTP server is healthy and at least one route/provider can serve traffic; native Codex traffic can fail or be marked degraded independently.
Reproduction
/healthzand/readyz./healthzand the proxy listener become available, while/readyzreturns 503 and Kubernetes marks the pod unready.Version
v2.59.0 (
nordz0r/opencodeximage)Operating system
Debian 12 / Kubernetes (single-node k3s)
Provider and model
Codex account pool; other configured providers include Anthropic, Google Antigravity, OpenAI, and xAI routes.
Logs or error output
After changing the Kubernetes probe to
/healthz, the pod becomes1/1 Ready; authenticated catalog and non-Codex inference checks succeed while the Codex pool remains partially degraded. This indicates the process is viable and the account-pool state is too broad a readiness gate.Screenshots and supporting files
Not applicable.
Redacted configuration
{ "deployment": "single replica", "readinessProbe": "/readyz", "livenessProbe": "/healthz", "codexPool": "multiple OAuth accounts, some requiring re-authentication", "otherRoutes": "configured non-Codex providers" }Checks