openai / openai/codex

[Pro 20x] Weekly reset dates moved later on two accounts after Sep 9 incident without using banked resets

Open
#44,443 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

bug CLI rate-limits
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?

ChatGPT Pro (20x) — 2 separate accounts

Which model were you using?

gpt-6-astra

What platform is your computer?

Windows (WSL)

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

Windows Terminal (WSL)

Codex doctor report
codex doctor --json
{
  "schemaVersion": 1,
  "generatedAt": "1789022098s since unix epoch",
  "overallStatus": "warning",
  "codexVersion": "0.154.0",
  "checks": {
    "app_server.status": {
      "id": "app_server.status",
      "category": "app-server",
      "status": "ok",
      "summary": "background server is not running",
      "details": {
        "control socket": "/home/pavelbe/.codex/app-server-control/app-server-control.sock",
        "daemon state dir": "/home/pavelbe/.codex/app-server-daemon",
        "mode": "ephemeral",
        "pid file": "/home/pavelbe/.codex/app-server-daemon/app-server.pid (missing)",
        "settings": "/home/pavelbe/.codex/app-server-daemon/settings.json (missing)",
        "status": "not running",
        "update-loop pid file": "/home/pavelbe/.codex/app-server-daemon/app-server-updater.pid (missing)"
      },
      "remediation": null,
      "durationMs": 0
    },
    "auth.credentials": {
      "id": "auth.credentials",
      "category": "auth",
      "status": "ok",
      "summary": "auth is configured",
      "details": {
        "auth file": "/home/pavelbe/.codex/auth.json",
        "auth storage mode": "File",
        "stored API key": "false",
        "stored ChatGPT tokens": "true",
        "stored agent identity": "false",
        "stored auth mode": "chatgpt"
      },
      "remediation": null,
      "durationMs": 0
    },
    "config.load": {
      "id": "config.load",
      "category": "config",
      "status": "ok",
      "summary": "config loaded",
      "details": {
        "CODEX_HOME": "/home/pavelbe/.codex",
        "active thread overrides": "not inspected",
        "config.toml": "/home/pavelbe/.codex/config.toml",
        "config.toml parse": "ok",
        "configuration load ms": "112",
        "configuration scope": "invocation config, including cloud-managed policy",
        "cwd": "/home/pavelbe",
        "enabled feature flags": "shell_tool, view_image, sleep_tool, unified_exec, unified_exec_tty, unified_exec_zsh_fork, shell_snapshot, content_item_kinds, code_mode_host, terminal_resize_reflow, sqlite, hooks, enable_request_compression, unbounded_connection_retries, multi_agent, multi_agent_v2, apps, tool_search_always_defer_mcp_tools, tool_suggest, plugins, in_app_browser, in_app_chat, in_app_dictation, in_app_local_automation, in_app_updates, browser_use, browser_use_full_cdp_access, browser_use_external, computer_use, remote_plugin, plugin_sharing, image_generation, resize_all_images, item_ids, skill_mcp_dependency_install, skill_search, mentions_v2, steer, guardian_approval, goals, collaboration_modes, tool_call_mcp_elicitation, auth_elicitation, personality, fast_mode, tui_app_server, remote_compaction_v2, compaction_image_budget, workspace_dependencies",
        "feature flag overrides": "multi_agent_v2=true",
        "feature flags enabled": "49",
        "log dir": "/home/pavelbe/.codex/log",
        "mcp servers": "1",
        "model": "gpt-6-astra",
        "model provider": "openai",
        "sqlite home": "/home/pavelbe/.codex"
      },
      "remediation": null,
      "durationMs": 5
    },
    "git.environment": {
      "id": "git.environment",
      "category": "git",
      "status": "ok",
      "summary": "git executable found; execution not verified",
      "details": {
        "PATH git #1": "/usr/bin/git",
        "PATH git #2": "/bin/git",
        "PATH git entries": "2",
        "git execution": "not inspected (PATH helpers are not executed)",
        "repo detected": "false",
        "selected git": "/usr/bin/git"
      },
      "remediation": null,
      "durationMs": 37
    },
    "installation": {
      "id": "installation",
      "category": "install",
      "status": "ok",
      "summary": "installation looks consistent",
      "details": {
        "PATH codex #1": "/home/pavelbe/.local/bin/codex",
        "PATH codex #2": "/home/pavelbe/.npm-global/bin/codex",
        "PATH codex #3": "/usr/local/bin/codex",
        "PATH codex #4": "/usr/bin/codex",
        "PATH codex #5": "/bin/codex",
        "PATH codex entries": "5",
        "current executable": "/home/pavelbe/.npm-global/lib/node_modules/@openai/codex/node_modules/@openai/codex-linux-x64/vendor/x86_64-unknown-linux-musl/bin/codex",
        "install context": "npm (package /home/pavelbe/.npm-global/lib/node_modules/@openai/codex/node_modules/@openai/codex-linux-x64/vendor/x86_64-unknown-linux-musl, bin /home/pavelbe/.npm-global/lib/node_modules/@openai/codex/node_modules/@openai/codex-linux-x64/vendor/x86_64-unknown-linux-musl/bin, resources /home/pavelbe/.npm-global/lib/node_modules/@openai/codex/node_modules/@openai/codex-linux-x64/vendor/x86_64-unknown-linux-musl/codex-resources, path /home/pavelbe/.npm-global/lib/node_modules/@openai/codex/node_modules/@openai/codex-linux-x64/vendor/x86_64-unknown-linux-musl/codex-path)",
        "managed by Vite+": "false",
        "managed by bun": "false",
        "managed by npm": "true",
        "managed by pnpm": "false",
        "managed package root": "/home/pavelbe/.npm-global/lib/node_modules/@openai/codex",
        "npm update target": "not inspected (PATH helpers are not executed)"
      },
      "remediation": null,
      "durationMs": 54
    },
    "mcp.config": {
      "id": "mcp.config",
      "category": "mcp",
      "status": "ok",
      "summary": "MCP configuration is locally consistent",
      "details": {
        "configured servers": "1",
        "disabled servers": "0",
        "streamable_http servers": "1"
      },
      "remediation": null,
      "durationMs": 439
    },
    "network.env": {
      "id": "network.env",
      "category": "network",
      "status": "ok",
      "summary": "network-related environment looks readable",
      "details": {
        "managed proxy": "not configured",
        "proxy env vars present": "NO_PROXY, no_proxy",
        "respect system proxy": "disabled"
      },
      "remediation": null,
      "durationMs": 0
    },
    "network.provider_reachability": {
      "id": "network.provider_reachability",
      "category": "reachability",
      "status": "ok",
      "summary": "active provider endpoints are reachable over HTTP",
      "details": {
        "ChatGPT inference URL": "https://chatgpt.com/backend-api/<redacted> reachable (HTTP 405)",
        "reachability mode": "ChatGPT auth"
      },
      "remediation": null,
      "durationMs": 366
    },
    "network.websocket_reachability": {
      "id": "network.websocket_reachability",
      "category": "websocket",
      "status": "ok",
      "summary": "Responses WebSocket handshake succeeded",
      "details": {
        "DNS": "2 IPv4, 2 IPv6, first IPv4",
        "auth mode": "chatgpt",
        "connect timeout": "15000 ms",
        "endpoint": "wss://chatgpt.com/backend-api/<redacted>",
        "handshake result": "HTTP 101 Switching Protocols",
        "model provider": "openai",
        "provider name": "OpenAI",
        "proxy env vars present": "NO_PROXY, no_proxy",
        "reasoning header": "false",
        "server model present": "false",
        "supports websockets": "true",
        "wire API": "responses"
      },
      "remediation": null,
      "durationMs": 992
    },
    "runtime.provenance": {
      "id": "runtime.provenance",
      "category": "runtime",
      "status": "ok",
      "summary": "running npm on linux-x86_64",
      "details": {
        "commit": "unknown",
        "current executable": "/home/pavelbe/.npm-global/lib/node_modules/@openai/codex/node_modules/@openai/codex-linux-x64/vendor/x86_64-unknown-linux-musl/bin/codex",
        "install method": "npm (package /home/pavelbe/.npm-global/lib/node_modules/@openai/codex/node_modules/@openai/codex-linux-x64/vendor/x86_64-unknown-linux-musl, bin /home/pavelbe/.npm-global/lib/node_modules/@openai/codex/node_modules/@openai/codex-linux-x64/vendor/x86_64-unknown-linux-musl/bin, resources /home/pavelbe/.npm-global/lib/node_modules/@openai/codex/node_modules/@openai/codex-linux-x64/vendor/x86_64-unknown-linux-musl/codex-resources, path /home/pavelbe/.npm-global/lib/node_modules/@openai/codex/node_modules/@openai/codex-linux-x64/vendor/x86_64-unknown-linux-musl/codex-path)",
        "platform": "linux-x86_64",
        "version": "0.154.0"
      },
      "remediation": null,
      "durationMs": 0
    },
    "runtime.search": {
      "id": "runtime.search",
      "category": "search",
      "status": "ok",
      "summary": "search command found (bundled); execution not verified",
      "details": {
        "search command": "/home/pavelbe/.npm-global/lib/node_modules/@openai/codex/node_modules/@openai/codex-linux-x64/vendor/x86_64-unknown-linux-musl/codex-path/rg",
        "search command readiness": "file exists",
        "search provider": "bundled"
      },
      "remediation": null,
      "durationMs": 0
    },
    "sandbox.helpers": {
      "id": "sandbox.helpers",
      "category": "sandbox",
      "status": "ok",
      "summary": "sandbox configuration is readable",
      "details": {
        "approval policy": "Never",
        "codex-linux-sandbox helper": "/home/pavelbe/.codex/tmp/arg0/codex-arg0Fbnvqs/codex-linux-sandbox",
        "denied-read glob rules": "0",
        "denied-read rules": "0",
        "execve wrapper helper": "/home/pavelbe/.codex/tmp/arg0/codex-arg0Fbnvqs/codex-execve-wrapper",
        "filesystem sandbox": "unrestricted",
        "glob scan max depth": "unbounded",
        "managed filesystem source": "none",
        "network sandbox": "enabled"
      },
      "remediation": null,
      "durationMs": 0
    },
    "security.endpoint": {
      "id": "security.endpoint",
      "category": "security",
      "status": "ok",
      "summary": "endpoint protection is not inspected on this platform",
      "details": {
        "endpoint products": "not inspected on this platform"
      },
      "remediation": null,
      "durationMs": 0
    },
    "state.paths": {
      "id": "state.paths",
      "category": "state",
      "status": "ok",
      "summary": "state paths and databases are inspectable",
      "details": {
        "CODEX_HOME": "/home/pavelbe/.codex (dir)",
        "active rollout files": "6825 files, 47473593345 total bytes, 6955837 average bytes",
        "archived rollout files": "0 files, 0 total bytes, 0 average bytes",
        "goals DB": "/home/pavelbe/.codex/goals_1.sqlite (file)",
        "goals DB integrity": "ok",
        "log DB": "/home/pavelbe/.codex/logs_2.sqlite (file)",
        "log DB integrity": "ok",
        "log dir": "/home/pavelbe/.codex/log (dir)",
        "memories DB": "/home/pavelbe/.codex/memories_1.sqlite (file)",
        "memories DB integrity": "ok",
        "queue DB": "/home/pavelbe/.codex/queue_1.sqlite (file)",
        "queue DB integrity": "ok",
        "sqlite home": "/home/pavelbe/.codex (dir)",
        "state DB": "/home/pavelbe/.codex/state_5.sqlite (file)",
        "state DB integrity": "ok",
        "thread history DB": "/home/pavelbe/.codex/thread_history_1.sqlite (file)",
        "thread history DB integrity": "ok"
      },
      "remediation": null,
      "durationMs": 46172
    },
    "state.rollout_db_parity": {
      "id": "state.rollout_db_parity",
      "category": "threads",
      "status": "warning",
      "summary": "rollout files and state DB thread inventory differ",
      "details": {
        "default model provider": "openai",
        "rollout DB active files": "6825",
        "rollout DB active rows": "6820",
        "rollout DB archive mismatches": "0",
        "rollout DB archived files": "0",
        "rollout DB archived rows": "0",
        "rollout DB duplicate DB paths": "0",
        "rollout DB duplicate rollout thread ids": "0",
        "rollout DB malformed file names": "0",
        "rollout DB missing active rows": "5",
        "rollout DB missing active sample": [
          "/home/pavelbe/.codex/sessions/2026/07/15/rollout-2026-07-15T12-10-47-019f650a-fdcc-7d83-9860-e3a2df4f6934.jsonl",
          "/home/pavelbe/.codex/sessions/2026/07/16/rollout-2026-07-16T11-47-53-019f6a1c-6680-7a00-bdb3-040bafc0364d.jsonl",
          "/home/pavelbe/.codex/sessions/2026/07/16/rollout-2026-07-16T11-46-56-019f6a1b-848f-7941-85eb-5001b5e4bfa1.jsonl",
          "/home/pavelbe/.codex/sessions/2026/07/16/rollout-2026-07-16T11-30-29-019f6a0c-729b-7ec2-9968-406c69ed5858.jsonl",
          "/home/pavelbe/.codex/sessions/2026/07/16/rollout-2026-07-16T11-13-56-019f69fd-5061-7cd1-a0e8-9db0c94ba90d.jsonl"
        ],
        "rollout DB missing archived rows": "0",
        "rollout DB model providers": "openai=6820",
        "rollout DB rows": "6820",
        "rollout DB scan cap reached": "false",
        "rollout DB scan errors": "0",
        "rollout DB sources": "exec=3585, subagent:thread_spawn=3060, cli=170, subagent:review=5",
        "rollout DB stale rows": "0"
      },
      "issues": [
        {
          "severity": "warning",
          "cause": "rollout files are missing from the state DB",
          "measured": "5 active, 0 archived",
          "expected": "every rollout file has a matching threads row",
          "remedy": null,
          "fields": []
        }
      ],
      "remediation": null,
      "durationMs": 11384
    },
    "system.disk": {
      "id": "system.disk",
      "category": "disk",
      "status": "ok",
      "summary": "sufficient free disk space (824.8 GiB)",
      "details": {
        "CODEX_HOME available": "824.8 GiB",
        "failure threshold": "1.0 GiB",
        "warning threshold": "5.0 GiB",
        "worktree available": "824.8 GiB"
      },
      "remediation": null,
      "durationMs": 0
    },
    "system.environment": {
      "id": "system.environment",
      "category": "system",
      "status": "ok",
      "summary": "OS language C",
      "details": {
        "EDITOR": "not set",
        "LANG": "C.UTF-8",
        "VISUAL": "not set",
        "os": "Ubuntu 24.4.0 (noble) [64-bit]",
        "os language": "C",
        "os type": "Ubuntu",
        "os version": "24.4.0"
      },
      "remediation": null,
      "durationMs": 45
    },
    "terminal.env": {
      "id": "terminal.env",
      "category": "terminal",
      "status": "ok",
      "summary": "terminal metadata was detected",
      "details": {
        "DISPLAY": "present",
        "WSL_DISTRO_NAME": "present",
        "WSL_INTEROP": "present",
        "WT_SESSION": "present",
        "color output": "enabled",
        "effective locale": "C.UTF-8",
        "stderr is terminal": "true",
        "stdin is terminal": "true",
        "stdout is terminal": "true",
        "terminal": "Windows Terminal",
        "terminal size": "280x57"
      },
      "remediation": null,
      "durationMs": 0
    },
    "terminal.title": {
      "id": "terminal.title",
      "category": "title",
      "status": "ok",
      "summary": "terminal title configured",
      "details": {
        "terminal title activity": "true",
        "terminal title items": "activity, project-name, git-branch, run-state",
        "terminal title project source": "cwd",
        "terminal title project value": "pavelbe",
        "terminal title source": "configured"
      },
      "remediation": null,
      "durationMs": 0
    },
    "updates.status": {
      "id": "updates.status",
      "category": "updates",
      "status": "warning",
      "summary": "update configuration is locally consistent",
      "details": {
        "cached latest version": "0.153.4",
        "check for update on startup": "true",
        "last checked at": "2026-09-09T18:07:56.031035283Z",
        "latest version probe": "version request timed out",
        "npm update target": "not inspected (PATH helpers are not executed)",
        "update action": "npm install -g @openai/codex",
        "version cache": "/home/pavelbe/.codex/version.json"
      },
      "remediation": null,
      "durationMs": 5002
    }
  }
}
What issue are you seeing?

I am seeing an unexpected change to the weekly Codex reset dates on two separate ChatGPT Pro (20x) accounts following the September 9, 2026 usage-limit incident.

I did NOT redeem a banked/manual reset on either account.

Nevertheless, the displayed weekly reset dates moved later on both accounts.

All times below are Europe/Moscow (UTC+3).

Account A:

  • Sep 8 snapshot: weekly reset Sep 11, 2026 at 23:13
  • Sep 10 check: weekly reset Sep 15, 2026 at 07:48
  • Reset date moved later by approximately 3 days, 8 hours, 35 minutes
  • Banked resets remained unchanged: 1 → 1

Account B:

  • Sep 8 snapshot: weekly reset Sep 14, 2026 at 08:17
  • Sep 10 check: weekly reset Sep 15, 2026 at 04:26
  • Reset date moved later by approximately 20 hours, 9 minutes
  • Banked resets remained unchanged: 3 → 3

The expiration timestamps of the banked resets also remained unchanged.

I did not manually use any banked reset on either account, and I did not receive an additional replacement banked reset on September 9.

The weekly remaining allowance also changed between observations:

Account A:

  • 0% remaining → 23% remaining

Account B:

  • 19% remaining → 0% remaining

Because both the percentage and reset timestamp changed, I am NOT claiming that only the date changed. Some automatic server-side quota/reset/reconciliation event may have occurred.

The issue is that the weekly reset anchor moved later on both accounts without me redeeming a banked reset, and I cannot determine which server-side event caused it.

No user-facing error message explained why the weekly reset dates changed.


What steps can reproduce the bug?
I do not currently have a deterministic reproduction because this appears to be a server-side quota/reset-state issue.

Observed sequence:

  1. On September 8, record the weekly Codex reset date on two separate ChatGPT Pro (20x) accounts.

  2. Do not redeem any banked/manual reset on either account.

  3. The September 9, 2026 OpenAI incident involving unexpected Codex usage-limit/reset behavior occurs.

  4. Continue without manually redeeming the available banked resets.

  5. Check the same accounts again on September 10.

  6. Observe that both weekly reset dates have moved later:

    • Account A: Sep 11 23:13 → Sep 15 07:48
    • Account B: Sep 14 08:17 → Sep 15 04:26
  7. Observe that the available banked-reset inventory is unchanged:

    • Account A: 1 → 1
    • Account B: 3 → 3
  8. Observe that the weekly remaining percentage has also changed, suggesting some server-side quota/reconciliation event occurred.

There is no code snippet that can reproduce this because the behavior concerns server-side subscription quota state rather than repository code or a local Codex command.

I already submitted Codex diagnostic feedback.

Uploaded thread ID:
01a089de-5389-7422-92e1-d073d347ec3f

What steps can reproduce the bug?

Uploaded thread: 01a089de-5389-7422-92e1-d073d347ec3f

What is the expected behavior?

The active weekly Codex reset date should remain stable unless there is a clearly defined event that intentionally re-anchors the weekly quota window.

If OpenAI performs an automatic/global reset or quota reconciliation, the resulting weekly reset date should be internally consistent and the event should be identifiable.

A weekly reset date should not silently move several hours or several days later without explanation.

I expect OpenAI to check the server-side quota/reset history for both accounts and determine:

  1. What event changed weekly reset_at on each account?
  2. Were the accounts included in an automatic/global reset or reconciliation?
  3. Why were the weekly reset anchors moved later even though no banked reset was manually redeemed?
  4. Is the new reset date expected behavior, a reporting issue, or an unintended side effect of the September 9 remediation?
  5. If the reset dates were moved unintentionally, restore the correct weekly reset anchors.
Additional information

This affects two separate ChatGPT Pro (20x) accounts.

I am intentionally not publishing the account email addresses because this GitHub issue is public. I can provide both account identifiers privately to OpenAI maintainers/support if needed.

I already submitted diagnostic feedback from Codex:

Thread ID:
01a089de-5389-7422-92e1-d073d347ec3f

The older reset timestamps were preserved in a September 8 snapshot and independently corroborated by a saved read-only usage query.

The newer reset timestamps were checked again on September 10.

Banked-reset inventory remained unchanged:

Account A:

  • 1 banked reset before
  • 1 banked reset after

Account B:

  • 3 banked resets before
  • 3 banked resets after

Their expiration timestamps also remained unchanged.

I did not redeem a banked/manual reset on either account.

This occurred around the September 9 OpenAI incident:
“Investigating unexpected usage limit resets”

Related incident:
https://status.openai.com/incidents/01M23KG62KKK448RN434CQ64Z8

Potentially related Codex issues:

  • #44251 — weekly quota oscillates between different reset windows
  • #44245 — quota/reset state changed and later reverted
  • #44210 — weekly usage and reset timestamp changed together
  • #41220 — abnormal Codex usage/quota-accounting tracker

I am deliberately not asserting a specific root cause.

My request is for server-side reconciliation to determine which event changed the active weekly quota windows on these two accounts.

I will not publish auth.json, authentication tokens, cookies, or private session contents.

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

No repository file, test, or entry point is identified. Start by comparing the weekly reset dates and banked-reset usage for both affected accounts around the Sep 9 incident, then document whether the entitlement data changed incorrectly and what service-side correction is required.

Written by the indexing model from the issue text.

Assessment

Domain
backend, payments
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.