NavAgents have valid path but are behaving as if they are blocked

I have a navmesh setup in a house structure, and their are agents that move from parts of the house that will not be visible at run time in normal circumstances. I’ve run into an issue where they seem to get “stuck” in a loop, trying to get to the front door. I’ve debugged the path as shown in the gifs below, which shows their path to the door. This seems to show the correct path as far as I can tell.

The problem is they don’t actually follow the path, the keep moving past their path, to in between a couch and a table, then move back up the stairs, then back and forth over and over. Eventually they seem to make it to the door after many passes up and down the stairs. There’s no obstacles blocking them. They are triggers, and as far as I know, should not be blocking each other.

The first gif shows them in mass: gif1

The second is when there’s only a few left just so its easier to see the problem: gif2

The rendering of the path is just a line renderer setting the positions to the agent’s path corners.

Does anyone have any experience with something like this or thoughts on what could be wrong? Thank you!

Nav is very tough to debug. Problems could be a config in your nav settings in the editor, in your code and/or in your gameObject colliders and positioning. Based on your screenshots, it looks like your agent’s on a valid nav mesh, but it’s not clear as to whether or not your characters can “fit” everywhere they’re supposed to go. One way to help determine when and where the agent is failing is to have debug code in Update that determines if a character is stuck (maybe check to see if character hasn’t moved in one or more seconds). If the character is stuck, the use this code to see what’s going on with the agent:

Debug.LogWarning(gameObject.name + " seems to be stuck");
                        Debug.LogWarning("	navTarget:" + navTarget + "::" + navTarget.transform.position);
                        Debug.LogWarning("	nav distination:" + nav.destination);
                        Debug.LogWarning("	distance from nav destination:" + distanceFromNavTargetOrLKP);
                        Debug.LogWarning("	nav remaingDistance:" + nav.remainingDistance);
                        Debug.LogWarning("	nav stoppingDistance:" + nav.stoppingDistance);
                        Debug.LogWarning("	nav speed:" + nav.speed);
                        Debug.LogWarning("	nav autoRepath:" + nav.autoRepath);
                        Debug.LogWarning("	nav has path:" + nav.hasPath);
                        Debug.LogWarning("	nav is computing path:" + nav.pathPending);
                        Debug.LogWarning("	nav is on nav mesh:" + nav.isOnNavMesh);
                        Debug.LogWarning("	nav path is stale:" + nav.isPathStale);
                        Debug.LogWarning("	nav path status:" + nav.pathStatus);
                        Debug.LogWarning("	nav desired velocity:" + nav.desiredVelocity);

this will see if the agent has a valid path, and if not, what was the navTarget that failed (maybe the navTarget is too high off the ground or too far below the ground/nav area.

After some more trial and error, I believe the issue is resolved. I did partially what was mentioned in one of the links I shared, where you set the angularSpeed to 900-999 or so. In that post they said to put acceleration to be higher than your speed, not angularSpeed.

Eventually I tried putting the acceleration to 1005, and angularSpeed to 999. This seems to have corrected everything with the objects speed set to 20. I haven’t tried 30 again, but this is an acceptable result for me. I hope this helps if anyone else has the issue in the future since I didn’t see anyone ever mention putting acceleration above the angularSpeed