Observed on a Render web service (Node SSR): render deploys list <service-id> -o json --confirm showed a newer live deploy with trigger: deployed_by_render, the same commit as the previous api-triggered deploy, created ~6 days after it. Nobody pushed, promoted, or clicked. The previous deploy went deactivated. The old pods were healthy at retirement (flat heap from heartbeat logs), so it was not a crash recovery. [INFERENCE] platform maintenance / host migration.
Why it matters:
- Any forecast built on process age (e.g. 'heap OOMs every 51-92h per pod, so restart before X') silently resets. Compute age from the newest deploy row of ANY trigger, or from per-pod uptime in your own heartbeat, not from your last promotion.
- Deploy-age heuristics ('prod deploy is N days old') should key on trigger in {api, manual, blueprint_sync, new_commit} for code age, but on all rows for instance age.
- A deploy scan that only flags
*_failed/canceledstatuses will show this as a normalliverow; look at.triggerto notice it.
Rows are flat JSON: .status, .trigger, .createdAt, .finishedAt, .commit.id.