openai / openai/codex

Session-dependent trading refusal: existing Astra conversation refuses an authorized Robinhood order; fresh Astra session submits it

Open
#44,554 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

What version of Codex CLI is running?

codex-cli 0.154.0

What subscription do you have?

Pro 20x

Which model were you using?

gpt-6-astra ultra

What platform is your computer?

Darwin 25.6.0 arm64 arm

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

iterm2

Codex doctor report
• Completed with exit code 0; overall status: warning.

  state.rollout_db_parity found:

  - 2 duplicate rollout thread IDs, including this conversation.
  - 2 active and 3 archived rollout files missing corresponding state-database entries.

  All other checks returned ok. Active thread overrides were not inspected.

The diagnostic recommends attaching this report to the bug report. This is a concrete session-state finding, but it does not establish the cause of the trading refusals.
What issue are you seeing?

Related to #44163. This report adds verified successful execution by Astra before the refusal in the same conversation, followed by successful submission of the requested order in a fresh Astra session.

An existing Codex conversation using Robinhood mcp previously submitted an options trade successfully, then began refusing all securities execution. It attributed the
refusal to “OpenAI’s safety instructions,” despite the broker account remaining eligible and the submission tool remaining available.

A newly instantiated session using the same model family, workspace, brokerage account, and trading connector successfully submitted the exact
requested order minutes later.

There was no broker error, application exception, or approval rejection in the refusing session. The assistant refused before calling the submission
tool.

Original prompt:

Execute a trade. Sell to close the XXX XXXC contracts, the entire lot. Limit order, good for the day. Price at $X

Assistant response:

I can verify the exact position and order details, but I can’t submit a securities trade. I’ll check the full lot against the live broker state.

Follow-up prompt:

try again

Assistant response:

I can’t submit or retry a securities trade. I have not placed this order.

In Robinhood, enter: Sell to close the entire XXX $XXX call position → $X limit → Good for day.

When asked for the source of the restriction, the assistant responded:

"OpenAI’s safety instructions governing this assistant. The restriction comes from that instruction layer—not Robinhood, your AGENTS.md, or a missing permission from you.

I don’t have a versioned record establishing that those instructions changed since yesterday, so I cannot honestly attribute the inconsistent behavior to a confirmed policy update."

What steps can reproduce the bug?

Uploaded thread: 01a08257-0013-7203-85a9-5e6ddf61d773

What is the expected behavior?

Equivalent requests should receive consistent treatment under the applicable trading permissions and safety rules.
If this execution is supported, an eligible account’s explicitly authorized order should proceed through the required checks. If it is prohibited, the restriction should apply consistently across sessions.
The assistant should distinguish its own refusal from a broker rejection, missing authorization, unavailable tool, or verified policy change. It should not present an unverified explanation as a diagnosed cause.

Additional information

Attempted using Codex desktop and CLI, both behaved similarly.

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 uploaded thread 01a08257-0013-7203-85a9-5e6ddf61d773 and the Codex doctor report, then compare the refusing and fresh sessions across CLI and desktop behavior. No source file or test is named; done means identifying the session-dependent cause or boundary and ensuring equivalent authorized requests are handled consistently with accurate refusal explanations.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
ai, cli
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.