--- title: "1.24.15 — Reliable cron-owned job restarts" description: "API deploys now verify the real Jobman cron path, retire old job processes safely, and let cron start fresh replacements with provable lineage." date: "2026-09-09" tags: ["release"] canonical: "https://django-mojo.sitesmojo.com/changelog/1-24-15/" --- API deploys now verify the real Jobman cron path, retire old job processes safely, and let cron start fresh replacements with provable lineage. ### Fixed - Preserved parent-managed deployment status across supported `sudo` launcher paths, preventing healthy canaries from double-reporting completion or skipping their Jobman recycle. - API deployments now repair stale Jobman file ownership, require an active cron service, and run a no-spawn preflight through the exact application-account wrapper before retiring the old engine and scheduler. - Detached recycle now uses fixed system Python, selects only recognizable Jobman processes, and records a failure if a process survives instead of reporting a false restart. The next cron tick owns replacement startup. ### Upgrade notes - API nodes can be without their job engine and scheduler for up to one cron interval while cron starts the replacements. - Custom deployment commands that add another `sudo` boundary must preserve the parent-managed status flag or use the packaged default launcher.