# Codex initialize timeout: real-app proof

Environment for every capture: Linux web dev client, Chromium, 1280×800 CSS pixels (device scale 2), light theme. Fresh independent databases, no production data. Real Codex 0.169.0 with gpt-6-luna, API-key authentication. Messages submitted with the real server CLI (MCP transport) and viewed in the web client. No replay provider or test assertions used.

Base: 4121b30f78cd68c8aa033c949075ffcd9832be97.
Head: 995de7e32b063ada2063ec97bb6e1e8f5e4bc3b7.

Both sides configured the same wrapper as the Codex binary. While its suspend file exists it SIGSTOPs itself on app-server launch, before exec of the real binary, making it a live process that never answers initialize. Other Codex commands pass through. Removing the file permits future launches; it does not resume the suspended process.

Base timeline (UTC): first prompt 10:04:41.940; second 10:04:57.577; suspend flag removed before third prompt 10:06:22.793. At 10:09:38 third still Starting for 3m15s, all three active; original app-server still stopped. SIGCONT sent immediately after that capture; all three completed OK within seconds. Before video includes the blocked state, elapsed wait, and manual-resume control.

Head timeline (UTC): first prompt 10:06:49.096; second 10:07:06.097; suspend flag removed before third prompt 10:07:56.518. Timeout traces show failed openSession calls lasting approximately 30 seconds each. Suspended processes were discarded; later launches were fresh. The third turn completed OK at 10:08:29.190 (about 33 seconds after submission); second at 10:08:29.371 and first at 10:08:29.831. No SIGCONT, kill, or T3 restart on head. The original turns remained Starting while the effect worker retried; an immediate visible terminal error is not claimed.

Recordings cover inspection of the hung turns and the third-turn recovery comparison, rather than the initial provider-settings edits. Wall-clock intervals differ between sides as listed above; wrapper, prompts, project, model, and operations match. The recipe script reproduces the same sequence; its delays are explicit. It is an uploaded scratch recipe, not a committed automated test.

Videos are real time, downscaled to 1280×800; a black rectangle covers the private environment-name field at the upper right. The rectangle also overlaps the right edge of the prompt when the details panel is closed; the complete prompt is visible in the stills. The stills are 2560×1600 pixels. The after still was identical across two captures 500 ms apart. The before still contains the live elapsed timer and spinner, so the before video is the primary temporal evidence.

The runtime summary contains only synthetic prompt/reply data and timestamps. No machine identity, credentials, local paths, or real user data are included.
