You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Codex Desktop heartbeat automation cannot resume thread on Windows due to stale path mismatch between normal path and \\?\ path #25237
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:
Create a heartbeat automation attached to the current Codex Desktop thread.
Let the automation trigger.
Codex attempts to resume the thread.
Resume fails with the stale path mismatch shown above.
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.
Local MacOS Client:
Macbook Pro M1 ... Codex Version 26.601.21317 • Released Jun 2, 2026
Remote Windows Session:
Codex Version 26.601.21317 • Released Jun 2, 2026
Error:
Failed to resume chat
cannot resume running thread 019e84f6-58e2-7280-a8d3-ca4aa56ee2e5 with stale path: requested C:\Users\username\.codex\sessions\2026\06\01\rollout-2026-06-01T15-53-22-019e84f6-58e2-7280-a8d3-ca4aa56ee2e5.jsonl, active \\?\C:\Users\username\.codex\sessions\2026\06\01\rollout-2026-06-01T15-53-22-019e84f6-58e2-7280-a8d3-ca4aa56ee2e5.jsonl
Create a kind = "heartbeat" automation attached to an existing thread.
Try to start/run the automation from the automations UI.
The automation fails before the thread wakes.
Error, sanitized:
Could not start automation
cannot resume running thread <thread-id> with stale path:
requested `<CODEX_HOME>\sessions\YYYY\MM\DD\rollout-...-<thread-id>.jsonl`,
active `\\?\<CODEX_HOME>\sessions\YYYY\MM\DD\rollout-...-<thread-id>.jsonl`
Local inspection shows both paths point to the same file; size and mtime match. The active thread record stores the extended-length Windows path (\\?\...), while the automation resume request appears to use the normal drive path. This makes heartbeat automations fail to wake the existing thread, so scheduled thread automations silently miss their intended run until manually inspected.
Expected behavior: resume should canonicalize/equate normal drive paths and Windows extended-length paths before the stale-path comparison, especially for heartbeat automation resume.
Activity
github-actions commentedon May 30, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
ETdoFresh commentedon Jun 3, 2026
+1
Local MacOS Client:
Macbook Pro M1 ... Codex Version 26.601.21317 • Released Jun 2, 2026
Remote Windows Session:
Codex Version 26.601.21317 • Released Jun 2, 2026
Error:
Failed to resume chat
cannot resume running thread 019e84f6-58e2-7280-a8d3-ca4aa56ee2e5 with stale path: requested
C:\Users\username\.codex\sessions\2026\06\01\rollout-2026-06-01T15-53-22-019e84f6-58e2-7280-a8d3-ca4aa56ee2e5.jsonl, active\\?\C:\Users\username\.codex\sessions\2026\06\01\rollout-2026-06-01T15-53-22-019e84f6-58e2-7280-a8d3-ca4aa56ee2e5.jsonlSapientropic commentedon Jun 28, 2026
I can reproduce this on Windows with a thread heartbeat automation as well, not only manual chat resume.
Environment:
OpenAI.Codex_26.513.4821.0_x64__2p2nqsd0c76g0codex --version:codex-cli 0.130.0Repro shape:
kind = "heartbeat"automation attached to an existing thread.Error, sanitized:
Local inspection shows both paths point to the same file; size and mtime match. The active thread record stores the extended-length Windows path (
\\?\...), while the automation resume request appears to use the normal drive path. This makes heartbeat automations fail to wake the existing thread, so scheduled thread automations silently miss their intended run until manually inspected.Expected behavior: resume should canonicalize/equate normal drive paths and Windows extended-length paths before the stale-path comparison, especially for heartbeat automation resume.