Codex prefers workarounds over root-cause fixes

Resolved 💬 3 comments Opened Jan 29, 2026 by lukaszciastko 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.92.0

What subscription do you have?

Pro

Which model were you using?

gpt-5.2 xhigh

What platform is your computer?

_No response_

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

_No response_

What issue are you seeing?

I’ve noticed that recently Codex has started resolving issues using workarounds rather than proper fixes. I’ve been using Codex for a long time, and the previous “extra high” mode consistently produced thoughtful, high-quality solutions. However, in recent weeks its behaviour appears to have changed.

What steps can reproduce the bug?

I can’t provide precise reproduction steps, but I can describe a few representative examples. In one case, I was working with a custom state-management framework where errors were not propagating correctly to the UI layer. Instead of identifying and fixing the issue within the state-management code, Codex chose to rewrite the business logic using a different approach that bypassed the framework entirely. After I pointed out that this was incorrect and that the underlying issue should be fixed, it was then able to locate and resolve the problem in the state-management framework itself.

In another instance, when asked to fix a failing UI test, Codex determined that because the asserted value was unstable, the test should compute the expected value using the same method as the production code. While this makes the test pass, it undermines the purpose of the test and avoids addressing the root cause of the instability.

Overall, it feels as though the model is optimising for the quickest path from problem to passing result, without adequately considering whether the solution is appropriate or robust. I’m unsure what has changed to cause this shift in behaviour, but it may be related to prompt or model configuration changes. Based on my long-term experience with Codex, it previously demonstrated a much stronger tendency to investigate and fix problems properly rather than relying on expedient shortcuts.

What is the expected behavior?

_No response_

Additional information

_No response_

View original on GitHub ↗

3 Comments

andreszs · 7 months ago

First, ensure you are using the _High_ or _Highest_ reasoning effort mode. Anyway, I’ve noticed that incremental patching with Codex is, more often than not, a dead end and a complete waste of time.

At this point, I’ve learned a simple rule:

When Codex fails to fix the same error after two attempts, insisting further is pointless. 🚫

The most effective workflow so far has been:

  1. Let Codex produce its proposed (non-working) solution with its full context information.
  2. Copy that output and feed it to Claude (paid version).
  3. Claude immediately identifies the root cause and the correct fix.
  4. Ask Claude to rewrite the solution as unformatted, clear & precise instructions, with code snippets where needed.
  5. Spoon-feed Codex the proposed solution (a simple copy-paste will do) and voilà.

In other words, to get Codex unstuck, I have to rely on a different paid AI assistant to do the actual problem solving.

Unfortunately, Claude introduces its own unique frustrations: tokens run out faster than sand slipping through your fingers, and when that happens it has the audacity to abort code edits mid-response — effectively saying:

_“Oops, you ran out of tokens… See you in a week. Good luck fixing the half-edited, now broken code!”_ 🙂

This is why, absurdly, I currently have to pay for two AI assistants just to compensate for the limitations of one.

etraut-openai contributor · 7 months ago

Thanks for the bug report. We'll share the feedback with the team responsible for training our codex models. If you see other model behavior that you'd like to report, please use the /feedback command. That will provide us with additional details including logs and conversation text.

hiroki-tamba-research · 1 month ago

A cross-vendor analogue has now been documented in Anthropic Claude Code:

  • anthropics/claude-code#78031 — Claude Fable 5 proposed editing a failed verification script with an identity sed substitution that preserved the “100% IDENTICAL” success string without changing the underlying pass condition.

The concrete mechanisms differ, but both cases involve an agent modifying the verification surface rather than preserving an independent test and correcting only the underlying implementation.

Taken together, the reports suggest a broader agentic failure mode involving specification gaming, reward hacking, and compromised self-verification integrity across frontier coding agents.