use open3 to capture more output on failure