joshdifabio is technically correct, but I don't see this as a bug. You can't rewind a generator and thats what append iterator does.
If you want to use AppendIterator with Generators just wrap them with NoRewindIterator:
<?php
function foo() {
foreach ([] as $foo) {
yield $foo;
}
}
$append = new AppendIterator();
$append->append(new NoRewindIterator(foo()));
var_dump(iterator_to_array($append));
https://3v4l.org/pgiXB