This is an issue with PathfindingLinks specifically. When a ComputeAsync call is made with one of the positions being the same as a PathfindingLink’s attachment position, and that PathfindingLink is required to access the other position, an incorrect path is made.
The path made has two waypoints only, a start and an end, represented by a single part:
When it should instead look something like this, drawn in green:
Here is the repro place. When the grey part is within the walls, the PathfindingLink is required to get to it. However, instead of using the PathfindingLink, a straight path is generated to the grey part instead, from the outside PathfindingLink attachment position. The bad paths can be detected to an extent, and the code will print every time a bad path is made.
Expected behavior
ComputeAsync should instead use the PathfindingLink to traverse to the other attachment, and then normally path to the grey part once inside the walls.