Point projected to navigation

I’m using ProjectPointToNavigation to find closest point on the navmesh to a location. Things work well when dealing with positions on surfaces up to 1m from the floor. Beyond that height the projection fails. It also fails if the location is in mid air. Is there a way to make ProjectPointToNavigation work in the entire volume of the room?

Adding a new agent to Engine/NavigationSystem/Agents/SupportedAgents with a greater Z value in DefaultQueryExtent increased the valid floor distance. However floating, non-surface locations are still not projected.
One could take the input location, fire a trace to straight down if ProjectPointToNavigation fails and use the trace hit location for another projection but I hope there is a less hacky way to do this.

Hi, I came here while researching a similar question; how to get the relevant navmesh position for a given point within a volume.

How did you resolve this? Did you get it to work with ProjectPointToNavigation() or did you use another method?

Yes, I use ProjectPointToNavigation: I made a GetNavMeshLocation function which takes a 3d coordinate as input. Inside it I have a LineTraceForObjects() from that input coordinate straight down 5000 units, filtered to WorldStatic object type. The hit location is returned along with the height above navmesh (input location - hit location).
This whole thing is called from my navigation management function, in each tick, before stuff like target acquisition and path to target calculation.