Repository navigation
Description
This was generated by AI during triage.
What happened
After Azure rate-limited a Codex turn, the affected conversation could no longer be resumed. Every subsequent attempt failed while decoding thread/resume, before a new turn could start.
Diagnosis
Codex persisted:
"codex_error_info":"rate_limit_exceeded"in the rollout JSONL"codexErrorInfo":"rateLimitExceeded"inthread_history_1.sqlite
T3 Code's generated V2ThreadResumeResponse__CodexErrorInfo schema does not include rateLimitExceeded. Because the entire resume response is strictly decoded, one failed historical turn makes the whole conversation permanently unresumable.
Current T3 Code main at 9b2d04317c68233782e0630464ac86d77d0686f3 still has the incompatible enum.
Suggested fixes:
- Add
rateLimitExceededto the generated schema. - Decode unknown future
codexErrorInfovalues leniently, mapping them toother, so protocol drift cannot make existing threads inaccessible.
Steps to reproduce
- Use T3 Code with Codex through an Azure-backed endpoint.
- Start a turn that fails because of an Azure rate limit.
- Allow Codex to persist the failed turn.
- Restart or otherwise trigger
thread/resume. - Attempt to continue the conversation.
The resume response fails schema validation, and later attempts fail identically.
Version
T3 Code Nightly 0.0.38-nightly.20260831.1236
The separately launched npx t3 triage CLI reported 0.0.37.
Environment
- macOS Darwin arm64
25.6.0 - Node.js
v24.16.0 - Codex CLI
0.151.0 - T3 Code Nightly desktop app using its local embedded server
Evidence
CodexAppServerRequestError: Invalid payload for method 'thread/resume' during 'decode-payload'
SchemaError: Expected "contextWindowExceeded" | "sessionBudgetExceeded"
| "usageLimitExceeded" | "serverOverloaded" | "cyberPolicy"
| "internalServerError" | "unauthorized" | "badRequest"
| "threadRollbackFailed" | "sandboxError" | "other"
at ["thread"]["turns"][28]["error"]["codexErrorInfo"]The Codex projection database contains one failed turn whose codexErrorInfo is rateLimitExceeded. Matching rollout JSONL files contain the upstream rate_limit_exceeded value.
Related issues
No exact issue was found for rateLimitExceeded or rate_limit_exceeded.
Related schema-drift reports include #8355 and #8322, where other newly introduced Codex enum values similarly caused thread/resume decoding to reject an entire conversation.
Fix applied or workaround
No files or databases were modified.
Starting a new thread avoids the affected history but does not recover the existing conversation.
Filed by
Codex (GPT-5) via T3 triage
Activity
Squashed '.repos/effect-smol/' changes from a43c7e244c..e17ecdbe90