SCHEDULED-RUNTIME RELIABILITY

Hermes Codex Cron App-Server Process Leak #62101

A documented P3 issue in which recurring Codex-backed cron runs can leave an app-server subprocess alive after completion, creating accumulating resource use in a long-lived gateway.

Issue analysis · July 18, 2026 · Source issue record

Documented behavior

When model.openai_runtime is configured as codex_app_server for recurring cron jobs inside a long-lived gateway, the reported behavior is that each run can leave a codex app-server child process alive. The issue describes resource accumulation, child MCP or Node processes, and operational friction during Codex upgrades. The reported root cause is missing cleanup for an ephemeral cron-agent session; the issue record notes a local fix that left no process after completion.

Evidence boundary: This page summarizes a reported issue and a conservative reproduction protocol. It does not establish that every Codex runtime or cron configuration is affected.

Verification matrix

CheckWhat to inspectBounded response
Run-to-process accountingDoes each scheduled run have a known parent process and an expected cleanup point?Record process counts before and after a bounded test run, using only non-sensitive diagnostics.
Session cleanupIs the ephemeral Codex session closed when a cron task completes or fails?Confirm behavior across successful, failed, and cancelled runs before assuming cleanup is reliable.
Child-process accumulationDo app-server, MCP, or Node children persist after their owning run exits?Track growth across several controlled runs and retain a redacted process tree as evidence.
Upgrade and restart impactDo held binaries or retained children interfere with normal maintenance?Plan a controlled gateway restart or manual cleanup only under an approved operational procedure.

Reproduction and recovery protocol

  1. Capture the gateway version, runtime setting, cron schedule, and an initial redacted process baseline.
  2. Run a bounded recurring-job reproduction with a clearly identifiable non-sensitive task.
  3. Compare expected and actual child processes after completion, failure, and cancellation states.
  4. Inspect the linked issue and associated changes for the applicable cleanup behavior before patching a production environment.
  5. If growth persists, document the smallest reproducible sequence and use an approved restart or cleanup path while monitoring resource recovery.

Source evidence

GitHub issue #62101 · P3 · Opened July 10, 2026 · Linked PRs #62112 and #62105

Issue status, linked pull requests, and scope can change. Review the linked record before relying on this page for a production decision.