NavMeshAgent not moving (despite working in an empty scene)

Please help me out. I have a “test” scene where my animals only site on a static plane. They spawn with pooling everything work fin they wander on the plane, everything is perfect.

In my real level scene, they all spawn correctly, they site on ground, there are no console error, the navmesh has been bake and rebake.

both scene are using the exact same prefab
the exact same pooling
the spawn object are correctly snap to navmesh (in editor, they cant be lifted up)
their state are working (animator) they walk, go idle (the animation) but they do it in place.

What would be the checklist to verify to see why they are walking in place.

Apparently changing the code to

            waypoint.y = (Terrain.activeTerrain.SampleHeight(waypoint)); //instead of "agent.spawnpoint.y;"

did the trick. But that only work for terrain. What is it’s a combination of static object and terrain. How to i set the “y” on any given point in space ? What would be the best approach ? shooting a ray upward and downward to detect a collision from object on specific layer ? is there an easier way to do hit like getting the actual “y” of the navmesh itself ?