Skip to content

Codex "Selected model is at capacity" / server_overloaded on trivial first turn (Web + Windows app) #52812

Open

Description

@woshiwuyanzuhh

SUMMARY

Codex tasks start normally but fail after ~49 seconds with:

Selected model is at capacity. Please try a different model.

Internal classification reported by OpenAI Help Center: codex_error_info: server_overloaded

The failure occurs on a trivial first turn. In the primary reproduction the user's entire
prompt was a single short greeting. No tools were invoked, no files were touched, no
tool-call round-trips occurred. The request was rejected while still in its first
inference round. This rules out long-context, large-payload, tool-loop, and client-side
resource causes.

The failure is NOT account-level quota exhaustion. Local response headers captured at the
time of failure show the account had 93 percent of its window remaining:

x-codex-plan-type = pro
x-codex-primary-used-percent = 7
x-codex-credits-has-credits = True
x-codex-credits-balance = 62500
x-codex-primary-window-minutes = 10080 (7-day window, ~432000s until reset)

This report includes full client-side telemetry because the backend routing logs are not
reachable from the client.

REPRODUCTION

Surface Codex Web (chatgpt.com/codex/) + ChatGPT/Codex Windows desktop app
App version 26.1007.21434
CLI version codex-cli 0.155.1 (npm global)
OS Windows 10, build 19045
Prompt that triggered it single short message (two characters)
Network Normal network AND mobile hotspot (rules out local network path)
Control Regular ChatGPT web chats work normally during the same period
Models affected gpt-6-astra, gpt-5.6-sol, gpt-6-luna -- all three
Reasoning efforts ultra, xhigh, high, medium, low
Transport Both responses_http and responses_websocket

TIMELINE (Asia/Hong_Kong, UTC+8)

All timestamps extracted from the local SQLite log database shipped with the app at
~/.codex/logs_2.sqlite, table "logs", column "feedback_log_body", which records the full
request span for every turn.

11:47:55 thread 01a123ec-aaf8-7d73-a720-5a216a3abd6b created
11:53:48 thread 01a123f2-0d5b-7c63-b551-4789bec089d5 created (fork of 01a123ec)
11:55:09 gpt-5.6-sol -> at capacity
11:56:02 gpt-5.6-sol -> at capacity
11:56:34 gpt-5.6-sol -> at capacity (thread 01a123f2)
11:56:35 gpt-5.6-sol -> at capacity (thread 01a123ec, same second)

The reported failure time (11:56:35) is confirmed in local logs.

ERROR RATE TREND (gpt-6-astra)

Capacity errors are monotonically worsening, not a transient spike:

2026-10-04 5,776 requests 8 errors 0.1 percent
2026-10-08 849 requests 10 errors 1.2 percent
2026-10-10 279 requests 13 errors 4.5 percent

A 45x degradation over 6 days with no change in client configuration.

CAPACITY ERRORS BY MODEL

gpt-6-astra 31
gpt-5.6-sol 12
gpt-6-luna 6

Three independent model pools failing simultaneously indicates a shared upstream capacity
constraint, not a single-model issue.

ARTIFACTS

Primary session (the one that failed):

Thread ID: 01a123f2-0d5b-7c63-b551-4789bec089d5
Created: 2026-10-10 11:53:48 Asia/Hong_Kong
Root session: 01a123ec-aaf8-7d73-a720-5a216a3abd6b
Shared link: https://chatgpt.com/s/cx_6ac9d8c818508191bf3ff7999a31e695

Note on identifiers: OpenAI Help Center provided 01a1247e-1d32-7a41-ab4e-6da6ae6e09b7 as
the Session ID for this incident. Local logs show that thread was created at 14:26:47,
2.5 hours AFTER the 11:56:35 failure, so it could not have produced the error. The field
above is the verified thread.

EXPECTED

Task continues or completes normally. Capacity-based failures should either be
transparent (automatic fallback / queueing) or degrade gracefully rather than surfacing a
hard error after the task has already started and consumed work.

ACTUAL

Hard failure with "at capacity" / server_overloaded after the task has been running for
~49 seconds. The session cannot be resumed past the failure point in that turn.

ADDITIONAL OBSERVATIONS

Client-side model selection diverges from config.toml. The Windows app persists its own
model choice in ~/.codex/.codex-global-state.json
(electron-persisted-atom-state.composer-recent-model-configurations-v1) and this takes
precedence over config.toml. Users who edit config.toml to change models may silently
keep running the app-selected model. This may cause confusion when reproducing.

service_tier has no observable effect on capacity errors. priority / "Fast" is
available on all affected models for this account (default_service_tier: null), yet
capacity errors occur regardless. If priority is not expected to guarantee capacity,
that is fine, but it would help to document what it does guarantee.

Harmless but noisy warning on every new thread/fork:
WARN codex_features: unknown feature key in config: code_mode_tool_description_first
The Windows app emits a config key the CLI does not recognize. It is emitted on every
fork / thread spawn and floods the log.

Intermittent model-list timeout:
ERROR codex_models_manager: list_models{refresh_strategy=online}:
failed to refresh available models: request timed out
This can cause the model picker to fall back to a stale cached list, which may hide
newly available models during an incident.

HOW TO REPRODUCE FROM LOGS

For anyone triaging client-side, this is the query that produced the timeline above
(requires the SQLite DB shipped with the app at ~/.codex/logs_2.sqlite):

SELECT datetime(ts,'unixepoch','+8 hours') AS local_time,
level,
target,
feedback_log_body
FROM logs
WHERE feedback_log_body LIKE '%at capacity%'
ORDER BY id DESC;

Identifying which thread actually failed requires the thread_id= span field, not the
session_id field. Forked child threads inherit the parent's session_id in session_meta, so
session_id alone is ambiguous across forks.

Activity

  1. added
    bugSomething isn't working
    codex-webIssues related to Codex Web
    connectivityIssues involving networking or endpoint connectivity problems (disconnections)
    on Oct 10, 2026
  2. kriouerlia commented on Oct 13, 2026

    @kriouerlia

    Corroborating — same Windows build, and my account headers are almost identical to yours.

    • OS: Windows 10 Pro 22H2 build 19045 (identical to yours)
    • Client: Codex Desktop MSIX OpenAI.Codex 26.930.4958.0 + bundled codex-cli 0.160.0
    • Account: ChatGPT Pro, plan_type: "pro"

    Response headers attached to my failing requests:

    x-codex-plan-type              = pro
    x-codex-primary-used-percent   = 6                    # yours: 7
    x-codex-credits-has-credits    = True
    x-codex-credits-balance        = 62381.9437950000     # yours: 62500
    x-codex-primary-window-minutes = 10080
    x-codex-secondary-used-percent = 0
    

    That is the same "plenty of allowance, still rejected" signature — four days later, and 4 days' worth of additional data points on the trend you documented (0.1% → 4.5%).

    Volume / timeline (UTC+8): 2026-10-12 10:20 → 2026-10-13 11:43, still ongoing:

    • Selected model is at capacity × 59 (44 on 10-12, 15 on 10-13)
    • unexpected status 503 Service Unavailable × 25 (all on 10-13)
    • Failed to run pre-sampling compact × 17
    • 7 distinct models affected

    Last 60 minutes: server 503 × 23 vs local error sending request 0, is_timeout=true 0, WebSocket fallback 0. Locally measured on the same machine: TLS to chatgpt.com:443 20/20 @ 129 ms, and the wss://.../codex/responses Upgrade returned HTTP/1.1 101 and held 62 s.

    On your region-routing hypothesis: I observed the identical failure on two different egress POPs — cf-ray ...-ICN (Seoul) and ...-KHH (Kaohsiung) — so from my side it does not look POP-specific.

    Request IDs:

    time (UTC+8) request id cf-ray
    2026-10-13 11:43:46 ea86d99e-cdb3-4593-b8aa-865448246d7e a49b5a090de8d1d7-ICN
    2026-10-13 10:25:59 e7348878-4aea-4ece-ac9a-024090660d8f a49ae7e13839f255-KHH
    2026-10-13 10:25:15 5f95e6f1-79e6-4408-8f9a-50300f96156a a49ae6b19f6bf24c-KHH

    One difference from your original repro: in my account a trivial prompt ("Reply OK") currently succeeds 6/6 while real workloads fail consistently — consistent with payload size being an aggravating factor layered on top of server_overloaded, rather than the trigger. Full write-up: #53559

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 workingcodex-webIssues related to Codex WebconnectivityIssues involving networking or endpoint connectivity problems (disconnections)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions