1. Если речь идет о самописном функционале, то тут Вам вряд ли кто сможет помочь - слишком мало информации.
2. Ни 21, ни 17 магическими числами не являются

скорее надо искать причину в самих данных, а не в количестве строк. Если же закономерность неслучайная, то опять же надо смотреть, как написан данный функционал.
3. Вы сказали "до сегодняшнего дня работало". А что сегодня менялось? Новые доработки или просто первый раз выпало это самое 21 (блэк-джек, прям какой-то

)?
4. Попробуйте поставить точку останова на методе active() источника данных формы, и по шагам трассируйте до краха.