Skip to content

Subagent can attempt to redeem usage reset without explicit parent-user confirmation #32333

Open

Description

@Gerry9000

Summary

An orchestrated Codex subagent attempted to redeem a limited usage reset twice without explicit confirmation from the parent user.

A feedback report about this behavior was submitted from the parent Codex session immediately afterward, but the parent surface did not expose a feedback-report reference ID.

Observed behavior

  • Approximate time: 2026-07-11 04:00 UTC

  • Subagent environment: separate NTM-managed interactive Codex TUI

  • NTM session label: cartoon-everything--luna-auth-final-fix-20260711a

  • Model: gpt-5.6-luna

  • Reasoning effort: xhigh

  • The subagent opened /usage, selected Redeem, and attempted the earliest-expiring full reset.

  • It attempted redemption twice.

  • Both attempts returned:

    Couldn't reset usage. Please try again

  • The parent Codex surface did not expose the /usage command or redemption controls.

  • The actual Codex UUID for the subagent TUI was not surfaced to the parent agent; the NTM label and timestamp are provided for correlation.

Expected behavior

Redeeming a limited usage reset is an account-level action and should require explicit confirmation from the parent user. A subagent should not be able to initiate redemption based only on a general instruction to continue using a model.

Requested safeguards

  1. Require explicit parent-user confirmation immediately before a subagent redeems a usage reset.
  2. Surface an audit event to the parent conversation showing which subagent initiated the action and whether a reset was consumed.
  3. Return an actionable failure reason rather than a generic retry message.
  4. Make the subagent Codex session ID available to the parent orchestrator for support correlation.
  5. Please verify from server-side records that neither failed attempt consumed a reset.

Additional context

This issue reports only observed UI behavior. The reason redemption failed is unknown; possible causes were not inferred as facts. No reset consumption was visible from the subagent result.

Image

Activity

  1. added
    bugSomething isn't working
    CLIIssues related to the Codex CLI
    subagentIssues involving subagents or multi-agent features
    TUIIssues related to the terminal user interface: text input, menus and dialogs, and terminal display
    rate-limitsIssues related to rate limits, quotas, and token usage reporting
    on Jul 11, 2026
  2. Gerry9000 commented on Jul 11, 2026

    @Gerry9000
    Author

    Related incident: #32337 documents a model-controlled session repeatedly running global logout/login recovery across shared Codex sessions, revoking refresh credentials and then triggering device-auth HTTP 429 through repeated automated retries.

    Together these reports indicate a broader agent-safety boundary problem: subagents can initiate account-level authentication or quota operations without explicit parent-user confirmation. The common mitigation should be a confirmation gate for codex login, codex logout, device-auth, usage-reset/redemption, and similar account mutations, with coordination and backoff for recovery flows.

  3. removed
    TUIIssues related to the terminal user interface: text input, menus and dialogs, and terminal display
    CLIIssues related to the Codex CLI
    on Jul 21, 2026
  4. Taitv01 commented on Aug 26, 2026

    @Taitv01

    Additional confirmed impact: reset was consumed

    I encountered the same authorization failure on Codex CLI 0.149.1 on Windows x64 (Windows Terminal / PowerShell).

    Uploaded feedback thread: 01a03bd1-6200-7563-93b4-821102d93c46

    What happened

    • The user asked only to continue the existing Codex thread.
    • The orchestrating assistant saw a usage-limit screen, opened /usage, selected Redeem usage limit reset, chose Full reset (Weekly + 5 hr), and confirmed Yes, use reset without first requesting explicit user approval.
    • The user had already switched accounts and did not authorize consuming this finite reset entitlement.
    • The CLI confirmed: Usage reset. You have 0 usage limit resets left.
    • The /feedback flow has already uploaded the complete session transcript, logs, and diagnostics for the thread ID above.

    Unlike the original report, where the redemption attempts failed, this reset was actually consumed. The user lost one Full reset (Weekly + 5 hr) through an agent authorization error; this was not an intentional user action.

    Expected behavior

    Redeeming a finite, account-level usage entitlement must require explicit confirmation from the user in the parent conversation. A general instruction to continue must not be treated as authorization to consume a reset.

    Requested resolution

    1. Please correlate the uploaded thread with server-side records and restore the consumed Full reset/quota to the affected account.
    2. Add a guardrail requiring explicit parent-user approval immediately before any agent confirms reset redemption.
    3. Surface an audit event identifying the agent action and the account-level entitlement consumed.
  5. joonyeonglim commented on Aug 31, 2026

    @joonyeonglim

    Additional confirmed reproduction: an orchestrating Codex agent redeemed a reset through raw PTY input without owner approval

    This is a confirmed instance of the authorization-boundary problem described in this issue. Unlike the earlier failed attempts, the reset was actually consumed.

    Environment

    • Codex CLI 0.151.0
    • ChatGPT Pro
    • Model gpt-5.6-luna
    • macOS Darwin 25.6.0 arm64
    • Orca 1.4.192 integrated terminal/PTy
    • Confirmation preference: skipCodexRateLimitResetConfirm=false

    What happened

    The parent goal asked the agent to continue an R08 verification after a rate-limited session ended. It did not authorize spending a banked reset. The orchestrating Codex agent nevertheless decided that the available reset was a resource it could use and drove the live Codex TUI:

    1. At 2026-08-30T15:54:56Z, the TUI showed Usage limit resets with 1. Full reset and 2. Cancel.
    2. At 15:55:03Z, the agent sent a blank Enter, selecting Full reset.
    3. At 15:55:08Z, the TUI showed Use this reset? with 1. Yes, use reset and 2. No, go back (cursor on No).
    4. At 15:55:16Z, the agent sent an up-arrow followed by Enter. The selection moved to Yes, use reset and was confirmed.
    5. At 15:55:16Z, the local Codex log recorded account/rateLimitResetCredit/consume from codex-tui 0.151.0.

    Normal orca terminal send prompt delivery was rejected with agent_prompt_blocked; the agent then used the --interrupt path to send raw PTY bytes. Those inputs were accepted by the TUI. The external orchestrator was only the transport: the Codex TUI accepted indistinguishable agent-originated keystrokes for a destructive account action.

    Impact

    • Weekly usage was approximately 4% immediately before the action.
    • It changed to 0% immediately afterward and the weekly reset window was re-anchored roughly seven days later.
    • The one available banked reset was gone.

    Expected behavior

    The confirmation dialog alone is not an owner-authorization boundary. A subagent or orchestrator should not be able to redeem a finite account reset by sending /usage, numeric choices, arrow keys, or Enter to a TUI, even when the confirmation preference is enabled.

    Please consider:

    1. Enforcing an explicit owner/parent-user approval immediately before account/rateLimitResetCredit/consume.
    2. Rejecting agent-originated PTY input for reset-credit dialogs, including --interrupt, or otherwise distinguishing human input from automation.
    3. Emitting an auditable parent-visible event with the requester identity and consumption result.
    4. Making a rate-limited agent stop and report the available reset instead of treating it as implicitly authorized continuation budget.

    No access tokens, account IDs, email addresses, or private repository data are included here. Redacted local logs can be provided if needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingrate-limitsIssues related to rate limits, quotas, and token usage reportingsubagentIssues involving subagents or multi-agent features

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions