Codex Desktop heartbeat automation cannot resume thread on Windows due to stale path mismatch between normal path and \\?\ path

Open 💬 3 comments Opened May 30, 2026 by xyzxyq

What version of the Codex App are you using (From “About Codex” dialog)?

26.527.31326

What subscription do you have?

plus

What platform is your computer?

_No response_

What issue are you seeing?

Bug:
Heartbeat automation fails to start/resume the thread with a stale path error.

Error message:
cannot resume running thread 019e67c6-dfa0-7202-9627-2df038f275dd with stale path: requested C:\Users\..\.codex\sessions\2026\05\27\rollout-2026-05-27T12-52-33-019e67c6-dfa0-7202-9627-2df038f275dd.jsonl, active \\?\C:\Users\..\.codex\sessions\2026\05\27\rollout-2026-05-27T12-52-33-019e67c6-dfa0-7202-9627-2df038f275dd.jsonl

What steps can reproduce the bug?

Reproduction:

  1. Create a heartbeat automation attached to the current Codex Desktop thread.
  2. Let the automation trigger.
  3. Codex attempts to resume the thread.
  4. Resume fails with the stale path mismatch shown above.
  5. Deleting and recreating the heartbeat automation with the same current thread still fails, because the same target_thread_id resolves to the same mismatched path pair.

What is the expected behavior?

Expected behavior:
The heartbeat automation should resume the active thread successfully. On Windows, these two paths refer to the same file and should be normalized before comparison:

  • C:\Users\..\.codex\sessions\...
  • \\?\C:\Users\..\.codex\sessions\...

Actual behavior:
Codex treats the two equivalent Windows paths as different and refuses to resume the thread as stale.

Additional information

Workaround:
Deleting the heartbeat automation and recreating it as a local cron automation avoids the issue because cron does not resume the current thread:

  • kind = "cron"
  • execution_environment = "local"
  • cwd = project workspace path

Impact:
Thread heartbeat automations are unusable on this Windows thread. Long-running training supervision had to be moved to cron automation instead.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗