FindPathToActorSynchronously always returns IsValid() == true even when the goal is fully enclosed by walls

As you suspected, IsValid just returns whether or not the operation ran correctly.

For lack of a better way, I’d suggest using IsPartial to check whether you got a proper path or not: