Conflict between content and structuredOutput with openai:set_globals events

In my tool call, I’m returning:

    return {
      content: [{
        type: 'text',
        text: `Found ${products.length} products. Do not narrate the products, just show the widget and give a brief summary.`,
      }],
      structuredOutput: {
        products,
      },
    };

However, I’m only getting openai:set_globals events for the content portion, with details.toolOutput as:

{ "text": "Found 10 products ...." }

If I set content as an empty array [], everything seems to work properly. I get details.toolOutput as :

{
    "result": {
        "meta": null,
        "content": [],
        "structuredContent": null,
        "isError": false,
        "structuredOutput": {
            "products": ...
         }
     },
    "error": null,
    "error_data": null,
    "error_code": null,
    "error_http_status_code": null,
    "error_http_headers": null,
    "connector_id": "connector_68ea9cc7a5ac8191880849f96e2fcafc",
    "connector_name": "Fourthwall",
    "action_name": "search_products",
    "is_sync": false
}

Yikes. That’s embarrassing. I was returning structuredOutput instead of structuredContent and it just so happened to work before. :person_facepalming: