Gemini Enterprise A2UI v0.9: IFrameSrcdoc and WebAppFrameUrl render blank

I am integrating a custom A2A agent with Gemini Enterprise chat (vertexaisearch.cloud.google.com). Native A2UI Material cards and tables render correctly, but IFrameSrcdoc, IFrameUrl and WebAppFrameUrl remain blank.

Environment: A2A v0.3, A2UI v0.9, Chrome on macOS. Each A2UI message is sent in a separate A2A DataPart with MIME metadata application/json+a2ui.

Frame catalog:
https://www.gstatic.com/vertexaisearch/a2ui/v0_9/gemini_enterprise_composite_catalog.json

Minimal frame component

This component is placed beneath a MaterialColumn inside a root MaterialCard on a surface created with the composite catalog above:

{
  "id": "frame",
  "component": "IFrameSrcdoc",
  "height": 160,
  "htmlContent": "<!DOCTYPE html><html><body><h2>HTML frame rendered</h2></body></html>"
}

Expected and observed behavior

A MaterialText heading beside the frame renders, but the HTML does not. The frame component element exists in the DOM with no child iframe and an approximately 2px height. Native components render on the same page.

Checks completed

  • Minimal srcdoc HTML with no JavaScript, external resources or network requests still fails.
  • Literal and data-bound content both fail, including updating the data model before components.
  • IFrameUrl and WebAppFrameUrl also remain blank with a hosted HTTPS page that responds successfully and permits Google frame ancestors in its CSP.
  • Using Canvas as the surface root opens the GE side panel, but frame content remains blank there too.
  • The console has shown “Workspace context client is not initialized or is disposed” warnings; I have not established whether these are related.

This affects a development demo using fictional data, not a production outage. The root cause is not confirmed.

Are these frame components available to custom A2A agents in this GE chat host? Is there a documented tenant prerequisite, URL allowlisting setting, or payload requirement I am missing? If there is a working minimal example or a known renderer limitation, please point me to it. Thank you.