I created an algorithm that creates a different ground every time the game starts, so I bake with NavMesh Surface at runtime (only once when the game started). The problem is navmesh agent do not touch the ground as it must be. its y position is set to 0, but when the game starts its y position updates to "0.08240414".
Here is some screenshots to hopefully help you to understand the problem better.
Try changing the "Base Offset" of the NavMesh agent. It should solve your problem. or you can also check the Height Mesh box in the advanced settings of NavMesh Surface and then bake the NavMesh