You cannot have UDTs definitions with the same name and different tag members within the system. The MQTT Engine will ignore any new UDT definitions received that share the same name as the first recorded UDT definition.

This means that if you are updating a UDT, you cannot simply add or remove a tag member from the UDT and force the refresh to publish a birth certificate as the MQTT Engine will ignore the revised definition.

The recommended method is to create a new UDT definition on the Edge device that inherits from the existing UDT definition. This is done by setting the property Parent Data Type of the new UDT definition to the existing UDT definition. This will allow you to manage versioning for your UDT definitions and prevent published data being ignored by MQTT engine.

In the example below, we have created a new UDT named Pump1 with the inherited tags from an existing UDT instance named Pump and added a new memory tag of Temperature.

Once the new definition is created, you can create an instance on the edge device and force the refresh. From the Designer pointing to your edge device force a refresh by switching the provider to MQTT Transmission and selecting the Refresh click box under Transmission Control. This Boolean control will automatically deselect once the BIRTH has been published.

The new UDT definition will be recorded by MQTT engine and the data processed correctly without impacting the data published from other edge devices. The system can run like this indefinitely with the updated definition imported into any other locations that need to use that new definition.

Changes made at an edge device to UDT definition member tags are not propagated through the system. You will see that any tag instances of that UDT at the edge device will reflect the changes, as will the instances at the MQTT Engine from that edge device, but the recorded definition for the UDT will not change nor will tag instances for other edge devices using that definition.


If you make any change to an existing UDT definition you will need to also:

  • Delete the UDT definition at the MQTT Engine
  • Delete all instances of tags using the UDT definition at MQTT Engine
  • Delete the stale variant of the UDT definition in all edge devices through out the system
  • Export the updated UDT definition from the edge device and import into all other edge devices
  • Force a refresh at each edge device

Unable to Resolve?

If the troubleshooting tips did not help you resolve your issues, please open a ticket with Support

Additional Resources

  • No labels