OY
если использовать receive() - то даже если канал закрылся просто так (во flow закончились элементы, будет ошибка)
вообще, думаю можно заменить наружный цикл на consumeEach
типа так - даже лучше, единственное, что здесь создаётся итератор по каналу и обрабатывается нормально закрытие канала