Skip to content

writeCodexConfig: add tui_app_server=false to prevent Codex crash on GCP VMs #436

@Nanyan

Description

@Nanyan

Problem

Codex v0.117.0 introduced a new `tui_app_server` feature (marked stable, default-on) that performs an `account/read` API call to `chatgpt.com/backend-api/account` during TUI bootstrap. GCP VM IPs are blocked by Cloudflare with a 403 challenge page, so this call fails immediately and Codex exits with code 1 — the TUI never starts.

Symptom: activity-monitor launches Codex in TUI mode inside tmux, Codex exits code 1 on every restart (crash loop). The bot is completely unavailable.

Confirmed on `cocoai-daidaijun2021-1b` running Codex v0.117.0.

Root cause evidence:

  • `codex --dangerously-bypass-approvals-and-sandbox` → exit 1 in tmux (even with no prompt)
  • `curl -H "Authorization: Bearer " https://chatgpt.com/backend-api/account\` → 403 Cloudflare JS challenge
  • `codex --dangerously-bypass-approvals-and-sandbox --disable tui_app_server` → exit 0, TUI starts normally
  • Adding `tui_app_server = false` under `[features]` in config.toml → exit 0, TUI starts normally

Expected Behavior

`writeCodexConfig()` in `cli/lib/runtime-setup.js` should include `tui_app_server = false` under `[features]` so all newly provisioned VMs are not affected by this Cloudflare block.

Required change (in `writeCodexConfig()`):
```toml
[features]
multi_agent = true
tui_app_server = false # ← add this line
```

Impact

Any VM provisioned with Codex ≥ v0.117.0 will enter a crash loop immediately after bootstrap. All existing VMs that upgrade to v0.117.0+ and regenerate config.toml via `zylos init` / `zylos runtime codex` will also be affected.

Immediate workaround applied to affected VMs: manual `sed` patch to config.toml.

Related

  • This feature appears to have been introduced in Codex v0.117.0 — versions ≤ v0.116.0 did not exhibit this behavior
  • The `tui_app_server` feature is listed as `stable` stage (default-on) in v0.117.0
  • Zylos VMs run headless/non-interactive; the TUI app server feature provides no value and only introduces this network dependency

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions