Desktop heartbeat automations advance next_run_at but never execute
Open 💬 9 comments Opened Apr 15, 2026 by zz3310969
💡 Likely answer: A maintainer (github-actions[bot], contributor)
responded on this thread — see the highlighted reply below.
Summary
On Codex Desktop, heartbeat automations attached to the current thread are created successfully and their schedule advances, but they never actually execute.
What happens
- The automation is created successfully.
next_run_atkeeps advancing every minute.last_run_atstays null.- No thread message is posted.
- No inbox item is created.
- No row appears in
automation_runs.
Expected behavior
A heartbeat automation scheduled for every minute should post into the target thread (or at least create an inbox item) and record a run.
Reproduction
- Open Codex Desktop.
- Create a heartbeat automation attached to the current thread.
- Use a 1-minute interval.
- Wait through multiple scheduled intervals.
Example automation:
- Name:
每分钟报时 - Kind:
heartbeat - RRULE:
FREQ=MINUTELY;INTERVAL=1 - Prompt:
输出当前时间,使用清晰易读的本地时间格式。
Actual result
The automation appears active, but nothing is ever delivered to the thread.
Local evidence
The automation is persisted locally in ~/.codex/automations/<id>/automation.toml with the expected heartbeat config.
In ~/.codex/sqlite/codex-dev.db:
automations.next_run_atadvances correctlyautomations.last_run_atremains nullautomation_runsremains empty for this automationinbox_itemsremains empty
This makes it look like scheduling is happening, but execution or delivery is failing silently.
Environment
- Codex Desktop version:
26.409.20454(build1462) - macOS:
26.4(25E246)
Notes
I have already tried restarting and reinstalling Codex Desktop, and the issue still reproduces.
9 Comments
Additional local diagnostics:
As of
2026-04-15 12:42:09 CST, the automation is still in this state locally:automations.status = ACTIVEautomations.created_at = 2026-04-15 11:58:46 CSTautomations.last_run_at = NULLautomations.next_run_at = 2026-04-15 12:42:09 CSTautomation_runscount for this automation =0inbox_itemscount =0So the scheduler continues advancing
next_run_at, but nothing ever records as executed and nothing gets delivered to the thread or inbox.I also confirmed the target thread still exists locally, and I had already tried restarting and reinstalling the app before filing this issue.
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
yeah
Following up with a concrete question:
For this specific case on macOS with Codex Desktop
26.409.20454 (1462), is there any known user-side workaround to restore built-in heartbeat automations?My repro is narrower than the general sandbox/network issues:
next_run_atadvances every minutelast_run_atstays NULLautomation_runsstays emptyinbox_itemsstays emptySo this looks like the scheduler is advancing time, but execution never starts at all.
If there is a known workaround inside Codex Desktop itself (specific setting, feature flag, automation type, thread requirement, version, etc.), that would be very helpful.
If not, a confirmation that this is currently a known broken path for heartbeat automations on macOS would also help.
I encountered the same issue.
Active automations on Codex App for Windows are not actually executing for me.
Next runadvances to the next interval as expected, butLast ranstays empty/null, no thread message is posted, and no visible run is created. This is reproducible across multiple intervals, so it is not just a missed first run.Environment:
OpenAI.Codex_26.409.7971.0_x64__2p2nqsd0c76g0019d91c6-12d0-7892-bc33-ded5fee60f0aExample:
It shows
Next run=11:09, does not run, then changes to11:14.Last ranremains null and no run/thread message is created.Don't want to create too much extra noise but also wanted to confirm seeing the exact same issue here:
Version 26.409.20454 (1462)After the update today (April 17), I noticed an additional prompt on Heartbeat: "Pin the chat first, then Heartbeat will be available." After pinning the chat, Heartbeat was successfully triggered.
I’m seeing what looks like the same underlying problem on macOS, but in a slightly more intermittent form.
In my case, threaded heartbeat automations do sometimes execute, but they are not reliable enough to trust. The main pattern is:
Concrete example from my setup:
So in my case this is not a “never runs at all” issue, but it does look like the same family of bug:
From my side, this looks like a desktop heartbeat scheduler / execution bug.
Adding a cross-link from the Windows automation reports because this may be part of the same scheduler/delivery family, but the details differ.
I originally found that existing-thread heartbeat automations could run in cases where standalone cron/new-thread automations created empty sessions. That led me to retarget several real automations as heartbeats with persisted
target_thread_idvalues.That workaround is now causing problems of its own:
ACTIVEheartbeat automations withtarget_thread_idTimed out waiting for MCP response to thread/resumecannot resume running thread with mismatched pathThis lines up more with #19563 for heartbeat target-thread resume thrash, while #19011 / #19969 / #20076 are the cron/new-thread empty-session failure mode.
So for anyone using the “pin the chat / heartbeat attached to existing thread” workaround: it may help with delivery in simple cases, but I would be cautious about scaling it to several automations or reusing old target threads. In my current setup I am pausing those heartbeats and not reusing the old
target_thread_idvalues.