Пропуск записей при постраничной загрузке через API обычно означает, что данные менялись между запросами страниц, а не ошибку в самом коде пагинации.
Классический сценарий потери записей
Если сортировка идёт по времени создания, а между загрузкой страницы 1 и страницы 2 добавилась новая запись в начало списка, то, что должно было быть на странице 2, сдвигается — часть записей может оказаться пропущена или показана дважды.
Решение — курсорная пагинация вместо номера страницы
Многие современные API поддерживают пагинацию по курсору (используя ID последней полученной записи, а не номер страницы) — это устойчиво к изменениям данных в процессе загрузки, в отличие от пагинации по смещению.
Если курсор недоступен
Загружайте данные с сортировкой по неизменяемому полю (например, ID по возрастанию) и используйте последний полученный ID как фильтр "больше чем" для следующего запроса — это даёт похожий эффект без явной поддержки курсора со стороны API.



