As a side note, if I try to create a LayeredBlockState from any of the initial graphs I only have one block: gt.NestedBlockState(g_atac, base_type=gt.LayeredBlockState, state_args=dict(ec=g_atac.ep.layer, layered=True)) <NestedBlockState object, with base <LayeredBlockState object with 1 blocks, 1 edge covariates, degree-corrected, for graph <Graph object, undirected, with 1088 vertices and 16529 edges, 1 internal edge property, at 0x7ffb4eaa17c0>, at 0x7ffb4eaf0610>, and 12 levels of sizes [(1088, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1)] at 0x7ffb4eaf0340> I noticed the whole thing because I have instead 3 layers in the union graph: gt.NestedBlockState(gu, base_type=gt.LayeredBlockState, state_args=dict(ec=gu.ep.layer, layered=True)) <NestedBlockState object, with base <LayeredBlockState object with 1 blocks, 3 edge covariates, degree-corrected, for graph <Graph object, undirected, with 1088 vertices and 30846 edges, 1 internal edge property, at 0x7ffb4ea9dac0>, at 0x7ffb4eaf0730>, and 12 levels of sizes [(1088, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1)] at 0x7ffb4eaf0550> and some of the edges with layer 0 in the union exist in the original graphs with assigned layer 1 or -1