Published ChatGPT App widget fails with Failed to fetch template / ecosystem/widget 404 — ongoing since late May

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/widget request 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 /mcp endpoint.

  • The tool call returns HTTP 200.

  • The tool response includes _meta.openai/outputTemplate.

  • The output template points to the expected ui://widget/...html URI.

  • My resources/read handler 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?

  1. Can an approved/published app end up with a missing widget snapshot?

  2. Is there a safe way to trigger re-ingestion / re-snapshotting of the widget template?

  3. Does re-publishing or refreshing a published app preserve its published status?

  4. Is there any recommended way to debug why resources/read is never called after a successful tool response?

  5. 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.

Thanks for sharing the detailed context @Goo_park

From what you've described, it looks like the widget requests are returning a 404 Not Found error, which could explain the behavior you're seeing.

To help isolate the issue and investigate further, could you share the Support ticket number you received? I'll take a look at the existing case details and see what additional information might help move the investigation forward.

~ Smith

Hi Smith,
Thank you for taking a look.
The support case number is:
Case Number: 09279117

2026년 6월 19일 (금) 오전 1:52, OpenAI Support <notifications@openai1.discoursemail.com>님이 작성:

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_69c5fe38431081918f0af247e22e648b

  • Status: Published / Released

  • Template resource URI: ui://widget/kfortune-20260510-7.html

  • sediment_id: ""

REJECTED / older version:

  • App version ID: asdk_app_v_69b0d7fc8de48191a38b8a34bb518125

  • Status: Rejected

  • Template resource URI: ui://widget/index.html

  • sediment_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/read request ever reaches our /mcp server, because the widget lookup fails before it gets that far.

  • Our MCP server is healthy. The open_kfortune_ui tool call reaches our /mcp endpoint and returns HTTP 200 with the correct template pointer.

  • Our resources/read handler returns HTTP 200 and the template HTML for any ui://widget/kfortune-*.html URI, 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_id difference.

  • Server-side log excerpt showing open_kfortune_ui -> HTTP 200.

  • Affected ChatGPT session transcript and “Failed to fetch template” screenshots, sent earlier.