I've been frustrated with this simple problem for over a year, and now the project is advanced enough where we need to figure out if there is a way around it or just ditch Unity's Navmesh system for something more robust. So the basic problem I have is that agent avoidance does not take into account the edges of the navmesh, so if the shortest path between 2 points is close to the edge (and there is another agent there) you end up stuck like this: While other systems (*cough* A* Pathfinding *cough*) deal with this correctly out of the box: Now I've been told that there is no solution to this in Unity system and I would REALLY appreciate an official reply from someone that works in that department. Finally, a lot of other developers have suggested that I try the Navmesh Obstacle system, so anytime an agent is not moving, it would activate the carving and the other agents will naturally walk around it. In theory, this works fine, but the problem is that when I want to CalculatePath() for an agent to go to another agent (and they both have the NavMesh obstacle carving enabled), I will get a partial path with incorrect corners since there is a hole in the start and end points. (top image is what I should get, bottom is the actual result that also looks weird when the agent starts moving) Also, the documentation states the following: And that last line maybe there is something that is not documented? Alternatively you can use priorities to make certain agents to be avoided more So far avoidance only pushes actors, it does not make them 'be avoided more'. Am I missing something? Now I'm starting to look at ways to disable the carving when calculating paths, or some other juggling idea...but honestly, that makes no sense...I'm creating new problems trying to fix something that should just work. So, what am I missing? What are the possible solutions? EDIT: I've also attached a repro scene with the problem. Just Import and press Play.