Либо уберите align-items: flex-start; либо замените на stretch (это значение по умолчанию). НО картинки-то разного размера, вряд ли это будет хорошо выглядеть.
Почему блок на флексах не заполняет пустоту по вертикале?
Потому что для родителя заданы свойства align-items: flex-start; и align-content: flex-start;, что прижимает дочерние элементы к началу блока, не давая заполнять пространство по вертикали.
А из-за разного размера картинок, дочерние блоки занимают разную высоту.
P.S. Выложите более полный фрагмент кода, чтобы показать решение на нём.
YakovSpb, прилично Вы всех запутали. Отвечаю на Ваш заданный вопрос:
Почему блок на флексах не заполняет пустоту по вертикале?
Flexbox является одномерной системой выравнивания. Все дочерние элементы Flexbox - одинаковы и не могут иметь разную высоту. Заполнить пустоту по вертикали так, как Вы указали, с помощью Flexbox невозможно в принципе. Можно конечно установить направление выстраивания дочерних элементов в колонку, но тогда нужно будет ограничивать общую высоту контейнера. А Вам это явно не подойдет.
Задать указанную сетку можно с помощью CSS Grid.
Надеюсь, Вы получили исчерпывающий ответ и вопрос можно закрывать.