Sandbox mode repeatedly prints Failed to create stream fd: Operation not permitted while commands execute successfully

Open 💬 0 comments Opened Jul 15, 2026 by mbeiter

What version of Codex CLI is running?

0.144.4

What subscription do you have?

Plus

Which model were you using?

gpt-5.6-terra medium

What platform is your computer?

Linux 7.0.0-27-generic x86_64 unknown

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

tmux

Codex doctor report

{"overallStatus":"ok","codexVersion":"0.144.4"}

What issue are you seeing?

Summary

When running the Codex CLI in a sandboxed mode (workspace-write), shell commands execute successfully, but the CLI repeatedly prints:

Failed to create stream fd: Operation not permitted

The command output is otherwise correct.

Environment

  • Codex CLI: 0.144.4
  • OS: Ubuntu Linux
  • Architecture: x86_64
  • Installation method: Official OpenAI installer
  • Session: SSH
  • Terminal multiplexer: tmux

Sandbox modes

  • workspace-write: reproduces the issue
  • danger-full-access: does not reproduce the issue

What steps can reproduce the bug?

  1. Start the CLI in workspace-write mode:

codex --sandbox workspace-write

  1. Execute a shell command, for example:

pwd && rg --files <paths> && git status --short

  1. Observe that the command completes successfully but the CLI repeatedly prints:

Failed to create stream fd: Operation not permitted

What is the expected behavior?

Expected behavior

The command executes without internal stream-related error messages.

Actual behavior

The command executes successfully and produces the expected output, but the CLI repeatedly prints:

Failed to create stream fd: Operation not permitted

Additional information

  • The same shell commands execute normally outside the Codex CLI.
  • The issue is not caused by a missing rg binary.
  • Switching to --sandbox danger-full-access eliminates the problem.
  • The issue therefore appears to be related to the sandbox implementation or its stream/file descriptor handling.

View original on GitHub ↗