edit:shopify/Metaobject intent shows stale field values on first open after an Admin API metaobjectUpdate

Summary

When a metaobject is updated through the Admin GraphQL API and the edit:shopify/Metaobject intent is invoked right after, the metaobject editor opens showing the old field values. Closing the editor and opening it again shows the correct values. It looks like the editor renders the entry from the admin’s client-side cache and does not refetch on first open.

Context

Embedded app (App Home, Polaris web components + App Bridge). Our app lets merchants set a custom image on an app-owned metaobject entry:

  1. The app opens the native file picker with the new intent: shopify.intents.invoke('pick:shopify/File', { data: { mediaTypes: ['MediaImage'] } })
  2. The app backend writes the picked MediaImage GID to a file_reference field of the metaobject using metaobjectUpdate (Admin API 2026-04)
  3. Reading the metaobject back through the Admin API immediately returns the new image, so the write itself is fine

Steps to reproduce

  1. Update a metaobject field through the Admin GraphQL API (in our case a file_reference field, from empty to a MediaImage GID)
  2. Immediately invoke the editor intent for the same entry from the embedded app:
const activity = await shopify.intents.invoke('edit:shopify/Metaobject', {
  value: 'gid://shopify/Metaobject/123456789',
  data: { type: 'app--12345--my_type' },
});
  1. The editor opens and the image field appears empty, as if nothing was set
  2. Close the editor and invoke the intent again: the image is now visible

Expected

The editor fetches the current entry when it opens, or there is an intent option to bypass the cached entry.

Actual

The first open renders stale (pre-update) data. Reopening shows fresh data.

Questions

  1. Is this a known issue?
  2. Is there a supported way to make the editor refetch on open? For example a cache-bust option on the intent, or anything the app can call to invalidate that entry in the admin’s cache?

There is no data problem, the API always returns the correct values. It is only confusing for merchants who set an image in our app and open the editor right after: it looks like their change was lost.

Reproduced on Chrome (macOS) in the current admin.

@Henry_Tao can you please take a look?