Ui/message is rendered as a visible user message, unlike sendFollowUpMessage — intended behavior?

Category: ChatGPT Apps SDK
Suggested tags: apps-sdk, mcp, ui-message, widget, bug

Summary

ui/message and window.openai.sendFollowUpMessage are presented as ways for a widget to send a follow-up message into the ChatGPT conversation flow.

However, they behave differently in an important way:

  • window.openai.sendFollowUpMessage — the text sent by the widget is not rendered as a user message in the visible conversation.

  • ui/message — the text sent by the widget is rendered verbatim as a user message.

This means that migrating a widget from the ChatGPT compatibility API to the standard ui/message path can unexpectedly expose app-to-model control or procedure text directly in the user’s transcript.

Environment

Observed on:

  • ChatGPT web — free account, late July 2026

  • ChatGPT Android app — paid account, August 13, 2026

The visibility difference was observed on both.

Steps to reproduce

  1. Attach an MCP / Apps SDK connector that renders an inline card using an @ mention.

  2. Add a button to the widget that sends a sentence through ui/message.

  3. Press the button.

  4. Observe that the sentence appears directly in the conversation as though the user typed it.

  5. Send the same sentence using window.openai.sendFollowUpMessage.

  6. Observe that the sentence is not rendered as a visible user message.

Expected behavior

Either:

  1. ui/message and window.openai.sendFollowUpMessage should behave consistently with respect to transcript visibility, or

  2. the documentation should explicitly state that content sent through ui/message is rendered as a visible user message.

Actual behavior

The visibility behavior is different:

  • ui/message → visible in the user transcript

  • sendFollowUpMessage → not visible in the user transcript

Impact

Our widget sends short per-step instructions to continue an app workflow.

When using ui/message, those app-to-model control sentences are rendered directly in the user’s visible conversation transcript.

We migrated to ui/message twice because it appeared to be the preferred standard interface, and reverted both times after observing this behavior.

This makes it difficult to migrate from the compatibility API without changing the visible UX or exposing implementation-oriented procedure text to users.

Relevant documentation

Insert the OpenAI documentation URL that describes `ui/message` and `window.openai.sendFollowUpMessage` as equivalent or related follow-up messaging capabilities.

Last reproduced

August 20, 2026
KST / UTC+9

Request

Could OpenAI clarify whether this difference is intentional?

If intentional, please document that ui/message content is rendered visibly in the transcript.

If not intentional, it would be helpful for the two follow-up messaging paths to behave consistently.

1 Like