[Bug] Luna high/xhigh long structured-output turns disconnect while Sol low succeeds
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 52/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- docker, rust
- Domain
- backend-api-design, cli, networking
Research direction
Start with the official Docker-only Codex App Server path used by Codex CLI 0.144.1, and compare continuation/retry state for the successful Sol low control and failing Luna high turn. Reproduce the compact structured-output topology, then verify that the request either completes its JSON envelope or returns a typed actionable error without indefinite WebSocket and HTTPS retries.
Written by the indexing model from the issue text.
Description
Summary
gpt-5.6-luna is available and can complete small requests, but a long, tool-free, strictly structured turn can lose its response stream while the same frozen request succeeds with gpt-5.6-sol at low reasoning. The failure is reproducible without business data, URLs, names, addresses, or private files.
Domain-neutral reproduction
- Build an in-memory JSON field-card atlas with one sheet and two areas. The first area has 22 opaque columns (
AthroughV); the second has one opaque column (W). Use 23 field cards total. - Populate the cards only with generated tokens (
entity-001,token-001, enum-like values, integers, decimals, booleans, and blanks). Use deterministic source ranges, evidence-card references, bounded catalogs, typed statistics, samples, hyperlink examples, fill statistics, and a few missing-row spans. The tokens must have no real-world meaning. - Add a compact generic template description with 14 fixed typed slots (
slot_01throughslot_14), same-row and bounded carry-forward lookup, record-slot and counted-expansion metadata, seven bounded predicate kinds, evidence-card limits, and exact source-hash copying. Add a scope-closure section that classifies each of the 23 columns into the neutral rolesmeasure,period,state,uncertain, ornone. - Ask for exactly one minified JSON envelope and no tools, markdown, explanations, records, row values, or per-row materialization. The host owns row scanning and entity creation. The envelope has five root properties:
artifact,schema_version,source_hash,scaffold_patch, andscope_closure; its schema has 14 reusable definitions and a compact patch output. The prompt is approximately 44 KB and the JSON Schema approximately 8 KB; the expected response is only a few KB. - Run the identical request twice through the official Docker-only Codex App Server, changing only model and reasoning effort:
gpt-5.6-sol,lowgpt-5.6-luna,high
No tools, search, retries from the caller, alternate provider, host Codex, or hidden fallback are involved.
Observed locally
On Codex CLI 0.144.1 in the same container and network:
- Sol low returned a JSON-Schema-valid compact envelope (
exit 0, 41.8 seconds, no retry events, 3.3 KB response). - Luna high entered the same turn but never produced a completed envelope. After roughly 21 minutes of retries it emitted
responseStreamDisconnectedwithhttpStatusCode: null, then four WebSocket reconnects (2/5through5/5), a warning that it was falling back from WebSockets to HTTPS, and five HTTPS reconnects (1/5through5/5). Noturn/completed/accepted result was materialized.
The exact timing varies, but the failure is a long-turn stream termination, not an HTTP error. Small Luna requests, the same prompt with a tiny schema, and schema-only probes complete; Sol succeeds on the long neutral topology request in the same Docker/network path.
Why a simpler synthetic request does not reproduce it
A small synthetic example that merely has a similar byte count is not equivalent. If it asks the model to emit all rows and all field values, it changes the output contract and can make every model spend minutes generating a large response. The failing Core path instead has a dense field-card/area/typed-rule decision topology and asks for a compact patch while the host owns materialization. Reproducing the topology and compact envelope is necessary; real business semantics are not.
Expected behavior
The turn should either complete the strict JSON envelope or return a typed, actionable error. It should not silently lose the response stream and retry indefinitely across two transports when the same request succeeds on Sol.
Request
Please investigate Luna high long-turn response streaming/reassembly and the WebSocket-to-HTTPS fallback. In particular, compare the continuation/retry state for a compact structured response with a dense typed decision graph against the successful Sol low control. This report intentionally contains only generated opaque tokens.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.5k
- Avg merge
- 1m
- Merged PRs (30d)
- 1k
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from openai/codex
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
bug CLI windows-os
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
macOS sandbox blocks hw.optional.arm64 sysctl, causing Flutter to misdetect Apple Silicon as x64 Openbug CLI sandbox
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug CLI TUI
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
CLI config enhancement skills
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
A-linter
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
oxc-project/oxc#26863 ·