Published ChatGPT App widget fails with Failed to fetch template / ecosystem/widget 404 — ongoing since late May
Hi everyone,
I’m posting this here because I have an unresolved issue with a published ChatGPT App built with the Apps SDK, and I’m hoping someone from the Apps SDK / ChatGPT App team or another developer who has seen this can help.
The app is already approved and published, but its widget does not render inside ChatGPT.
This issue has been ongoing since late May, and it is affecting a live published app.
Timeline / support history
I first contacted OpenAI Support about this issue in late May.
I have two related OpenAI Support cases open for this issue, and I can provide the case numbers privately to OpenAI staff if needed.
Since then, I have provided multiple rounds of diagnostic materials, including:
-
screen recordings
-
screenshots of the widget error
-
HAR/network logs
-
server-side MCP logs
-
failed
ecosystem/widgetrequest details -
exported JSON/config comparison
-
timestamps and internal tracing details provided privately to support
Based on the support discussion and the evidence provided, the issue appears related to backend widget retrieval / widget snapshot behavior. I was also asked not to refresh or re-publish the app unless instructed, because the app is already published and visible in the directory.
However, as of now, the issue is still unresolved, and I have not received a clear final answer or fix yet.
Current symptom
The tool call itself succeeds inside ChatGPT, but the widget UI fails to load.
The user-facing error is:
Failed to fetch template
In Chrome DevTools, the failing request is to ChatGPT’s backend widget endpoint:
GET https://chatgpt.com/backend-api/ecosystem/widget
?force_local=false
&uri=connectors://<APP_ID>
&template_pointer=ui://widget/<widget-template>.html
&resource_path=/<app-name>/<link-id>/<tool-name>
Status: 404 Not Found
What is working on my side
The MCP server appears to be working correctly.
-
The ChatGPT tool call reaches my
/mcpendpoint. -
The tool call returns HTTP 200.
-
The tool response includes
_meta.openai/outputTemplate. -
The output template points to the expected
ui://widget/...htmlURI. -
My
resources/readhandler is implemented and returns the widget HTML for that URI. -
The hosted widget HTML is publicly accessible.
-
There is no authentication requirement.
-
There is no redirect.
-
CSP allows ChatGPT/OpenAI domains.
-
The issue reproduces on desktop web, not only mobile.
-
Reconnecting the app and testing in a clean browser profile did not resolve it.
Important observation
After the successful tool call, my server never receives a resources/read request for the widget template.
Instead, ChatGPT appears to request the widget through:
chatgpt.com/backend-api/ecosystem/widget
and that request returns 404 before my server is ever asked for the template.
So this does not look like a normal MCP server failure. The failure appears to happen inside ChatGPT/OpenAI’s widget lookup path.
Exported JSON/config comparison
I compared the exported JSON/config of the current published version with an older non-published version.
The app dashboard shows both versions: one is currently Published, while the older one is Rejected.
In the published/live version, the widget template entry exists and the outputTemplate points to the expected widget URI, but the sediment_id value is empty:
status: RELEASED
outputTemplate: ui://widget/<widget-template>.html
resource_uri: ui://widget/<widget-template>.html
sediment_id: ""
In the older rejected/non-published version, the corresponding widget template entry has a populated sediment_id:
status: REJECTED
outputTemplate: ui://widget/<older-widget-template>.html
resource_uri: ui://widget/<older-widget-template>.html
sediment_id: "<populated-file-reference>"
This looks significant because sediment_id appears to be the stored widget snapshot/file reference on OpenAI’s side.
So the issue does not appear to be that my tool response is missing outputTemplate. The outputTemplate exists.
The issue appears to be that the published app version has an empty sediment_id, meaning the published widget template may not have been stored or snapshotted correctly in OpenAI’s backend. This would explain why ChatGPT’s ecosystem/widget lookup returns 404 before my MCP server ever receives a resources/read request.
Current hypothesis
This looks like a backend ingestion / widget snapshot issue for the published app version.
The tool call succeeds, but the published app’s widget template snapshot may be missing or stale in OpenAI’s backend. Because of that, ChatGPT’s ecosystem/widget lookup returns 404 and the frontend shows Failed to fetch template.
Questions
Has anyone seen this behavior before?
-
Can an approved/published app end up with a missing widget snapshot?
-
Is there a safe way to trigger re-ingestion / re-snapshotting of the widget template?
-
Does re-publishing or refreshing a published app preserve its published status?
-
Is there any recommended way to debug why
resources/readis never called after a successful tool response? -
Could someone from the Apps SDK / ChatGPT App team help take a look at this? I can provide the related support case numbers privately if needed.
I want to avoid re-publishing blindly because the app is already published, and I do not want to risk losing the published status.
This is affecting a live published app and has been unresolved since late May, so I would appreciate any escalation or confirmation from the Apps SDK / ChatGPT App team.
Any guidance from OpenAI staff or developers who have dealt with Apps SDK widget ingestion issues would be appreciated.