note that in the case of a mixed list of uuid and paths, we would still fail. we could inside the loop do a check

    if (PropertyType::STRING == $this->type && isset($results[$value])){
        continue;
    }

and after the loop, we should check if now we have found all keys, as in  the WEAKREFERENCE case above. (the old code gets a single node for each path, which will throw an exception when not found)