As you suspected, IsValid just returns whether or not the operation ran correctly.
IsValid
For lack of a better way, I’d suggest using IsPartial to check whether you got a proper path or not:
IsPartial