не понимаю какой идиот придумал пихать в протокол 1-999, если у вас протокол чекается при коннекте клиента, и если он вне аррея с валидными протоколами то произойдет ничего.
у вас что, пакеты вдруг сами по себе пишутся под все протоколы всех клиентов всех ревизий всех регионов всех планет?
написать в вышеописанных пакетах дебаг, посмотреть где он может орать на нуль, в случае если есть нуль выводить полный трейс и где нуль. вот единственное адекватное решение вопроса.
аутистичный "засунь в протокол 1-999", пожалуйста, оставьте при себе.