openai / openai/codex

content_item_kinds is enabled by default in Codex CLI 0.153.4 (reducing provider interoperability)

Open
#43,733 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug CLI config custom-model
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

What version of Codex CLI is running?

0.153.4

What subscription do you have?

API

Which model were you using?

gpt-5.6-luna

What platform is your computer?

Linux

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

zsh

What issue are you seeing?
Title

content_item_kinds is enabled by default in Codex CLI 0.153.4 despite documentation stating it is disabled

Description

The content_item_kinds feature appears to be enabled by default in Codex CLI 0.153.4, although the Codex documentation indicates that it should be disabled by default.

This causes compatibility problems when using Codex with an OpenAI-compatible Responses API gateway that does not recognize the additional content-item metadata. The gateway rejects requests with an error similar to:

Unknown parameter: 'input[1].internal_chat_message_metadata_passthrough.content_item_kinds'

Environment

Codex CLI: 0.153.4
Installation: npm global package, @openai/codex
Platform: Linux x86_64
OS: Ubuntu 24.04 (Noble)
Node.js: v22.22.3
Provider: OpenAI-compatible Responses API endpoint through an internal gateway
Codex configuration: no features.content_item_kinds entry in ~/.codex/config.toml
Reproduction
With a clean/default configuration, run codex features list. The output contains:

content_item_kinds stable true

codex doctor --all also reports content_item_kinds among the enabled feature flags.

The feature can be disabled for the current invocation with codex --disable content_item_kinds. When this override is supplied, the feature listing changes to:

content_item_kinds stable false

This confirms that the flag is recognized and that the observed true value is the default effective state, rather than an accidental unrecognized configuration entry.

Expected behavior

If the documented default is disabled, a fresh installation with no feature override should report:

content_item_kinds stable false

Alternatively, if the feature is intentionally enabled by default in this release, the documentation and feature-stage/default description should be updated to say so.

Actual behavior

A fresh/default installation reports:

content_item_kinds stable true

No relevant environment variables or configuration overrides were present. codex doctor reported that the installation and configuration were healthy.

Workaround

The feature can be disabled explicitly with either:

codex --disable content_item_kinds for a single invocation; or
codex features disable content_item_kinds to persist the setting in ~/.codex/config.toml.
Request
Could you please clarify one of the following?

  • Is content_item_kinds intended to be enabled by default in Codex CLI 0.153.4?
  • If not, could the default be corrected to disabled?
Additional note

The feature is listed as stable by the CLI, but I could not find a corresponding explanation in the user-facing Codex documentation or the installed npm package. This makes it difficult to determine whether the issue is an incorrect default, a documentation mismatch, or an interoperability problem with OpenAI-compatible gateways.

What steps can reproduce the bug?
$ npm install --global @openai/codex@latest && codex --version
codex-cli 0.153.4

$ codex exec "say hi"                                                                                                                                                                                                                         1
(...)
ERROR: {
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "[ObjectParam] [input[1].internal_chat_message_metadata_passthrough.content_item_kinds] [unknown_parameter] Unknown parameter: 'input[1].internal_chat_message_metadata_passthrough.content_item_kinds'."
  },
  "status": 400
}
What is the expected behavior?

Should work fine

Additional information

This works in earlier Codex version, i.e. v0.150.1 WORKS FINE.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the feature state reported by codex features list and codex doctor --all, then trace how the content_item_kinds default and --disable override are defined. Use the clean 0.153.4 reproduction and compare with v0.150.1. Done means the documented default, feature listing, and request behavior agree, or the user-facing documentation explains the intentional default.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.