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 (
A through V); 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_01 through slot_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 roles measure, period, state, uncertain, or none.
- 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, and scope_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, low
gpt-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
responseStreamDisconnected with httpStatusCode: null, then four WebSocket reconnects (2/5 through 5/5), a warning that it was falling back from WebSockets to HTTPS, and five HTTPS reconnects (1/5 through 5/5). No turn/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.
Summary
gpt-5.6-lunais 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 withgpt-5.6-solat low reasoning. The failure is reproducible without business data, URLs, names, addresses, or private files.Domain-neutral reproduction
AthroughV); the second has one opaque column (W). Use 23 field cards total.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.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.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.gpt-5.6-sol,lowgpt-5.6-luna,highNo tools, search, retries from the caller, alternate provider, host Codex, or hidden fallback are involved.
Observed locally
On Codex CLI
0.144.1in the same container and network:exit 0, 41.8 seconds, no retry events, 3.3 KB response).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.