App update leaves the previous app-server daemon running
What version of Codex CLI is running?
0.144.4
What subscription do you have?
Pro
Which model were you using?
gpt-5.6-sol
What platform is your computer?
Linux 6.17.0-1016-gcp x86_64 x86_64
What terminal emulator and version are you using (if applicable)?
Ghostty & tmux
Codex doctor report
What issue are you seeing?
After Codex updated from 0.144.2 to 0.144.4, the persistent app-server daemon remained on 0.144.2. It was not restarted or replaced as part of the update, leaving remote control unavailable.
Running codex remote-control start only exposed the stale daemon state:
~ ❯ codex remote-control start
Starting app-server daemon with remote control enabled...
Error: app server did not become ready on /home/my/.codex/app-server-control/app-server-control.sock
Daemon used app-server:
path: /home/my/.codex/packages/standalone/current/codex
version: 0.144.4
Managed app-server stderr (/home/my/.codex/app-server-daemon/app-server.stderr.log):
2026-07-13T06:52:56.322812Z ERROR codex_models_manager::manager: failed to refresh available models: timeout waiting for child process to exit
Caused by:
0: failed to connect to /home/my/.codex/app-server-control/app-server-control.sock
1: Connection refused (os error 111)
The running daemon was still:
.../releases/0.144.2-x86_64-unknown-linux-musl/bin/codex app-server daemon pid-update-loop
What steps can reproduce the bug?
- Install and run Codex standalone version
0.144.2. - Start remote control so the persistent daemon is running:
codex remote-control start - Verify the daemon uses 0.144.2:
ps -ef | grep 'app-server daemon pid-update-loop - Leave the daemon running and update Codex normally to 0.144.4.
- Confirm codex --version reports 0.144.4.
- Check the daemon process again.
Observed: the daemon continues running from the 0.144.2 release directory and remote control becomes unavailable. Running codex remote-control start fails with a connection-refused error on app-server-control.sock.
Expected: the update should restart or replace the persistent daemon so it runs 0.144.4 and remote control remains available.
What is the expected behavior?
When Codex updates, the persistent app-server daemon should survive safely or (ideally) be restarted using the new version.
Additional information
_No response_
2 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
I hit a closely related version-skew failure on two separate Linux Codex environments and wanted to add corroborating evidence.
Observed version skew
Both systems had an up-to-date CLI but an older persistent app-server process:
0.147.0, app-server0.142.40.147.0, app-server0.146.0In both cases,
codex doctorreported the background server as healthy even though the persistent app-server version did not match the CLI version.On Host A, the stale state surfaced as a GPT-5.6-Sol compatibility error saying the model required a newer Codex version, despite the installed CLI already being
0.147.0. A directcodex exec -m gpt-5.6-solinvocation succeeded, which made the split between the current CLI and the stale persistent app-server especially visible.A separate Windows Codex environment using the same account could run GPT-5.6-Sol successfully, further indicating that account/model availability was not the underlying problem.
Repair that worked
On each Linux host I stopped the stale app-server process, installed/verified the current standalone
0.147.0binary, and bootstrapped a new managed app-server daemon with remote control enabled. After that:0.147.00.147.0So this appears consistent with the updater leaving an older persistent app-server alive while the foreground CLI advances.
One additional concern:
codex doctordid not flag the CLI/app-server version mismatch, so an explicit version-consistency check there would likely make this failure much easier to diagnose.Possibly related but distinct: #33146 documents stale
models_cache.jsonstate hiding GPT-5.6 from the model picker. In my case the stronger evidence was the live app-server version mismatch itself.I have intentionally omitted machine names, usernames, network details, and private paths from this report.