# Index order after multiple bmesh.ops.subdivide_edges() calls

I'm looping over several meshes. For each mesh I perform several bmesh.ops

bmesh.ops.subdivide_edges(bm, edges= to_subdivide, cuts=1)
bmesh.ops.dissolve_verts(bm, verts= to_dissolve, cuts=1)


Up until here, order is as expected. For every subdivided edge a vertex is added with the index = len(bm.verts)

After performing another subdivide_edges the order gets messed up, The following loop finds the correct edge, but the index of the new vert is random instead of len(bm.verts)

for e in bm.edges:
if e.calc_length() > 1.5:
to_subdivide.append(e)
bmesh.ops.subdivide_edges(bm, edges= to_subdivide, cuts=1)


I can avoid the problem by converting back to mesh again before the loop

bm.to_mesh(obj.data)
obj.data.update()
bm = bmesh.new()
obj = bpy.data.objects[0]
bm.from_mesh(obj.data)


What is the reason for the wrong order and is there another way to return the new vert index of the subdivided edge?