Invalid tag at Path

I’m running Ignition Maker edition(8.1.48) and the MQTT Engine v4.0.29 (b2025041017).

I have EMQX running as my broker and its is publishing some system related data.
For these system topics I keep getting an error in my Ignition log:

Invalid tag at path ‘EMQX_CustomNameSpace/$SYS/brokers/emqx@node2.emqx.io/datetime’ - unable to handle payload on custom namespace topic=$SYS/brokers/emqx@node2.emqx.io/datetime

I get a similar error for other system topics too (uptime, authorization metrics, new connections,..)

Using MQTT Explorer to subscribe to my broker I can subscribe to the system topics and see their data without issue

I’ve seen this related topic with a similar issue where it was fixed 2 years ago in a module update but that doesn’t seem to cover my case. Getting StringPayloadHandler error "Invalid tag at Path" on subsequent tag publish - #4 by lusky627

This is because ‘@’ and ‘.’ characters are not valid in tag paths in Ignition. You will need to use the ‘string replacement’ feature to replace those characters with something else when Engine creates the tags. See here for details: MQTT Engine String Replacement - MQTT Modules for Ignition 8.x - Confluence

Thanks!
After adding the mappings I’m no longer getting the original error but I do get this now
Error processing edit for tag path Bad_Unsupported("The target path cannot accept children tags

This is often caused by ‘overlapping structures’ in JSON payloads. If a tag gets created as a leaf tag, and another message arrives that would require that leaf tag to be a folder, this is exactly the error message you would see. It is because MQTT Engine will not delete tags already created to allow that leaf tag to then be a folder. There are a few options to handle this:

  • Manually delete the leaf tag so it gets created as a folder
  • If the topics allow you to, create multiple namespaces so the tag trees don’t overlap when they are created by MQTT Engine.
  • Don’t parse as JSON in the custom namespace and instead write your own parser as a tag change script to deal with the caveats of your JSON payloads.

Thank you again
i’ve figured out the core issue.
EMQX’s system info tags seem to very often have overlapping leaf tags and folders:

this one for example where delivery/dropped contains a metric but also more folders with the reasons:

I’ll have to put in some more effort to get this parsed properly but I’m on the right track now