I added a ZB_ZCL_CLUSTER_ID_DIAGNOSTICS cluster to my custom server EP:
+ZB_ZCL_DECLARE_DIAGNOSTICS_ATTRIB_LIST(
+ diag_attr_list);
+ ZB_ZCL_CLUSTER_DESC(ZB_ZCL_CLUSTER_ID_DIAGNOSTICS,
+ ZB_ZCL_ARRAY_SIZE(diag_attr_list, zb_zcl_attr_t), /* attr_count */
+ diag_attr_list, /* attr_desc_list */
+ ZB_ZCL_CLUSTER_SERVER_ROLE, /* cluster_role_mask */
+ ZB_ZCL_MANUF_CODE_INVALID /* manuf_code */
+ ),
I can query *most* of these attributes from the ZC (zigbee2mqtt dev console). But some, like ZB_ZCL_ATTR_DIAGNOSTICS_MAC_RX_UCAST_ID or ZB_ZCL_ATTR_DIAGNOSTICS_MAC_TX_UCAST_ID, return UNSUPPORTED_ATTRIBUTE. I verified this in wireshark:


I don't see any pattern to it; when looking at the ZB_ZCL_DECLARE_DIAGNOSTICS_ATTRIB_LIST the failing attributes are somewhere in the middle of the list, not at the beginning or end. ZB_ZCL_ATTR_DIAGNOSTICS_MAC_TX_BCAST_ID works but the next attribute ZB_ZCL_ATTR_DIAGNOSTICS_MAC_RX_UCAST_ID doesn't.
However, when browsing zb_zcl_diagnostics.h I saw some possible cut&paste errors in the code, where several attribute IDs were getting reused:

Is this a bug?