This modifier only uses mesh to get vgroup, which is only needed in case modified object is indeed a mesh! Building a mesh from curve here is not only useless and time-consuming, it will also easily fail the assert about same number of vertices! Note that surface_project and subsurf option also need more work at some point, but this is probably not that urgent for now. Also, use MOD_get_vgroup() helper in modifier code itself and pass resulting MDeformVert & index to BKE_shrinkwrap's `shrinkwrapModifier_deform()`, this is simpler and avoids duplicating vgroup handling code. Related to T57972.