🐛

Codex CLI 0.59+ が Chat Completions 互換 API でエラーになる問題まとめ(2025年12月)

に公開

Codex CLIを 0.59 以上にアップデートすると、Chat Completions 互換 APIを使う環境で 400 エラーが発生するというIssueが上がっています。

https://github.com/openai/codex/issues/7051

特に企業内で Chat Completions 互換 API を利用している場合は、Codex CLIを最新版にすると一部の機能が使えなくなってしまうことがあるため、困るケースが多いようです。
この記事では、どんな環境で問題が起き、どう振る舞うのかを整理します。

何が起きるのか

Codex 0.59+ に更新し、OpenAIのモデルではなく Chat Completions 互換 APIに設定している場合は、tool callingの処理がうまくいかず、400 Bad Requestが返却されることがあります。

▼ 実際の例
簡単な会話はできますが、ファイルの読み取りなどの指示でエラーが発生することがあります。
400 Bad Requestの例

最新のv0.65.0だと別のエラーが出ているようです

v0.65.0のエラーの例

原因や解消状況は?

当初の問題については下記のPRで解決しているようですが、現在(2025年12月06日時点)は別の不具合が出てしまっているようなので、まだ解決には至っていないようです。

https://github.com/openai/codex/pull/7310

詳細な原因については上記のPRやIssueを見ていただけると良いと思います。

どの環境で問題が起きるのか

下記の状態の場合、この問題が発生する可能性があります。

  • Codex CLIを0.59以上のバージョンに更新している
  • Codex CLIで利用するモデルをChat Completions 互換 APIで叩いている

ちなみにChat Completions 互換 APIを使っていれば必ずエラーになるかというとそうではなく、例えばGeminiの場合は問題なく動作することを確認しました。
この点については、Chat Completions 互換 APIを提供するプロバイダがOpen AI APIのフォーマットにどれだけ厳しくバリデーションしているかによって、異なるようです。

試しに下記のような設定でClaudeのモデルをCodex CLIで設定した場合は不具合を再現できました。
もっとも、Codex CLIでClaudeを使う人はほとんどいないと思うので、以下のケースに限れば影響はほぼないと思います。

network_access = true
model = "claude-sonnet-4-5"
model_provider = "claude"

[model_providers.claude]
name = "Claude using ChatCompletions"
base_url = "https://api.anthropic.com/v1"
env_key = "CLAUDE_API_KEY"
wire_api = "chat"
query_params = {}

どの環境では問題がないのか?

  • Codex CLIを0.58以下で利用している
  • Open AIのモデルをCodex CLIで直接利用している
    • Open AIのモデルを使っている人が多いので影響を受けている人はそこまで多くないと思います。
    • 導入企業によってはOpen AIのモデルを別のLLMプロバイダ経由で使っているケースもあると思うのでそういった企業では影響が出ている可能性があります。
  • バリデーションがそこまで厳格でないChat Completions 互換 APIを使っている場合
    • 例えば、Geminiや本家Open AIのChat Completions APIではエラーになりませんでした。

Homebrew 利用者は注意

Homebrew 経由でインストールしていると、自動的に0.58以上にアップデートされてしまう可能性があるので注意です。
一度バージョンを上げてしまうとバージョンを戻すこともできないの、もし上げてしまった人はnodejs版を再インストールするか、バグが解消されるまで待ちましょう。

現状の解決策

今回の不具合はまだ安定して解消されていないため、当面は次の3点を押さえておくことがもっとも安全です。

  1. Codex CLI は 0.58 以下で利用する

不具合が確認されているのは 0.59 以降のバージョンです。
そのため、現状は 0.58 以下の安定しているバージョンを使用することを推奨します。

  1. Responses API を利用する

Codex チームからも /responses API への移行が推奨されています。
Chat Completions 互換 API まわりで発生している不具合を回避しやすくなり、より安定した動作が期待できます。

  1. 修正版のアップデートを待つ

Issueにも書かれているように0.66 系の alpha では不具合のリグレッションが続いており、まだ安心して利用できる状態ではありません。
今後の正式リリースで安定版が提供されるまで、慌ててアップデートせず現行環境を維持する方が安全です。

最新状況(2025年12月06日時点)

ステータス:未解決

日付 出来事
2025-11-21 Codex 0.59 以降で custom chat completions が壊れているという最初の報告が上がる。tool_calls の順序問題が原因として疑われる。
2025-11-25 他ユーザからも同様の不具合報告。CLI/VScode/ACP すべて影響ありとの声。Codex チームから「/responses API を推奨」とコメント。
2025-12-04頃 PR #7310 がマージされる(tool call の順序問題の修正)。次のリリースで反映予定と言及。
2025-12-05(朝) 0.66.0-alpha.3 が公開されるも、新たに function.name が空になるエラーが発生。並列 tool call の別の回帰が確定。
2025-12-05(昼) 別の回帰として Issue #7579 が立てられ、Codex チームがそちらで追跡開始。
2025-12-05(夕) 0.66.0-alpha.5 が公開される。だが依然として function.name: empty string 問題は解消されず。
2025-12-06(早朝) 0.66.0-alpha.7 が公開され、並列 tool call のチャットストリーミングに関する回帰を修正、とアナウンス。
2025-12-06(午前) alpha.7 を試したユーザから「元のエラー(tool_call_id に対する応答なし)」が再発するという報告。修正がまだ成功していないことが判明。

まとめ

  1. Codex CLI 0.59 以上で、Chat Completions 互換 API 利用時に 400 エラーが発生しやすい問題が続いている。
    修正 PR は出たが、不具合のリグレッションが連続しており 2025/12/06 時点でも未解決。

  2. 影響が出るのはフォーマット検証が厳しい互換 API。
    企業内ゲートウェイや Anthropic 互換設定では再現しやすく、OpenAI 本家や Gemini は問題が出にくい。

  3. 現状の安全策は Codex CLI を 0.58 以下で固定するか、OpenAI 本家モデルのみを利用すること。
    Homebrew 利用者は自動アップデートに巻き込まれやすいので注意。

このような状況の人の助けになれば幸いです。

Discussion