Summary
When an MCP tool returns a ui:// resource (rendered as an HTML widget inside an iframe), calling window.openai.sendFollowUpMessage() or window.openai.callTool() from inside that iframe can crash the UI with a ReactRenderingError. The widget then displays “Failed to load content” with ui_boundary_error.
This appears to happen because the conversation tree is restructured after the follow-up/tool call, and a previously valid parent node reference becomes stale. Later, code that walks the tree (via isReasoningResponseMessage) fails to resolve the parent and throws.
Error / Stack Trace
Error: getNodeByIdOrMessageId - no node found by id: xxxxxxxxxx
at Cc.getNodeByIdOrMessageId
at Cc.getParent
at Object.getParentNode
at Object.isReasoningResponseMessage
