Got it! It seems the code doesn’t work correctly when let mut stderr = BufWriter::new(out.stderr()?) is deleted.
let mut stderr = BufWriter::new(out.stderr()?)
let mut stderr ...