Skip to content

fix(codex): correct stale-timeout hint — gpt-5.4-codex doesn't exist#33128

Closed
teknium1 wants to merge 1 commit into
mainfrom
hermes/hermes-5bf34d29
Closed

fix(codex): correct stale-timeout hint — gpt-5.4-codex doesn't exist#33128
teknium1 wants to merge 1 commit into
mainfrom
hermes/hermes-5bf34d29

Conversation

@teknium1

Copy link
Copy Markdown
Contributor

Summary

The Codex silent-hang hint suggested gpt-5.4-codex as the workaround when gpt-5.5 stalls on the chatgpt.com backend, but that model name doesn't exist in the OpenAI Codex catalog. The Codex-tagged SKUs are gpt-5.3-codex / gpt-5.2-codex; the plain sibling that works is gpt-5.4. Users following the hint hit a second error trying to switch to a phantom model.

Also softens the framing: the previous text asserted "appears to be silently rejecting" as fact, but the detector only knows the stale-timeout fired — it can't actually distinguish backend rejection from network drop or latency spike. The original phrasing led users to believe gpt-5.5 was broken when it's often transient.

Changes

  • run_agent.py: rewrite the user-facing message — drop the false "silently rejecting" claim, point to gpt-5.4 (which exists), suggest retry first.
  • tests/run_agent/test_codex_silent_hang_hint.py: update assertions; rename negative-case test from gpt-5.4-codex (phantom) to gpt-5.4 (real).

Validation

Before After
Workaround model gpt-5.4-codex (doesn't exist) gpt-5.4 (real)
Framing "silently rejecting" (asserted fact) "did not return any stream events within timeout" (observed)
Test suite 10/10 passing

User report that surfaced this: ChatGPT Plus account getting the stale-timeout hint, following the suggestion, hitting another error because gpt-5.4-codex is not a known model.

… soften framing

The Codex silent-hang hint suggested `gpt-5.4-codex` as the workaround,
but that model name doesn't exist in the OpenAI Codex catalog (the
Codex-tagged SKUs are gpt-5.3-codex and gpt-5.2-codex; plain gpt-5.4
is the actual sibling model). Users following the hint hit a second
error trying to switch to a phantom model.

Also softens the framing from "appears to be silently rejecting" to
"did not return any stream events ... within the stale-call timeout".
The original phrasing asserted backend rejection as fact, but the
detector only knows about the timeout — it can't actually tell whether
the backend rejected the request, the network dropped, or latency
spiked. Misleading users into thinking gpt-5.5 is broken when it's
often transient.

Changes
- run_agent.py: rewrite the user-facing message — drop the false
  "silently rejecting" claim, point to gpt-5.4 (which exists), suggest
  retry first.
- tests/run_agent/test_codex_silent_hang_hint.py: update assertions to
  match the new message; rename the negative-case test to use gpt-5.4
  (the actual workaround) instead of the bogus gpt-5.4-codex.

Validation
- tests/run_agent/test_codex_silent_hang_hint.py → 10/10 passing
@github-actions

Copy link
Copy Markdown
Contributor

🔎 Lint report: hermes/hermes-5bf34d29 vs origin/main

ruff

Total: 0 on HEAD, 0 on base (➖ 0)

🆕 New issues: none

✅ Fixed issues: none

Unchanged: 0 pre-existing issues carried over.

ty (type checker)

Total: 9386 on HEAD, 9386 on base (➖ 0)

🆕 New issues: none

✅ Fixed issues: none

Unchanged: 4963 pre-existing issues carried over.

Diagnostics are surfaced as warnings — this check never fails the build.

@teknium1

Copy link
Copy Markdown
Contributor Author

Closing in favor of PR #33034 (@EvilHumphrey), which is a strict improvement. Their version:

  1. Fixes the same hint text correctly (gpt-5.4 is real, gpt-5.4-codex is not)
  2. Additionally wires the hint into the TTFB watchdog kill path in agent/chat_completion_helpers.py — that's the path most users actually hit first on gpt-5.5 no-first-byte failures (e.g. the CRUSADER report in support thread)
  3. Adds targeted test coverage for the TTFB watchdog path on top of the stale-call timeout coverage I had

Salvaging #33034 onto current main now. Sorry for the wasted CI cycle, missed their PR in the duplicate sweep.

@teknium1 teknium1 closed this May 27, 2026
@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have comp/agent Core agent loop, run_agent.py, prompt builder provider/openai OpenAI / Codex Responses API duplicate This issue or pull request already exists labels May 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/agent Core agent loop, run_agent.py, prompt builder duplicate This issue or pull request already exists P3 Low — cosmetic, nice to have provider/openai OpenAI / Codex Responses API type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants