Environment
- ChatGPT Desktop (Mac) 26.810.50856 (released 2026-08-14)
- Embedded MCP client:
codex-mcp-client 0.148.0-alpha.9
- Remote MCP server over streamable HTTP (TypeScript SDK 1.x), OAuth-authenticated
- Client capabilities advertised:
elicitation: { form: {}, url: {} }
Behavior
The server issues elicitation/create (form mode, a simple single-select enum schema). The dialog renders correctly in ChatGPT Desktop and the user clicks Accept/OK — but the response never reaches the server: the server-side elicitation/create request fails with an error ~6 seconds later.
Observed identically for two different requests in the same session:
- a diagnostic probe elicitation: server-side error after 6104 ms
- a confirm dialog ("Need help?" with OK/Cancel options): user clicked OK; the server received an error instead of the accept
Works over stdio
The same host (ChatGPT Desktop 26.810.41047, same codex-mcp-client 0.148.0-alpha.9) against a local stdio MCP server completes the identical elicitation end-to-end: dialog renders, user accepts, { action: "accept", content: { value: "ok" } } arrives at the server (~10 s human latency, negotiated protocol 2025-06-18).
Expected
The user's Accept (with content) is delivered to the server as the elicitation/create response, exactly as it is over stdio.
Possibly related
Environment
codex-mcp-client0.148.0-alpha.9elicitation: { form: {}, url: {} }Behavior
The server issues
elicitation/create(form mode, a simple single-select enum schema). The dialog renders correctly in ChatGPT Desktop and the user clicks Accept/OK — but the response never reaches the server: the server-sideelicitation/createrequest fails with an error ~6 seconds later.Observed identically for two different requests in the same session:
Works over stdio
The same host (ChatGPT Desktop 26.810.41047, same
codex-mcp-client0.148.0-alpha.9) against a local stdio MCP server completes the identical elicitation end-to-end: dialog renders, user accepts,{ action: "accept", content: { value: "ok" } }arrives at the server (~10 s human latency, negotiated protocol 2025-06-18).Expected
The user's Accept (with content) is delivered to the server as the
elicitation/createresponse, exactly as it is over stdio.Possibly related
content: None— closed; here the Accept doesn't arrive at all)