Hi- I want to construct the shortest (geodesic) path along the surface of a mesh between two vertices. (Not just through the mesh edges, but the general shortest path anywhere across the faces of the mesh.) I have discovered that bmesh.ops.connect_vert_pair() seems to do exactly this, as long as the vertices are sufficiently close together (say 5-10 faces apart), but when the vertices are further apart on a large mesh, an edge list of  is returned. What is happening here? How can I call this function with any pair of vertices from a single mesh surface? (Or is there a better method I should be using?) Thanks in advance for your help!
data = bpy.context.object.data
bm = bmesh.new()
v0 = bm.verts[vert_index_0]
v1 = bm.verts[vert_index_1]
new_path = bmesh.ops.connect_vert_pair(bm, verts=[v0,v1])