Is there a max length for a NavLink?

Hi,
I’m currently working with NavLinks (both standard NavLinksProxy and custom ones I created).
I have noticed a problem: when the link points are too far away the link disappears from the NavMesh and can’t be traversed anymore.

To recreate this behaviour simply drag a NavLinkProxy on a surface with a NavMesh built. Then move the start and end point of the simple point link so that they are distant around 2500 units.
Notice that the link disappears from the NavMesh.

Why is this happening? Has anyone else encountered this problem?

I found out myself that NavLinks must link two points that are in adjacent navmesh octree nodes, for some reason. The navmesh generation system uses an octree from what I understand. You can see the node bounds in the navmesh by toggling Draw Poly Edges in Project Settings → Engine → Navigation Mesh. You can see more information about the octree nodes by toggling Draw Clusters there too.

Example

The following link is valid; you can see that both points are in nodes that are adjacent.

The same link, with one point moved a few centimeters, is no longer valid because the node it is in is too far; the node it now is in is not adjacent to the other point’s node.

Here the adjacent nodes of the point to the right of the image (named PointLinks[0].Left, sorry about that) are highlighted in orange.

It is a very arbitrary limitation; you only have so much control over the placement of the octree nodes. And there seem to be other limitations I haven’t figured out yet; I have seemingly small links that do not work, and there is no feedback as to why they fail to properly link/work.

I’ve found that even if you increase the Recast tile size the link fails at 2000~ units while showing successful NavLink Debug lines.

Have you had any luck looking into this further? I’m currently looking through the source code to see if things get added to the NavOctree correctly.