Normally, reshapeIfEmpty() attempts to copy the axis tags from the input array (i.e. here: from the input node or edge map). This also ensures that corresponding axes are mapped onto the same index position in both input and output arrays. Why are you doing it differently?