This was generated by AI during triage.
Client or integration
Codex CLI
Area
Provider adapter
Summary
When Codex routes gpt-5.3-codex-spark through the canonical ChatGPT Responses endpoint, forwarding x-openai-internal-codex-responses-lite: true starts an HTTP 200 SSE response but the upstream stream ends before a terminal event. OpenCodex consequently emits response.incomplete with incomplete_details.reason=adapter_eof and records the request as 502.
Replaying the same request after removing only that header completes normally. The expected behavior is for OpenCodex to suppress Responses Lite only for the Spark wire model while preserving existing metadata forwarding for other canonical models.
Reproduction
- Use OpenCodex with the canonical OpenAI Codex-login provider and select
gpt-5.3-codex-spark.
- Send a streaming Responses request carrying
x-openai-internal-codex-responses-lite: true.
- Observe HTTP 200 and initial SSE events, followed by
response.incomplete with reason adapter_eof; OpenCodex records 502.
- Replay the identical request after removing only the Lite header.
- Observe a normal
response.completed terminal and successful Codex CLI exit.
The source behavior is also present on current dev: an adapter-boundary regression test expecting the Spark header to be absent fails before the proposed fix because the built request still contains true.
A failed WebSocket upgrade is not causal: Codex falls back to HTTP, and the HTTP request completes after the Lite header is removed.
Version
Observed on 2.43.0; source behavior confirmed on dev 2.47.0 at d00615d5696a9c6b7f1a3006181e57569b012920.
Operating system
Windows 10 Pro, build 19045
Provider and model
OpenAI (Codex login) / gpt-5.3-codex-spark
Logs or error output
With x-openai-internal-codex-responses-lite: true:
HTTP 200 -> SSE -> response.incomplete
incomplete_details.reason=adapter_eof
OpenCodex result: 502
Without that header:
HTTP 200 -> SSE -> response.completed
Codex output: SPARK_DROP_LITE_OK
Screenshots and supporting files
The result was reproduced by differential request replay. No credentials, account identifiers, request IDs, or private provider URLs are attached.
Redacted configuration
{
"providers": {
"openai": {
"adapter": "openai-responses",
"authMode": "forward",
"baseUrl": "https://chatgpt.com/backend-api/codex"
}
}
}
Checks
Client or integration
Codex CLI
Area
Provider adapter
Summary
When Codex routes
gpt-5.3-codex-sparkthrough the canonical ChatGPT Responses endpoint, forwardingx-openai-internal-codex-responses-lite: truestarts an HTTP 200 SSE response but the upstream stream ends before a terminal event. OpenCodex consequently emitsresponse.incompletewithincomplete_details.reason=adapter_eofand records the request as 502.Replaying the same request after removing only that header completes normally. The expected behavior is for OpenCodex to suppress Responses Lite only for the Spark wire model while preserving existing metadata forwarding for other canonical models.
Reproduction
gpt-5.3-codex-spark.x-openai-internal-codex-responses-lite: true.response.incompletewith reasonadapter_eof; OpenCodex records 502.response.completedterminal and successful Codex CLI exit.The source behavior is also present on current
dev: an adapter-boundary regression test expecting the Spark header to be absent fails before the proposed fix because the built request still containstrue.A failed WebSocket upgrade is not causal: Codex falls back to HTTP, and the HTTP request completes after the Lite header is removed.
Version
Observed on 2.43.0; source behavior confirmed on dev 2.47.0 at
d00615d5696a9c6b7f1a3006181e57569b012920.Operating system
Windows 10 Pro, build 19045
Provider and model
OpenAI (Codex login) /
gpt-5.3-codex-sparkLogs or error output
Screenshots and supporting files
The result was reproduced by differential request replay. No credentials, account identifiers, request IDs, or private provider URLs are attached.
Redacted configuration
{ "providers": { "openai": { "adapter": "openai-responses", "authMode": "forward", "baseUrl": "https://chatgpt.com/backend-api/codex" } } }Checks