Skip to content

Codex CLI shows no progress or status updates while long-running model requests are still active #36097

Description

@jlhippo828-sys

What version of Codex CLI is running?

0.146.0

What subscription do you have?

free

Which model were you using?

qwen4.8

What platform is your computer?

Linux 6.14.0-37-generic x86_64 x86_64

What terminal emulator and version are you using (if applicable)?

bash

Codex doctor report

{
  "schemaVersion": 1,
  "generatedAt": "1785394080s since unix epoch",
  "overallStatus": "warning",
  "codexVersion": "0.146.0",
  "checks": {
    "app_server.status": {
      "id": "app_server.status",
      "category": "app-server",
      "status": "ok",
      "summary": "background server is not running",
      "details": {
        "control socket": "/home/nebula/.codex/app-server-control/app-server-control.sock",
        "daemon state dir": "/home/nebula/.codex/app-server-daemon",
        "mode": "ephemeral",
        "pid file": "/home/nebula/.codex/app-server-daemon/app-server.pid (missing)",
        "settings": "/home/nebula/.codex/app-server-daemon/settings.json (missing)",
        "status": "not running",
        "update-loop pid file": "/home/nebula/.codex/app-server-daemon/app-server-updater.pid (missing)"
      },
      "remediation": null,
      "durationMs": 1
    },
    "auth.credentials": {
      "id": "auth.credentials",
      "category": "auth",
      "status": "ok",
      "summary": "auth is configured",
      "details": {
        "auth file": "/home/nebula/.codex/auth.json",
        "auth storage mode": "File",
        "stored API key": "true",
        "stored ChatGPT tokens": "false",
        "stored agent identity": "false",
        "stored auth mode": "api_key"
      },
      "remediation": null,
      "durationMs": 0
    },
    "config.load": {
      "id": "config.load",
      "category": "config",
      "status": "ok",
      "summary": "config loaded",
      "details": {
        "CODEX_HOME": "/home/nebula/.codex",
        "config.toml": "/home/nebula/.codex/config.toml",
        "config.toml parse": "ok",
        "cwd": "/home/nebula/mnt/dev/qingdaogang",
        "enabled feature flags": "shell_tool, unified_exec, shell_snapshot, code_mode_host, terminal_resize_reflow, sqlite, hooks, enable_request_compression, multi_agent, apps, tool_search_always_defer_mcp_tools, tool_suggest, plugins, in_app_browser, in_app_updates, browser_use, browser_use_full_cdp_access, browser_use_external, computer_use, remote_plugin, plugin_sharing, image_generation, resize_all_images, item_ids, skill_mcp_dependency_install, skill_search, mentions_v2, steer, guardian_approval, goals, collaboration_modes, tool_call_mcp_elicitation, auth_elicitation, personality, fast_mode, tui_app_server, remote_compaction_v2, workspace_dependencies",
        "feature flag overrides": "none",
        "feature flags enabled": "38",
        "log dir": "/home/nebula/.codex/log",
        "mcp servers": "0",
        "model": "<redacted>",
        "model provider": "custom",
        "sqlite home": "/home/nebula/.codex"
      },
      "remediation": null,
      "durationMs": 0
    },
    "git.environment": {
      "id": "git.environment",
      "category": "git",
      "status": "ok",
      "summary": "git version 2.43.0",
      "details": {
        ".git entry": "directory",
        "PATH git #1": "/usr/bin/git",
        "PATH git #2": "/bin/git",
        "PATH git entries": "2",
        "git branch": "master",
        "git build options": "git version 2.43.0; cpu: x86_64; no commit associated with this build; sizeof-long: 8; sizeof-size_t: 8; shell-path: /bin/sh",
        "git exec path": "/usr/lib/git-core",
        "git version": "git version 2.43.0",
        "repo detected": "true",
        "repo root": "/home/nebula/mnt/dev/qingdaogang",
        "selected git": "/usr/bin/git"
      },
      "remediation": null,
      "durationMs": 50
    },
    "installation": {
      "id": "installation",
      "category": "install",
      "status": "ok",
      "summary": "installation looks consistent",
      "details": {
        "PATH codex #1": "/home/nebula/.local/bin/codex",
        "PATH codex #2": "/home/nebula/.local/bin/codex",
        "PATH codex entries": "2",
        "current executable": "/home/nebula/.codex/packages/standalone/releases/0.146.0-x86_64-unknown-linux-musl/bin/codex",
        "install context": "standalone (unix, package /home/nebula/.codex/packages/standalone/releases/0.146.0-x86_64-unknown-linux-musl, bin /home/nebula/.codex/packages/standalone/releases/0.146.0-x86_64-unknown-linux-musl/bin, resources /home/nebula/.codex/packages/standalone/releases/0.146.0-x86_64-unknown-linux-musl/codex-resources, path /home/nebula/.codex/packages/standalone/releases/0.146.0-x86_64-unknown-linux-musl/codex-path)",
        "managed by bun": "false",
        "managed by npm": "false",
        "managed by pnpm": "false",
        "managed package root": "not set"
      },
      "remediation": null,
      "durationMs": 4
    },
    "mcp.config": {
      "id": "mcp.config",
      "category": "mcp",
      "status": "ok",
      "summary": "no MCP servers configured",
      "details": {},
      "remediation": null,
      "durationMs": 1
    },
    "network.env": {
      "id": "network.env",
      "category": "network",
      "status": "ok",
      "summary": "network-related environment looks readable",
      "details": {
        "proxy env vars": "none"
      },
      "remediation": null,
      "durationMs": 0
    },
    "network.provider_reachability": {
      "id": "network.provider_reachability",
      "category": "reachability",
      "status": "ok",
      "summary": "active provider endpoints are reachable over HTTP",
      "details": {
        "custom API base URL": "http://127.0.0.1:15721/v1 reachable (HTTP 404)",
        "custom API route probe": "http://127.0.0.1:15721/v1/<redacted> route exists (HTTP 200)",
        "reachability mode": "API key auth"
      },
      "remediation": null,
      "durationMs": 79
    },
    "network.websocket_reachability": {
      "id": "network.websocket_reachability",
      "category": "websocket",
      "status": "ok",
      "summary": "Responses WebSocket is not enabled for the active provider",
      "details": {
        "model provider": "custom",
        "provider name": "custom",
        "proxy env vars": "none",
        "supports websockets": "false",
        "wire API": "responses"
      },
      "remediation": null,
      "durationMs": 1
    },
    "runtime.provenance": {
      "id": "runtime.provenance",
      "category": "runtime",
      "status": "ok",
      "summary": "running standalone on linux-x86_64",
      "details": {
        "commit": "unknown",
        "current executable": "/home/nebula/.codex/packages/standalone/releases/0.146.0-x86_64-unknown-linux-musl/bin/codex",
        "install method": "standalone (unix, package /home/nebula/.codex/packages/standalone/releases/0.146.0-x86_64-unknown-linux-musl, bin /home/nebula/.codex/packages/standalone/releases/0.146.0-x86_64-unknown-linux-musl/bin, resources /home/nebula/.codex/packages/standalone/releases/0.146.0-x86_64-unknown-linux-musl/codex-resources, path /home/nebula/.codex/packages/standalone/releases/0.146.0-x86_64-unknown-linux-musl/codex-path)",
        "platform": "linux-x86_64",
        "version": "0.146.0"
      },
      "remediation": null,
      "durationMs": 0
    },
    "runtime.search": {
      "id": "runtime.search",
      "category": "search",
      "status": "ok",
      "summary": "search is OK (bundled)",
      "details": {
        "search command": "/home/nebula/.codex/packages/standalone/releases/0.146.0-x86_64-unknown-linux-musl/codex-path/rg",
        "search command readiness": "file exists",
        "search provider": "bundled"
      },
      "remediation": null,
      "durationMs": 0
    },
    "sandbox.helpers": {
      "id": "sandbox.helpers",
      "category": "sandbox",
      "status": "ok",
      "summary": "sandbox configuration is readable",
      "details": {
        "approval policy": "OnRequest",
        "codex-linux-sandbox helper": "/home/nebula/.codex/tmp/arg0/codex-arg0DF0iB9/codex-linux-sandbox",
        "execve wrapper helper": "/home/nebula/.codex/tmp/arg0/codex-arg0DF0iB9/codex-execve-wrapper",
        "filesystem sandbox": "restricted",
        "network sandbox": "restricted"
      },
      "remediation": null,
      "durationMs": 0
    },
    "state.paths": {
      "id": "state.paths",
      "category": "state",
      "status": "ok",
      "summary": "state paths and databases are inspectable",
      "details": {
        "CODEX_HOME": "/home/nebula/.codex (dir)",
        "active rollout files": "37 files, 10229572 total bytes, 276474 average bytes",
        "archived rollout files": "0 files, 0 total bytes, 0 average bytes",
        "goals DB": "/home/nebula/.codex/goals_1.sqlite (file)",
        "goals DB integrity": "ok",
        "log DB": "/home/nebula/.codex/logs_2.sqlite (file)",
        "log DB integrity": "ok",
        "log dir": "/home/nebula/.codex/log (missing)",
        "memories DB": "/home/nebula/.codex/memories_1.sqlite (file)",
        "memories DB integrity": "ok",
        "sqlite home": "/home/nebula/.codex (dir)",
        "standalone release cache": "3 entries in /home/nebula/.codex/packages/standalone/releases",
        "state DB": "/home/nebula/.codex/state_5.sqlite (file)",
        "state DB integrity": "ok",
        "thread history DB": "/home/nebula/.codex/thread_history_1.sqlite (missing)",
        "thread history DB integrity": "skipped (missing)"
      },
      "remediation": null,
      "durationMs": 2319
    },
    "state.rollout_db_parity": {
      "id": "state.rollout_db_parity",
      "category": "threads",
      "status": "ok",
      "summary": "rollout files and state DB thread inventory agree",
      "details": {
        "default model provider": "custom",
        "rollout DB active files": "37",
        "rollout DB active rows": "37",
        "rollout DB archive mismatches": "0",
        "rollout DB archived files": "0",
        "rollout DB archived rows": "0",
        "rollout DB duplicate DB paths": "0",
        "rollout DB duplicate rollout thread ids": "0",
        "rollout DB malformed file names": "0",
        "rollout DB missing active rows": "0",
        "rollout DB missing archived rows": "0",
        "rollout DB model providers": "custom=37",
        "rollout DB rows": "37",
        "rollout DB scan cap reached": "false",
        "rollout DB scan errors": "0",
        "rollout DB sources": "subagent:thread_spawn=24, cli=13",
        "rollout DB stale rows": "0"
      },
      "remediation": null,
      "durationMs": 183
    },
    "system.environment": {
      "id": "system.environment",
      "category": "system",
      "status": "ok",
      "summary": "OS language zh-CN",
      "details": {
        "EDITOR": "not set",
        "LANG": "zh_CN.UTF-8",
        "VISUAL": "not set",
        "os": "Linux Mint 22.3.0 (zena) [64-bit]",
        "os language": "zh-CN",
        "os type": "Linux Mint",
        "os version": "22.3.0"
      },
      "remediation": null,
      "durationMs": 16
    },
    "terminal.env": {
      "id": "terminal.env",
      "category": "terminal",
      "status": "ok",
      "summary": "terminal metadata was detected",
      "details": {
        "SSH_CLIENT": "present",
        "SSH_CONNECTION": "present",
        "SSH_TTY": "present",
        "TERM": "xterm-256color",
        "color output": "enabled",
        "effective locale": "zh_CN.UTF-8",
        "stderr is terminal": "true",
        "stdin is terminal": "true",
        "stdout is terminal": "true",
        "terminal": "unknown",
        "terminal size": "207x42"
      },
      "remediation": null,
      "durationMs": 1
    },
    "terminal.title": {
      "id": "terminal.title",
      "category": "title",
      "status": "ok",
      "summary": "terminal title default",
      "details": {
        "terminal title activity": "true",
        "terminal title items": "activity, project-name",
        "terminal title project source": "git repo root",
        "terminal title project value": "qingdaogang",
        "terminal title source": "default"
      },
      "remediation": null,
      "durationMs": 0
    },
    "updates.status": {
      "id": "updates.status",
      "category": "updates",
      "status": "warning",
      "summary": "update configuration is locally consistent",
      "details": {
        "cached latest version": "0.146.0",
        "check for update on startup": "true",
        "last checked at": "2026-07-29T14:12:05.313582966Z",
        "latest version probe": "curl: (28) Connection timed out after 5000 milliseconds",
        "update action": "standalone installer",
        "version cache": "/home/nebula/.codex/version.json"
      },
      "remediation": null,
      "durationMs": 5047
    }
  }
}

What issue are you seeing?

When using Codex CLI with the Qwen-3.8 model through a compatible gateway/provider, Codex sometimes enters a state where there is no visible progress information in the CLI.

The CLI does not show:

  • working status
  • tool execution status
  • thinking/progress messages
  • partial output
  • error messages

The terminal appears to be frozen, but the request is actually still running.

I verified this from the gateway logs: the last request remains open and has not completed. The model request is still being processed, but Codex CLI does not provide any indication of the current state.

This makes it difficult to distinguish between:

  1. A real hang/deadlock in Codex CLI
  2. A slow model response
  3. A network/provider issue
  4. A long-running reasoning/tool execution

The issue appears to be related to the interaction between Codex CLI and this model/provider, because other models usually provide visible status updates during long requests.

No timeout or error is displayed in the CLI while the request is still active on the gateway side.

What steps can reproduce the bug?

  1. Configure Codex CLI to use Qwen-3.8 through an OpenAI-compatible gateway/provider.

  2. Start a task that requires a longer model generation or tool execution.

Example prompt:

按照excel内容设计原型

  1. Wait until the request takes a long time.

  2. Observe that Codex CLI stops displaying any status information.

Expected CLI behavior:

Working...
Thinking...
Running tool...
Waiting for model response...

Actual behavior:

(no output)

  1. Check the gateway logs.

The corresponding request is still active and has not returned a completion response.

Thread ID (if applicable):

[insert thread id]

What is the expected behavior?

When Codex CLI is waiting for a long-running model response, it should continue displaying some kind of progress/status indicator.

For example:

  • request is still running
  • waiting for model response
  • receiving streamed tokens
  • tool execution state
  • heartbeat/progress information

Even if the model does not return tokens immediately, the user should be able to tell that Codex is still working instead of appearing completely frozen.

Additional information

Additional observations:

  • The gateway confirms that the request is not terminated.
  • The issue does not appear to be caused by the provider closing the connection.
  • The CLI process remains alive.
  • There is no visible error or timeout message.
  • The problem is especially noticeable with models/providers that have slower first-token latency or longer reasoning time.

It would be helpful if Codex CLI could expose a heartbeat or fallback status message when a streaming response has not produced visible output for an extended period.

Metadata

Metadata

Assignees

No one assigned

    Labels

    CLIIssues related to the Codex CLITUIIssues related to the terminal user interface: text input, menus and dialogs, and terminal displaybugSomething isn't workingcustom-modelIssues related to custom model providers (including local models)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions