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
Windows: Codex shadow home fails when state_5.sqlite-shm exists as a regular file #79
On Windows (REVO-VM-008, T3 0.1.10-nightly.20261112.4564), every Codex provider instance fails to start a run:
Cannot create Codex shadow home entry 'state_5.sqlite-shm' because
'C:\Users\ChrisO'Hearn\.t3\userdata\providers\codex\<instance>\shadow\state_5.sqlite-shm'
already exists and is not a symlink.
Seen on 2026-11-13 around 01:20 UTC on both codex_0aca91ff-… (ChatGPT - Pro) and codex_4ce8319d-… (ChatGPT - Revotech). With Claude also signed out on that machine, no provider can run there.
Likely cause: SQLite created state_5.sqlite-shm (and probably -wal) inside the shadow home as regular files, while the shadow-home builder expects every entry to be a symlink to the real ~/.codex and refuses to overwrite.
Suggested fix: skip SQLite sidecar files (*-shm, *-wal, *-journal) when linking the shadow home, or replace them when the main database file is a link. On Windows, also handle the case where symlink creation falls back to a copy.
Status: still valid, unfixed. No PR touches the Codex shadow-home builder yet. Related ledger row: fleet/windows-vm-agents (it links this issue; waiting on Claude sign-in on REVO-VM-008).
Triage by the round-four GitHub hygiene pass (ledger key r4/w7-github), 2026-11-13. Left open.
Cause (inferred; not reproduced on Windows). The shadow home links state_5.sqlite and the other top-level databases into the real .codex. SQLite's POSIX VFS resolves a symlinked database path before naming -wal/-shm, so on Linux and macOS those files land beside the real database. The Windows VFS does not resolve the link, so Codex created regular -wal/-shm files inside the shadow directory. The next shadow-home build refused them. The regular files also meant each shadow home had its own WAL for a database it shares with the real home, which is a corruption risk.
Codex launches with a shadow home now get CODEX_SQLITE_HOME=<real home>, so the databases and their sidecars live in the real home. On codex 0.167.2 this moves every top-level *.sqlite.
The builder no longer links sidecars and never fails on them:
It removes sidecar links and empty leftovers.
It moves leftovers that hold WAL data aside as .stale-<ms>, without deleting them.
If a file can't be removed or renamed, it logs a warning and continues.
The post-deploy check is Aorka script 23035, with the new expected output given in the PR body.
Activity
chrisohearn commentedon Nov 13, 2026
Status: still valid, unfixed. No PR touches the Codex shadow-home builder yet. Related ledger row:
fleet/windows-vm-agents(it links this issue; waiting on Claude sign-in on REVO-VM-008).Triage by the round-four GitHub hygiene pass (ledger key
r4/w7-github), 2026-11-13. Left open.chrisohearn commentedon Nov 13, 2026
Cause (inferred; not reproduced on Windows). The shadow home links
state_5.sqliteand the other top-level databases into the real.codex. SQLite's POSIX VFS resolves a symlinked database path before naming-wal/-shm, so on Linux and macOS those files land beside the real database. The Windows VFS does not resolve the link, so Codex created regular-wal/-shmfiles inside the shadow directory. The next shadow-home build refused them. The regular files also meant each shadow home had its own WAL for a database it shares with the real home, which is a corruption risk.Fix: #98.
CODEX_SQLITE_HOME=<real home>, so the databases and their sidecars live in the real home. On codex 0.167.2 this moves every top-level*.sqlite..stale-<ms>, without deleting them.The post-deploy check is Aorka script 23035, with the new expected output given in the PR body.