Published ChatGPT App widget fails with Failed to fetch template / ecosystem/widget 404 — ongoing since late May
Case Number: 09279117
I found what appears to be the root cause, and it confirms this is a backend ingestion / widget snapshot issue on OpenAI’s side rather than an issue with our MCP server.
First, to clarify your earlier questions:
The failure was observed on ChatGPT web/desktop as well, not only on mobile. I understand that interactive MCP apps may not be supported on mobile, but this issue is not limited to mobile behavior.
Also, I have not re-published the app yet because the app is already Published and visible in the directory, and I do not want to risk losing the app’s Published status. If refreshing or re-publishing from my side is safe and will not affect the Published status, please confirm and I can do it immediately.
I exported and compared the configs of our Published version and our older Rejected version. The widget template’s sediment_id — OpenAI’s stored snapshot of the widget HTML — is empty in the Published version:
PUBLISHED / live version:
App version ID:
asdk_app_v_69c5fe38431081918f0af247e22e648bStatus: Published / Released
Template resource URI:
ui://widget/kfortune-20260510-7.htmlsediment_id:""
REJECTED / older version:
App version ID:
asdk_app_v_69b0d7fc8de48191a38b8a34bb518125Status: Rejected
Template resource URI:
ui://widget/index.htmlsediment_id:"file_00000000709471f59e9aef7156ea74cd"
Because the Published version’s sediment_id is empty, OpenAI’s backend appears to have no stored copy of the widget template for the live version. This fully explains the symptoms:
- ChatGPT’s frontend requests the widget from:
[https://chatgpt.com/backend-api/ecosystem/widget?...&template_pointer=ui://widget/kfortune-20260510-7.html](https://chatgpt.com/backend-api/ecosystem/widget?...&template_pointer=ui://widget/kfortune-20260510-7.html)
and receives 404 Not Found.
No
resources/readrequest ever reaches our/mcpserver, because the widget lookup fails before it gets that far.Our MCP server is healthy. The
open_kfortune_uitool call reaches our/mcpendpoint and returns HTTP 200 with the correct template pointer.Our
resources/readhandler returns HTTP 200 and the template HTML for anyui://widget/kfortune-*.htmlURI, but the request never reaches us.
Could you please re-ingest / re-snapshot the widget template for the Published version so its sediment_id is populated?
Important: I would prefer not to re-publish the app myself unless you confirm it is safe, because I do not want to risk losing the app’s Published status. If a refresh or re-publish on our side is required to trigger the ingestion, please confirm that doing so will preserve the Published status, and I will do it immediately.
Attachments for reference:
“Your Apps” screenshot confirming the app is Published, version 1.0.0, with “View in Directory”, alongside the older Rejected 1.0.0 version.
The two exported configs, Published and Rejected, showing the
sediment_iddifference.Server-side log excerpt showing
open_kfortune_ui -> HTTP 200.Affected ChatGPT session transcript and “Failed to fetch template” screenshots, sent earlier.
Discussion in the ATmosphere