A Sparkplug host received an NDATA or DDATA for a node it has no NBIRTH for. Sparkplug metrics are aliased by number, and the alias-to-name map lives in the birth certificate — without it the payload is undecodable.
A request that fails on some points and succeeds on others still normalizes. The tags that arrived resolve to canonical fields as usual; the ones that did not come back are listed in unresolved_tags and excluded from coverage_pct, so a partial read reports as partial instead of quietly looking complete.
One MCP endpoint serves every protocol adapter. 16,908 curated mappings, 366 canonical fields.
Other MQTT / Sparkplug B codes: CONNACK 1 CONNACK 2 CONNACK 3 CONNACK 5 Sparkplug seq out of order
Equipment that speaks MQTT / Sparkplug B: MiR (Mobile Industrial Robots) Chemical process Food & beverage process Pharma process (GMP) OTTO Motors Geek+ (Geekplus) Locus Robotics Omron AMR (LD/HD) Trumpf
MQTT / Sparkplug B protocol hub
Other protocols: Modbus OPC UA FANUC FOCAS EtherNet/IP PROFINET / S7 BACnet/IP J1939 (CAN) MTConnect ROS 2 (DDS) SNMP MAVLink HTTP / REST CSV ingest