TTY input fails over SSH with SIGTTIN (regression in v0.71.0+)

Resolved 💬 6 comments Opened Jan 20, 2026 by dongdongbh Closed Jan 30, 2026
💡 Likely answer: A maintainer (etraut-openai, contributor) responded on this thread — see the highlighted reply below.

What version of Codex is running?

0.87.0

What subscription do you have?

plus

Which model were you using?

gpt-5.2-codex

What platform is your computer?

Linux 5.4.0-65-generic x86_64 x86_64

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

alacrity

What issue are you seeing?

Codex CLI fails to read keyboard input over SSH, immediately suspending with SIGTTIN (exit code 149). The TUI displays but immediately returns to shell with zsh: suspended (tty input) and a leaked escape sequence character [.

What steps can reproduce the bug?

  1. SSH to a remote Linux server (Ubuntu 20.04, kernel 5.4.0-65-generic x86_64)
  2. Shell: zsh, TERM: alacritty or xterm-256color
  3. Run codex
  4. TUI appears briefly, then immediately suspends with no user input
$ codex
╭──────────────────────────────────────────────────╮
│ >_ OpenAI Codex (v0.87.0)                        │
│ ...                                              │
╰──────────────────────────────────────────────────╯
› %
[
zsh: suspended (tty input)  codex
$ echo $?
149   # 128 + 21 = SIGTTIN

<img width="1778" height="789" alt="Image" src="https://github.com/user-attachments/assets/6f284ae9-087a-4b4f-84c7-054d1c4d36df" />

What is the expected behavior?

Codex TUI should accept keyboard input normally over SSH, as it does in v0.6.1 and earlier.

Additional information

  • v0.60.1: works ✓
  • v0.70.1+: broken ✗
  • Claude Code and Gemini CLI work fine on the same setup
  • Workarounds attempted (none worked for v0.71.0+):
  • script -q /dev/null -c codex
  • printf '\e[?2004l' (disable bracketed paste)
  • Running outside tmux
  • Environment: SSH to Ubuntu 20.04, NFS home directory, zsh

View original on GitHub ↗

5 Comments

etraut-openai contributor · 6 months ago

You mentioned version 0.7.0 and 0.6.1. Those don't correspond to Codex CLI version numbers. Can you clarify?

dongdongbh · 6 months ago
You mentioned version 0.7.0 and 0.6.1. Those don't correspond to Codex CLI version numbers. Can you clarify?

I tested that 0.71.0 and 0.75.0 do not work, but 0.60.1 works.

etraut-openai contributor · 6 months ago

Those versions are pretty old at this point. We haven't received other reports of this problem. Do you have any non-default settings in your config.toml?

dongdongbh · 6 months ago
Those versions are pretty old at this point. We haven't received other reports of this problem. Do you have any non-default settings in your config.toml?

cat ~/.codex/config.toml

model = "gpt-5.2-codex"
model_reasoning_effort = "high"

web_search_request = true


[features]
web_search_request = true
shell_snapshot = true

[shell_environment_policy]
ignore_default_excludes = true
experimental_use_profile = true

[sandbox_workspace_write]
network_access = true

[notice]
hide_rate_limit_model_nudge = true

[projects."/home/xxx/code/vru"]
trust_level = "trusted"
dongdongbh · 6 months ago

Root cause identified:
shell_snapshot = true in config causes the TTY issue.
Disabling this feature resolves the problem on v0.87.0.

Likely a race condition or process group issue when
shell_snapshot spawns a subprocess over SSH.

Showing cached comments. Read the full discussion on GitHub ↗