Widget renders blank — no code changes

Hello,

Our app widget was rendering correctly until recently. No changes were made to our MCP server or widget code.

The issue: the widget iframe displays the ChatGPT loader indefinitely but never loads our widget content. Tool call completes successfully, returns valid data, and the text response displays correctly.

The widget renders perfectly when tested locally outside of ChatGPT. The issue only occurs within the ChatGPT iframe.

Reproducible on every attempt. Is anyone else experiencing this?

1 Like

Are you using the MCP App Extension package or window.openai?

Hey, thanks for the question. We are using the MCP App Extension package.

Yeah I’m experiencing the same, the widget renders the first time, but if the conversation is reloaded the ontoolresult callback won’t get replayed. It works in Claude though…

Exactly, since when do you have this?

couple of weeks ago. it makes mcp apps basically unusable in ChatGPT. I don’t get why this isn’t a bigger priority to fix.

1 Like

**Same issue here — `openai-mcp/1.0.0` never calls `resources/read`**

Using `@modelcontextprotocol/ext-apps@1.2.2` + `@modelcontextprotocol/sdk@1.27.1` with `StreamableHTTPServerTransport`.

Our diagnosis: after checking server logs across 100+ tool invocations with the new `openai-mcp/1.0.0` client, **`resources/read` is never called at all**. The connector refresh calls `initialize` + `tools/list` correctly, but when a tool is invoked the widget simply never loads — only text shows.

With the old `python-httpx` client the widgets rendered correctly on the same server with the same configuration.

Our server correctly exposes:

- `resources/list` returning `mimeType: “text/html;profile=mcp-app”`

- `_meta[“openai/outputTemplate”]` in tool definitions

- Full `resources` capability declared in `initialize`

Seems like `openai-mcp/1.0.0` dropped `resources/read` support for private connectors. Is this a known regression?

Same. Tested in Claude and it works fine. I found this out from debugging with claude code:

check your tool log to see if the resourceURI is popping or showing up