How do you move an active nav agent back onto the main nav mesh

Im struggling with what is probably a simple solution.

I have a main “track” nav mesh that is created with the Navmesh build button. I get a lot of little patches or nav islands that are not connected to the track mesh. Sometimes my agents get thrown off the track into the islands and get stuck there. The diagnostic vis clearly wants the mesh to jump back on the track, but it wont.

I believe this used to work, as my old code had a simple MoveTowards when it got off track that worked well, so maybe it was a recent update where manually forcing the Transform doesn’t work any more?

I could Warp the agent, but I need a warp destination and don’t see any functions to discover what is the closest working nav solution.

I could disable the agent and move the gameobject, but then because the agent is disabled, I cant sense if its over the track nav solution.

I could turn off UpdatePosition, but then that does this really weird thing where the nav agent stays put on the nav, and the gameObject goes floating off to wherever you want it, without the two ever joining again properly.

Any thoughts?

Do the disconnected (unwanted) patches belong to a different mesh ?
If that’s the case – i suggest you change the navigation area to “Not Walkable” for those.

They are all part of a single Terrain.

Any other ideas? I basically need to gradually move the agent over the terrain until it reaches a viable navmesh solution, then let it run free again.