Windows Codex App automations create run/thread but never submit the prompt turn

Resolved 💬 1 comment Opened May 8, 2026 by neuralsyndicate Closed May 8, 2026

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

Codex App 26.506.21252

What subscription do you have?

ChatGPT Pro

What platform is your computer?

Microsoft Windows NT 10.0.26100.0 x64

What issue are you seeing?

Native Codex App automations on Windows fire partially, but the automation prompt is never submitted as a model turn.

The automation runner updates/creates local automation state, but the resulting thread has no user event and no model execution.

Observed evidence from a minimal no-tool smoke automation:

  • automation_runs row was created
  • threads row was created
  • rollout/session JSONL was created
  • rollout JSONL contains only session_meta
  • threads.has_user_event = 0
  • threads.tokens_used = 0
  • threads.model = null
  • threads.reasoning_effort = null
  • no assistant output appears
  • no inbox title/summary is produced
  • no turn/start or submission_dispatch appears for the automation thread

Example thread/session id:

019e0506-bbe3-79a0-b149-d49b3721c7f3

Rollout path:

C:\Users\Administrator\.codex\sessions\2026\05\08\rollout-2026-05-08T02-39-47-019e0506-bbe3-79a0-b149-d49b3721c7f3.jsonl

That rollout file exists, but has only one line and only contains session_meta.

The smoke prompt was:

This is a Codex native automation dispatch smoke test after disabling shell snapshots. Reply exactly: CODEX_NATIVE_SHELL_SNAPSHOT_OFF_OK. Do not run tools.

The expected text never appeared anywhere in the rollout/session file.

This also reproduced with another native worktree smoke automation: last_run_at advanced, but no local run/session with a submitted turn materialized.

This does not appear to be prompt-specific. It reproduces with a minimal no-tool prompt.

What steps can reproduce the bug?

  1. Open Codex Desktop on Windows.
  2. Create a native Codex automation with a minimal prompt:

This is a Codex native automation dispatch smoke test. Reply exactly: CODEX_NATIVE_DISPATCH_OK. Do not run tools.

  1. Set it to run a few minutes in the future.
  2. Keep Codex Desktop open and the computer awake.
  3. Wait until after the scheduled run time.
  4. Inspect the automation/run/thread state.

Example local evidence queries:

$py = 'C:\Users\Administrator\.cache\codex-runtimes\codex-primary-runtime\dependencies\python\python.exe'

@'
import sqlite3, pathlib, json

app = pathlib.Path.home()/'.codex'/'sqlite'/'codex-dev.db'
state = pathlib.Path.home()/'.codex'/'state_5.sqlite'

automation_id = 'codex-native-dispatch-smoke-shell-snapshot-off'

con = sqlite3.connect(app)
con.row_factory = sqlite3.Row
runs = list(con.execute(
'select * from automation_runs where automation_id=? order by created_at desc limit 1',
(automation_id,)
))
print('RUNS', [dict(r) for r in runs])
con.close()

if runs:
thread_id = runs[0]['thread_id']
con = sqlite3.connect(state)
con.row_factory = sqlite3.Row
thread = con.execute(
'select id, rollout_path, tokens_used, has_user_event, model, reasoning_effort from threads where id=?',
(thread_id,)
).fetchone()
print('THREAD', dict(thread) if thread else None)

if thread:
rollout_path = pathlib.Path(thread['rollout_path'].replace('\\\\?\\', ''))
print('ROLLOUT_EXISTS', rollout_path.exists())
if rollout_path.exists():
text = rollout_path.read_text(encoding='utf-8', errors='replace')
print('ROLLOUT_LINES', len(text.splitlines()))
print('HAS_EXPECTED_OUTPUT', 'CODEX_NATIVE_DISPATCH_OK' in text)
con.close()
'@ | & $py -
Actual result from my run:

threads.has_user_event = 0
threads.tokens_used = 0
threads.model = null
threads.reasoning_effort = null
ROLLOUT_LINES = 1
HAS_EXPECTED_OUTPUT = False
Token/context usage is not applicable because no model turn starts. The thread remains at tokens_used = 0.

What is the expected behavior?

When a native Codex automation fires, it should:

  1. Create or open the scheduled automation thread.
  2. Submit the configured automation prompt as a user turn.
  3. Start a model turn using the configured model/reasoning effort.
  4. Write normal rollout items beyond session_meta.
  5. Produce visible automation output or an inbox result.

For the smoke prompt, the expected output would be:

CODEX_NATIVE_DISPATCH_OK

Additional information

I searched existing issues first. These may be related:

  • #16938: Automation marked Active but does not run or create a thread
  • #16994: Desktop automations on Windows/WSL create automation runs but no rollout materializes

My case is slightly different/clearer than #16938 because a thread/session shell is created, but the prompt is never submitted as a turn.

Additional diagnostics:

  • Codex App was installed from Microsoft Store.
  • winget upgrade --name Codex reported no available upgrade.
  • Tried local execution environment.
  • Tried worktree execution environment.
  • Tried disabling shell_snapshot; the shell snapshot warning disappeared, but the automation still did not submit a turn.
  • Interactive Codex turns work normally in the same app/session.
  • The packaged WindowsApps codex.exe cannot be run directly due to WindowsApps permission restrictions, so I copied it locally only for diagnostics. The copied CLI reports codex-cli 0.129.0-alpha.15.

The local app-server logs for failed automation-created threads show thread/start, but no submission_dispatch / turn/start for that automation thread.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗